tf-idf
tf 詞頻 (term frequency)表示w在文件di**現的頻率
t f=
coun
t(w)
di
tf = \frac
tf=dic
ount
(w)
idf 逆文件頻率(inverse document frequency)
n是總的文件數量,i表示文件di是否儲存,如果w在所有的文件中都沒有出現那就為0
i df
=log
(n1+
∑i=1
ni(w
,di)
)idf=log(\frac ^n })
idf=lo
g(1+
∑i=1
ni(
w,di
)n)
那麼tf-idf為:
t f−
idf=
tf∗i
df
tf-idf = tf*idf
tf−idf
=tf∗
idf示例:直接呼叫extract_tags是統計詞頻 jieba預設有乙份計算的idf檔案default_idf = _get_module_path(「idf.txt」)
如果自定義idf(見底部)jieba.analyse.set_idf_path(file)
import jieba.analyse
test =
"日前韓媒指出中國最大的面板企業京東方有望在2023年為蘋果**4500萬片oled面板," \
"將奪得iphone大約兩成的面板**份額,成為僅次於三星的第二大oled面板**商," \
"此舉對於南韓在oled面板行業的領導地位造成了挑戰。"
tags = jieba.analyse.extract_tags(test, topk=
20, withweight=
true
)for i in tags:
print
(i[0
],i[1]
)
面板 1.16574583418375
oled 0.8966075627174999
** 0.31444176262
韓媒 0.2988691875725
2021 0.2988691875725
4500 0.2988691875725
iphone 0.2988691875725
萬片 0.289952313975
京東方 0.24433858167325
兩成 0.21839729195125002
三星 0.20568385962
奪得 0.19779290587725
**商 0.19473025781175
蘋果 0.188355180106
此舉 0.18746901138125
僅次於 0.177208313945
份額 0.17362712608949998
南韓 0.1735795070275
挑戰 0.16482012178025002
日前 0.15228855634650001
計算自定義idf檔案。
test.txt檔案如下:
日前韓媒指出中國最大的面板企業京東方有望在2023年為蘋果**4500萬片oled面板將奪得iphone大約兩成的面板**份額,成為僅次於三星的第二大oled面板**商
此舉對於南韓在oled面板行業的領導地位造成了挑戰。
主要邏輯就是統計詞出現的文件數。
import math
import jieba
data_content =
open
("test.txt"
,'r'
, encoding=
'utf8'
).readlines(
)idf_dic =
doc_count =
len(data_content)
for i in
range
(len
(data_content)):
#分詞統計詞頻
new_content = jieba.lcut(data_content[i]
)for word in
set(new_content):if
len(word)
>1:
idf_dic[word]
= idf_dic.get(word,
0.0)
+1.0
for k, v in idf_dic.items():
w = k
p ='%.10f'
%(math.log(doc_count /
(1.0
+ v)))
if w > u'\u4e00'
and w <= u'\u9fa5'
: idf_dic[w]
= pwith
open
('idf.txt'
,'w'
, encoding=
'utf8'
)as f:
for k in idf_dic:
if k !=
'\n'
: f.write(k +
' '+
str(idf_dic[k])+
'\n'
)
生成的tdf.txt檔案如下:
韓媒 0.4054651081
蘋果 0.4054651081
指出 0.4054651081
有望 0.4054651081
企業 0.4054651081
** 0.0000000000
萬片 0.4054651081
面板 -0.2876820725
京東方 0.4054651081
日前 0.4054651081
中國 0.4054651081
2021 1.0
4500 1.0
oled 3.0
最大 0.4054651081
奪得 0.4054651081
份額 0.4054651081
**商 0.4054651081
第二 0.4054651081
iphone 1.0
成為 0.4054651081
兩成 0.4054651081
大約 0.4054651081
僅次於 0.4054651081
三星 0.4054651081
領導 0.4054651081
地位 0.4054651081
挑戰 0.4054651081
南韓 0.4054651081
此舉 0.4054651081
造成 0.4054651081
對於 0.4054651081
行業 0.4054651081
TF IDF 提取關鍵詞
class document p s p p string,1,preg split no empty this build tf else public function build tf public function build tfidf idf else arsort this tfidf...
提取關鍵詞 tf idf演算法講解
結果你肯定猜到了,出現次數最多的詞是 的 是 在 這一類最常用的詞。它們叫做 停用詞 stop words 表示對找到結果毫無幫助 必須過濾掉的詞。用統計學語言表達,就是在詞頻的基礎上,要對每個詞分配乙個 重要性 權重。最常見的詞 的 是 在 給予最小的權重,較常見的詞 中國 給予較小的權重,較少見...
從提取網頁關鍵詞到TF IDF
這個標題看上去好像很複雜,其實是乙個很簡單的問題。這個問題涉及到資料探勘 文字處理 資訊檢索等很多計算機前沿領域,但有乙個非常簡單的經典演算法,卻可以給出令人相當滿意的結果。這就是tf idf演算法,這個概念是由劍橋大學計算機女科學家斯巴克 瓊斯提出,被認為是資訊檢索中最重要的發明。乙個容易想到的思...