![圖片](http://static.javashuo.com/static/loading.gif)
![1609156893383246.png image.png](http://static.javashuo.com/static/loading.gif)
用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開源庫的詞典中,每一個關鍵詞都有初始權重,用於上述兩種算法的運算。
往期精彩推薦:
粉絲福利: