tf-idf(term frequencey-inverse document frequency)指詞頻-逆文件頻率,它屬於數值統計的範疇。使用tf-idf,我們能夠學習乙個詞對於資料集中的乙個文件的重要性。
tf-idf有兩部分,詞頻和逆文件頻率。首先介紹詞頻,這個詞很直觀,詞頻表示每個詞在文件或資料集**現的頻率。等式如下:
tf(t)=詞t在一篇文件**現的次數/這篇文件的總詞數
第二部分——逆文件頻率實際上告訴了我們乙個單詞對文件的重要性。這是因為當計算tf的時候,我們對每個詞賦予了同等的重要性,它出現得越多,它的tf就越高,如果它出現了100次,也許相比其他出現更少的詞,它並不攜帶那麼多資訊,因此我們需要賦予它們權重,決定每個詞的重要性。使用下面的等式得到idf:
idf(t)=(log10文件的篇數/包含詞t文件的篇數)
那麼,計算tf-idf的方法如下:
tf * idf=(詞t在一篇文件**現的次數/這篇文件的總詞數)* log10(文件的篇數/包含詞t文件的篇數)
tf-idf可以應用於如下場景:
如果你正開發乙個文字摘要應用,並正在進行統計,tf-idf是生成摘要最重要的特徵。
tf-idf權重的變動常用於搜尋引擎,以求出文件的得分以及同使用者檢索的相關性。
文字分類應用將tf-idf和bow一起使用。
把給定的文字t按照完整句子進行分割,即
根據上面公式,迭代傳播各節點的權重,直至收斂。
# 導入庫
import jieba.analyse # 匯入關鍵字提取庫
import pandas as pd # 匯入pandas
import news*****
# 讀取文字資料
# 獲取文章 銀保監會出台新政為例
article = news*****.article(
'', language=
'zh'
)article.download(
)# 解析文章
article.parse(
)# 對文章進行nlp處理
article.nlp(
)# nlp處理後的文章拼接
string_data =
"".join(article.keywords)
# 關鍵字提取
defget_key_words
(string_data, how='')
:# topk:提取的關鍵字數量,不指定則提取全部;
# withweight:設定為true指定輸出詞對應的if-idf權重
if how ==
'textrank'
:# 使用textrank 演算法
tags_pairs = jieba.analyse.textrank(string_data, topk=
5, withweight=
true
)# 提取關鍵字標籤
else
:# 使用tf-idf 演算法
tags_pairs = jieba.analyse.extract_tags(string_data, topk=
5, withweight=
true
)# 提取關鍵字標籤
tags_list =
# 空列表用來儲存拆分後的三個值
for i in tags_pairs:
# 列印標籤、分組和tf-idf權重
(i[0
], i[1]
))# 拆分三個字段值
tags_pd = pd.dataframe(tags_list, columns=
['word'
,'weight'])
# 建立資料框
return tags_pd
keywords = get_key_words(string_data)
print
("#####################tf-idf####################"
)print
(keywords)
keywords_tr = get_key_words(string_data, how=
'textrank'
)print
("#####################textrank####################"
)print
(keywords_tr)
結果如下:
#####################tf-idf####################
word weight
0 民營企業 0.327466
1 貸款 0.112652
2 融資 0.089557
3 商業銀行 0.084860
4 服務 0.072322
#####################textrank####################
word weight
0 民營企業 1.000000
1 要 0.553043
2 貸款 0.493173
3 融資 0.379846
4 服務 0.371273
python 關鍵字提取
jieba 關鍵字提取 import jieba.analyse tags jieba.analyse.extract tags str,topk 3 str是提取關鍵字的內容,topk是提取關鍵字數 print join tags tf idf關鍵字提取 是用於資訊檢索和文字挖掘的加權技術。是評估...
關鍵字 EXCEL關鍵字提取
如何根據關鍵字列表將單元格中的關鍵字提取出來,本文提供三種方法,看哪一種適合你!開啟excel 表,內容如下 a列為需要提取關鍵字的內容 f列為關鍵字列表 bcd為三種方法演示 方法一 公式 if sumproduct countif a2,f 2 f 13 lookup 0 frequency 0...
關鍵字 php提取關鍵字中文分詞
每日17點準時技術乾貨分享 需求 做seo的keywords時,需要從標題或者正文裡提取關鍵字 2.封裝 loaddict pa setsource content pa startanalysis true tags pa getfinallykeywords num 獲取文章中的n個關鍵字 re...