關鍵詞提取 TFIDF 自定義逆文件IDF的值

2021-10-02 20:23:12 字數 3667 閱讀 8848

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

n​i(

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演算法,這個概念是由劍橋大學計算機女科學家斯巴克 瓊斯提出,被認為是資訊檢索中最重要的發明。乙個容易想到的思...