自然語言處理之實戰中文文字關鍵詞提取

2021-10-23 04:22:42 字數 3067 閱讀 1192

在資訊檢索理論中,tf-idf 是 term frequency - inverse document frequency 的簡寫。tf-idf 是一種數值統計,用於反映乙個詞對於語料中某篇文件的重要性。在資訊檢索和文字挖掘領域,它經常用於因子加權。tf-idf 的主要思想就是:如果某個詞在一篇文件**現的頻率高,也即 tf 高;並且在語料庫中其他文件中很少出現,即 df 低,也即 idf 高,則認為這個詞具有很好的類別區分能力。

sentence:待提取的文字語料;

allowpos:僅包括指定詞性的詞,預設值為空,即不篩選。

import jieba.analyse

sentence =

"人工智慧(artificial intelligence),英文縮寫為ai。它是研究、開發用於模擬、延伸和擴充套件人的智慧型的理論、方法、技術及應用系統的一門新的技術科學。人工智慧是電腦科學的乙個分支,它企圖了解智慧型的實質,並生產出一種新的能以人類智慧型相似的方式做出反應的智慧型機器,該領域的研究包括機械人、語言識別、影象識別、自然語言處理和專家系統等。人工智慧從誕生以來,理論和技術日益成熟,應用領域也不斷擴大,可以設想,未來人工智慧帶來的科技產品,將會是人類智慧型的「容器」。人工智慧可以對人的意識、思維的資訊過程的模擬。人工智慧不是人的智慧型,但能像人那樣思考、也可能超過人的智慧型。人工智慧是一門極富挑戰性的科學,從事這項工作的人必須懂得計算機知識,心理學和哲學。人工智慧是包括十分廣泛的科學,它由不同的領域組成,如機器學習,計算機視覺等等,總的說來,人工智慧研究的乙個主要目標是使機器能夠勝任一些通常需要人類智慧型才能完成的複雜工作。但不同的時代、不同的人對這種「複雜工作」的理解是不同的。2023年12月,人工智慧入選「2023年度中國**十大流行語」。"

keywords =

" "

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

20, withweight=

false

, allowpos=()

))print

(keywords)

執行結果:

人工智慧 智慧型 2017 機器 不同 人類 科學 模擬 一門 技術 計算機 研究 工作 artificial intelligence ai 影象識別 12 複雜 流行語

下面只獲取 top10 的關鍵字,並修改一下詞性,只選擇名詞和動詞,看看結果有何不同?

keywords =

(jieba.analyse.extract_tags(sentence , topk=

10, withweight=

true

, allowpos=([

'n',

'v']))

)print

(keywords)

執行結果:

[(『人工智慧』, 0.9750542675762887), (『智慧型』, 0.5167124540885567), (『機器』, 0.20540911929525774), (『人類』, 0.17414426566082475), (『科學』, 0.17250169374402063), (『模擬』, 0.15723537382948452), (『技術』, 0.14596259315164947), (『計算機』, 0.14030483362639176), (『影象識別』, 0.12324502580309278), (『流行語』, 0.11242211730309279)]

jieba.analyse.textrank(sentence, topk=

20, withweight=

false

, allowpos=

('ns'

,'n'

,'vn'

,'v'

))

直接使用,介面引數同 tf-idf 相同,注意預設過濾詞性。

接下來,我們繼續看例子,語料繼續使用上例中的句子。

result =

" "

.join(jieba.analyse.textrank(sentence, topk=

20, withweight=

false

, allowpos=

('ns'

,'n'

,'vn'

,'v'))

)print

(result)

執行結果:

智慧型 人工智慧 機器 人類 研究 技術 模擬 包括 科學 工作 領域 理論 計算機 年度 需要 語言 相似 方式 做出 心理學

如果修改一下詞性,只需要名詞和動詞,看看結果有何不同?

result =

" "

.join(jieba.analyse.textrank(sentence, topk=

20, withweight=

false

, allowpos=

('n'

,'v'))

)print

(result)

執行結果:

智慧型 人工智慧 機器 人類 技術 模擬 包括 科學 理論 計算機 領域 年度 需要 心理學 資訊 語言 識別 帶來 過程 延伸

除了 jieba,也可以選擇使用 hanlp 來完成關鍵字提取,內部採用 textrankkeyword 實現,語料繼續使用上例中的句子。

from pyhanlp import

* result = hanlp.extractkeyword(sentence,20)

print

(result)

執行結果:

[人工智慧, 智慧型, 領域, 人類, 研究, 不同, 工作, 包括, 模擬, 新的, 機器, 計算機, 門, 科學, 應用, 系統, 理論, 技術, 入選, 複雜]

自然語言處理 英文文字 python

關於自然語言處理的資料已經非常多,對於英文文字的處理步驟和方式在這裡給大家整理一下 一般來說英文文字處理有幾以下幾個步驟 1 分詞操作 分詞應該是所有自然語言處理首先都需要做的,那麼分詞有以下幾種方法供給大家參考 1.textblob包中提供的分詞操作用法 text.word,其中text為文字名稱...

自然語言處理的中文文字相似度

前言 人與計算機的互動過程中,如果能提供人類的自然語言形式來進行交流,那麼人與計算機就能更加親密友好。而要實現這一機制就需要自然語言處理來處理,一般來說自然語言處理會涉及幾個學科 電腦科學 語言學 統計學和數學等。不同語言的自然語言處理也存在差別,對於中文來說,很多時候都無法直接套用英語自然語言處理...

自然語言處理 中文分詞原理

1.1中文分詞概述 中文分詞 將乙個漢字序列分成乙個乙個的單獨的詞。分詞 將連續的字序列按照一定的規範重新組合成詞序列的過程。1.2中文分詞方法 一般有以下三類 基於詞典匹配的分詞方法 基於理解的分詞方法和基於統計的分詞方法。1.2.1 基於詞典 字串匹配 機械分詞法 匹配的分詞方法 按照一定的策略...