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...