【NLP】??學(xué)不會(huì)打我! 半小時(shí)學(xué)會(huì)基本操作 2?? 關(guān)鍵詞
【NLP】??學(xué)不會(huì)打我! 半小時(shí)學(xué)會(huì)基本操作 2?? 關(guān)鍵詞
概述
關(guān)鍵詞
TF-IDF 關(guān)鍵詞提取
TF
IDF
TF-IDF
jieba TF-IDF 關(guān)鍵詞抽取
jieba 詞性
不帶關(guān)鍵詞權(quán)重
附帶關(guān)鍵詞權(quán)重
TextRank
概述
從今天開(kāi)始我們將開(kāi)啟一段自然語(yǔ)言處理 (NLP) 的旅程. 自然語(yǔ)言處理可以讓來(lái)處理, 理解, 以及運(yùn)用人類的語(yǔ)言, 實(shí)現(xiàn)機(jī)器語(yǔ)言和人類語(yǔ)言之間的溝通橋梁.
關(guān)鍵詞
關(guān)鍵詞 (keywords), 即關(guān)鍵詞語(yǔ). 關(guān)鍵詞能描述文章的本質(zhì), 在文獻(xiàn)檢索, 自動(dòng)文摘, 文本聚類 / 分類等方面有著重要的應(yīng)用.
關(guān)鍵詞抽取的方法
關(guān)鍵詞提取: 針對(duì)新文檔, 通過(guò)算法分析. 提取文檔中一些詞語(yǔ)作為該文檔的關(guān)鍵詞
關(guān)鍵詞分配: 給定已有的關(guān)鍵詞庫(kù), 對(duì)于新來(lái)的文檔從該詞庫(kù)里面分配幾個(gè)詞語(yǔ)作為這篇文檔的關(guān)鍵詞
TF-IDF 關(guān)鍵詞提取
TF-IDF (Term Frequency-Inverse Document Frequency), 即詞頻-逆文件頻率是一種用于信息檢索與數(shù)據(jù)挖掘的常用加權(quán)技術(shù). TF-IDF 可以幫助我們挖掘文章中的關(guān)鍵詞. 通過(guò)數(shù)值統(tǒng)計(jì), 反映一個(gè)詞對(duì)于語(yǔ)料庫(kù)中某篇文章的重要性.
TF
TF (Term Frequency), 即詞頻. 表示詞在文本中出現(xiàn)的頻率.
公式:
IDF
IDF (Inverse Document Frequency), 即逆文檔頻率. 表示語(yǔ)料庫(kù)中包含詞的文檔的數(shù)目的倒數(shù).
公式:
TF-IDF
公式:
TF-IDF = (詞的頻率 / 句子總字?jǐn)?shù)) × (總文檔數(shù) / 包含該詞的文檔數(shù))
如果一個(gè)詞非常常見(jiàn), 那么 IDF 就會(huì)很低, 反之就會(huì)很高. TF-IDF 可以幫助我們過(guò)濾常見(jiàn)詞語(yǔ), 提取關(guān)鍵詞.
jieba TF-IDF 關(guān)鍵詞抽取
格式:
jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
1
參數(shù):
sentence: 待提取的文本語(yǔ)料
topK: 返回的關(guān)鍵詞個(gè)數(shù), 默認(rèn)為 20
withWeight: 是否需要返回關(guān)鍵詞權(quán)重, 默認(rèn)為 False
allowPOS: 僅包括指定詞性的詞, 默認(rèn)為空, 即不篩選
jieba 詞性
不帶關(guān)鍵詞權(quán)重
例子:
import jieba.analyse # 定義文本 text = "自然語(yǔ)言處理是計(jì)算機(jī)科學(xué)領(lǐng)域與人工智能領(lǐng)域中的一個(gè)重要方向。" \ "它研究能實(shí)現(xiàn)人與計(jì)算機(jī)之間用自然語(yǔ)言進(jìn)行有效通信的各種理論和方法。" \ "自然語(yǔ)言處理是一門(mén)融語(yǔ)言學(xué)、計(jì)算機(jī)科學(xué)、數(shù)學(xué)于一體的科學(xué)。" \ "因此,這一領(lǐng)域的研究將涉及自然語(yǔ)言,即人們?nèi)粘J褂玫恼Z(yǔ)言," \ "所以它與語(yǔ)言學(xué)的研究有著密切的聯(lián)系,但又有重要的區(qū)別。" \ "自然語(yǔ)言處理并不是一般地研究自然語(yǔ)言," \ "而在于研制能有效地實(shí)現(xiàn)自然語(yǔ)言通信的計(jì)算機(jī)系統(tǒng),特別是其中的軟件系統(tǒng)。" \ "因而它是計(jì)算機(jī)科學(xué)的一部分" # 提取關(guān)鍵詞 keywords = jieba.analyse.extract_tags(text, topK=20, withWeight=False) # 調(diào)試輸出 print([i for i in keywords])
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
輸出結(jié)果:
Building prefix dict from the default dictionary ... Loading model from cache C:\Users\Windows\AppData\Local\Temp\jieba.cache Loading model cost 0.890 seconds. Prefix dict has been built successfully. ['自然語(yǔ)言', '計(jì)算機(jī)科學(xué)', '語(yǔ)言學(xué)', '研究', '領(lǐng)域', '處理', '通信', '有效', '軟件系統(tǒng)', '人工智能', '實(shí)現(xiàn)', '計(jì)算機(jī)系統(tǒng)', '重要', '一體', '一門(mén)', '日常', '計(jì)算機(jī)', '密切', '數(shù)學(xué)', '研制']
1
2
3
4
5
附帶關(guān)鍵詞權(quán)重
import jieba.analyse # 定義文本 content = "自然語(yǔ)言處理是人工智能和語(yǔ)言學(xué)領(lǐng)域的分支學(xué)科。此領(lǐng)域探討如何處理及運(yùn)用自然語(yǔ)言;自然語(yǔ)言處理包括多方面和步驟,基本有認(rèn)知、理解、生成等部分。" # 定義文本 text = "自然語(yǔ)言處理是計(jì)算機(jī)科學(xué)領(lǐng)域與人工智能領(lǐng)域中的一個(gè)重要方向。" \ "它研究能實(shí)現(xiàn)人與計(jì)算機(jī)之間用自然語(yǔ)言進(jìn)行有效通信的各種理論和方法。" \ "自然語(yǔ)言處理是一門(mén)融語(yǔ)言學(xué)、計(jì)算機(jī)科學(xué)、數(shù)學(xué)于一體的科學(xué)。" \ "因此,這一領(lǐng)域的研究將涉及自然語(yǔ)言,即人們?nèi)粘J褂玫恼Z(yǔ)言," \ "所以它與語(yǔ)言學(xué)的研究有著密切的聯(lián)系,但又有重要的區(qū)別。" \ "自然語(yǔ)言處理并不是一般地研究自然語(yǔ)言," \ "而在于研制能有效地實(shí)現(xiàn)自然語(yǔ)言通信的計(jì)算機(jī)系統(tǒng),特別是其中的軟件系統(tǒng)。" \ "因而它是計(jì)算機(jī)科學(xué)的一部分" # 提取關(guān)鍵詞 (帶權(quán)重) keywords = jieba.analyse.extract_tags(text, topK=20, withWeight=True) # 調(diào)試輸出 print([i for i in keywords])
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
輸出結(jié)果:
Building prefix dict from the default dictionary ... Loading model from cache C:\Users\Windows\AppData\Local\Temp\jieba.cache Loading model cost 1.110 seconds. Prefix dict has been built successfully. [('自然語(yǔ)言', 1.1237629576061539), ('計(jì)算機(jī)科學(xué)', 0.4503481350267692), ('語(yǔ)言學(xué)', 0.27566262244215384), ('研究', 0.2660770221507693), ('領(lǐng)域', 0.24979825580353845), ('處理', 0.24973179957046154), ('通信', 0.2043557391963077), ('有效', 0.16296019853692306), ('軟件系統(tǒng)', 0.16102600688461538), ('人工智能', 0.14550809839215384), ('實(shí)現(xiàn)', 0.14389939312584615), ('計(jì)算機(jī)系統(tǒng)', 0.1402028601413846), ('重要', 0.12347581087876922), ('一體', 0.11349408224353846), ('一門(mén)', 0.11300493477184616), ('日常', 0.10913612756276922), ('計(jì)算機(jī)', 0.1046889912443077), ('密切', 0.10181409957492307), ('數(shù)學(xué)', 0.10166677655076924), ('研制', 0.09868653898630769)]
1
2
3
4
5
TextRank
TextRank 通過(guò)詞之間的相鄰關(guān)系構(gòu)建網(wǎng)絡(luò),然后用PageRank 迭代計(jì)算每個(gè)節(jié)點(diǎn)的 rank 值. 排序 rank值即可得到關(guān)鍵詞.
import jieba.analyse # 定義文本 content = "自然語(yǔ)言處理是人工智能和語(yǔ)言學(xué)領(lǐng)域的分支學(xué)科。此領(lǐng)域探討如何處理及運(yùn)用自然語(yǔ)言;自然語(yǔ)言處理包括多方面和步驟,基本有認(rèn)知、理解、生成等部分。" # 定義文本 text = "自然語(yǔ)言處理是計(jì)算機(jī)科學(xué)領(lǐng)域與人工智能領(lǐng)域中的一個(gè)重要方向。" \ "它研究能實(shí)現(xiàn)人與計(jì)算機(jī)之間用自然語(yǔ)言進(jìn)行有效通信的各種理論和方法。" \ "自然語(yǔ)言處理是一門(mén)融語(yǔ)言學(xué)、計(jì)算機(jī)科學(xué)、數(shù)學(xué)于一體的科學(xué)。" \ "因此,這一領(lǐng)域的研究將涉及自然語(yǔ)言,即人們?nèi)粘J褂玫恼Z(yǔ)言," \ "所以它與語(yǔ)言學(xué)的研究有著密切的聯(lián)系,但又有重要的區(qū)別。" \ "自然語(yǔ)言處理并不是一般地研究自然語(yǔ)言," \ "而在于研制能有效地實(shí)現(xiàn)自然語(yǔ)言通信的計(jì)算機(jī)系統(tǒng),特別是其中的軟件系統(tǒng)。" \ "因而它是計(jì)算機(jī)科學(xué)的一部分" # TextRank提取關(guān)鍵詞 keywords = jieba.analyse.textrank(text, topK=20, withWeight=False) # 調(diào)試輸出 print([i for i in keywords])
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
調(diào)試輸出:
Building prefix dict from the default dictionary ... Loading model from cache C:\Users\Windows\AppData\Local\Temp\jieba.cache ['研究', '領(lǐng)域', '計(jì)算機(jī)科學(xué)', '實(shí)現(xiàn)', '處理', '語(yǔ)言學(xué)', '數(shù)學(xué)', '人們', '計(jì)算機(jī)', '涉及', '有著', '一體', '方法', '語(yǔ)言', '研制', '使用', '人工智能', '在于', '聯(lián)系', '科學(xué)'] Loading model cost 1.062 seconds. Prefix dict has been built successfully.
1
2
3
4
5
AI 自然語(yǔ)言處理基礎(chǔ)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。