使用jieba進行關鍵字詞提取(基於TF IDF)

2021-09-12 10:25:32 字數 3795 閱讀 4080

tf-idf:term frequency–inverse document frequency

tf-idf方法通過計算單文字詞頻(term frequency, tf)和逆文字頻率指數(inverse document frequency, idf)得到詞語權重,按照權重排序,輸出關鍵字

原理:

tf:如果某個單詞在這段文字**現頻率越高,tf越大,說明這個單詞對於這段文字越重要

idf:如果包含詞條t的文件越少,也就是n越小,idf越大,則說明詞條t具有很好的類別區分能力

如果某個詞出現的頻率很高(tf越大),並且在其他文章中很少出現(idf越大),即tf*idf越大,則認為這個詞適合用來分類,也適合用來當作關鍵字

python實現

jieba.analyse.extract_tags(string,topk=20,withweight=true,allowpos=(" "))

string:待處理語句

topk:返回tf、idf權重最大的關鍵字的個數,預設20

withweight:是否返回權重值,預設false

allowpos:是否僅返回指定型別,預設為空

import jieba

import jieba.analyse

sentence =

"本科及以上學歷,計算機、數學等相關專業重點學校在校生(碩士為佳)-- 至少掌握一門程式語言,包括sql。熟悉linux;"

keywords = jieba.analyse.extract_tags(sentence, topk=

20, withweight=

true

, allowpos=

('n'

,'nr'

,'ns'))

for item in keywords:

print

(item[0]

, item[1]

)

輸出結果

程式語言 1.426971375275

在校生 1.3403279777

碩士 1.1087799663225

計算機 0.85059805386

數學 0.826042559475

專業 0.7741456821725

學校 0.71152323753

重點 0.6565789565175

import jieba

import jieba.analyse

sentence =

"本科及以上學歷,計算機、數學等相關專業重點學校在校生(碩士為佳)-- 至少掌握一門程式語言,包括sql。熟悉linux;"

keywords = jieba.analyse.extract_tags(sentence, topk=

20, withweight=

false

, allowpos=

('n'

,'nr'

,'ns'))

for item in keywords:

print

(item)

輸出結果

程式語言

在校生碩士

計算機數學

專業學校

重點

詞性對照表(allowpos可選值)

名詞 (1個一類,7個二類,5個三類)

名詞分為以下子類:

n 名詞

nr 人名

nr1 漢語姓氏

nr2 漢語名字

nrj 日語人名

nrf 音譯人名

ns 地名

nsf 音譯地名

nt 機構團體名

nz 其它專名

nl 名詞性慣用語

ng 名詞性語素

時間詞(1個一類,1個二類)

t 時間詞

tg 時間詞性語素

處所詞(1個一類)

s 處所詞

方位詞(1個一類)

f 方位詞

動詞(1個一類,9個二類)

v 動詞

vd 副動詞

vn 名動詞

vshi 動詞「是」

vyou 動詞「有」

vf 趨向動詞

vx 形式動詞

vi 不及物動詞(內動詞)

vl 動詞性慣用語

vg 動詞性語素

形容詞(1個一類,4個二類)

a 形容詞

ad 副形詞

an 名形詞

ag 形容詞性語素

al 形容詞性慣用語

區別詞(1個一類,2個二類)

b 區別詞

bl 區別詞性慣用語

狀態詞(1個一類)

z 狀態詞

代詞(1個一類,4個二類,6個三類)

r 代詞

rr 人稱代詞

rz 指示代詞

rzt 時間指示代詞

rzs 處所指示代詞

rzv 謂詞性指示代詞

ry 疑問代詞

ryt 時間疑問代詞

rys 處所疑問代詞

ryv 謂詞性疑問代詞

rg 代詞性語素

數詞(1個一類,1個二類)

m 數詞

mq 數量詞

量詞(1個一類,2個二類)

q 量詞

qv 動量詞

qt 時量詞

副詞(1個一類)

d 副詞

介詞(1個一類,2個二類)

p 介詞

pba 介詞「把」

pbei 介詞「被」

連詞(1個一類,1個二類)

c 連詞

cc 並列連詞

助詞(1個一類,15個二類)

u 助詞

uzhe 著

ule 了 嘍

uguo 過

ude1 的 底

ude2 地

ude3 得

usuo 所

udeng 等 等等 云云

uyy 一樣 一般 似的 般

udh 的話

uls 來講 來說 而言 說來

uzhi 之

ulian 連 (「連小學生都會」)

嘆詞(1個一類)

e 嘆詞

語氣詞(1個一類)

y 語氣詞(delete yg)

擬聲詞(1個一類)

o 擬聲詞

字首(1個一類)

h 字首

字尾(1個一類)

k 字尾

字串(1個一類,2個二類)

x 字串

xx 非語素字

xu **url

標點符號(1個一類,16個二類)

w 標點符號

wkz 左括號,全形:( 〔 [ { 《 【 〖 〈 半形:( [ { <

wky 右括號,全形:) 〕 ] } 》 】 〗 〉 半形: ) ] { >

wyz 左引號,全形:「 『 『

wyy 右引號,全形:」 』 』

wj 句號,全形:。

ww 問號,全形:? 半形:?

wt 嘆號,全形:! 半形:!

wd 逗號,全形:, 半形:,

wf 分號,全形:; 半形: ;

wn 頓號,全形:、

wm 冒號,全形:: 半形: :

ws 省略號,全形:…… …

wp 破折號,全形:—— -- ——- 半形:— —-

wb 百分號千分號,全形:% ‰ 半形:%

wh 單位符號,全形:¥ $ £ ° ℃ 半形:$

階段二 jieba關鍵字提取

content 該課題針對tdi 甲苯二異氰酸酯 生產廢渣汙染問題,將tdi廢渣進行催化水解生成tda 甲苯二胺 單體,實現了資源再生。創新點如下 1 確定了在溫和反應條件下tda高收率的水解催化劑和相轉移催化劑 2 研發了高粘度 高沸點物料的連續化液固分離技術,實現了萬噸級工業化生產,並形成了工藝...

關鍵字詞法識別

本人想做乙個自己的指令碼語言,但是又不想使用lex之類的詞法分析器,又不想自己畫狀態轉換圖,所以,寫了下面的一段程式,它的功能是 有如下若干個關鍵字 char keywords 1024 通過迴圈呼叫 bool addfsm char reg,int nstart,int nfinal 會自動產生乙...

關鍵字 EXCEL關鍵字提取

如何根據關鍵字列表將單元格中的關鍵字提取出來,本文提供三種方法,看哪一種適合你!開啟excel 表,內容如下 a列為需要提取關鍵字的內容 f列為關鍵字列表 bcd為三種方法演示 方法一 公式 if sumproduct countif a2,f 2 f 13 lookup 0 frequency 0...