jieba 基於 TF-IDF 演算法的關鍵詞提取

Galois發表於2020-12-19
import jieba.analyse

jieba.analyse.extract_tags(sentence, topK=20, withWeight=False,
allowPOS=())
  • sentence 為待提取的文字
  • topK 為返回幾個 TF/IDF 權重最大的關鍵詞,預設值為 20
  • withWeight 為是否一併返回關鍵詞權重值,預設值為 False
  • allowPOS 僅包括指定詞性的詞,預設值為空,即不篩選
# 新建 TFIDF 例項,idf_path 為 IDF 頻率檔案
jieba.analyse.TFIDF(idf_path=None)

關鍵詞提取所使用停止詞(Stop Words)文字語料庫可以切換成自定義語料庫的路徑

# file_name為自定義語料庫的路徑
jieba.analyse.set_stop_words(file_name)

自定義語料庫示例:

!
"
#
$
%
&
'
(
)
*
+
,
-
--
.
..
...
......
...................
./
.一
記者
數
年
月
日
時
分
秒
/
//
0
1
2
3
4
import jieba
import jieba.analyse
content = open('demo.txt', 'r', encoding='utf-8').read()
jieba.analyse.set_stop_words("stopwords.txt")
tags = jieba.analyse.extract_tags(content, topK=10)
print(",".join(tags))

關鍵詞一併返回關鍵詞權重值示例:

import jieba
import jieba.analyse
content = open('demo.txt', 'r', encoding='utf-8').read()
jieba.analyse.set_stop_words("stopwords.txt")
tags = jieba.analyse.extract_tags(content, topK=10, withWeight=True)
for tag in tags:
    print("tag:%s\t\t weight:%f"%(tag[0],tag[1]))
本作品採用《CC 協議》,轉載必須註明作者和本文連結
不要試圖用百米衝刺的方法完成馬拉松比賽。

相關文章