【K行代碼】用Python給你的文本提取關鍵詞

圖片

  • 對代碼、編程感興趣的能夠關注老K玩代碼和我交流!

image.png

用Python給你的文本提取關鍵詞

關鍵詞提取是天然語言處理中常見的業務模塊;
要實現關鍵詞提取,Python已經有比較好的現成的開源庫能夠用,好比我今天要介紹的jieba。
讓咱們來看看如何進行關鍵詞提取:html

1. 導入jieba關鍵詞提取模塊

import jieba.analyse as ana
  • jieba被較多地應用於中文文本的天然語言處理,最經常使用到的功能是分詞。
  • 但除了分詞之外,它還有不少其它api接口給到咱們,而今天要提到的關鍵詞提取就是其中之一。

2. 用textrank方法獲取關鍵詞

keyword = ana.textrank(sentence)

可選參數說明:算法

  • topK: 輸出的關鍵詞數量,若是是None則所有關鍵詞都輸出;
  • withWeight: 輸出的關鍵詞是否附帶textrank計算出來的權重值;
  • allowPOS: 該參數爲列表,表示僅顯示符合該參數設置詞性的關鍵詞;
  • withFlag: 輸出的關鍵詞是否附帶詞性;

TextRank編程

  • TextRank算法是利用局部詞彙之間關係(共現窗口)對後續關鍵詞進行排序,直接從文本自己抽取。
  • 參考詳文: https://www.cnblogs.com/xueyinzhe/p/7101295.html

3. 用tfidf方法獲取關鍵詞

keyword = ana.tfied(sentence)

可選參數說明:api

  • topK: 輸出的關鍵詞數量,若是是None則所有關鍵詞都輸出;
  • withWeight: 輸出的關鍵詞是否附帶textrank計算出來的權重值;
  • allowPOS: 該參數爲列表,表示僅顯示符合該參數設置詞性的關鍵詞;
  • withFlag: 輸出的關鍵詞是否附帶詞性;

TFIDF機器學習

  • TFIDF算法是利用根據詞頻和逆文檔頻率得出關鍵詞的權重,直接從文本自己抽取。
  • 參考詳文: https://blog.csdn.net/zrc199021/article/details/53728499

4. 總結

  • TextRank於TFIDF相比,過於依賴分詞結果,若是分詞時,某些關鍵詞被切分了,就會獲得不一樣的結果;
  • 基於上述緣由,TextRank在工業界實際應用時,會須要對部分切分的關鍵詞進行合併操做;
  • TextRank在實際應用的效果稍差於TFIDF,在二者沒有明顯準確率、召回率差異的狀況下,建議使用TFIDF;
  • TextRank涉及到迭代計算,因此提取關鍵詞的速度稍慢於TFIDF;
  • jieba開源庫的詞典中,每一個關鍵詞都有初始權重,用於上述兩種算法的運算。

往期精彩推薦:

粉絲福利:

相關文章
相關標籤/搜索