⑴ python爬蟲學習筆記——5. jieba庫中文分詞用法
整理自< 結巴中文分詞的用法>
特點
演示文檔
安裝說明 代碼對 Python 2/3 均兼容
演算法
主要功能
1. jieba 分詞有三種模式,並且支持新建自定義分詞器
代碼示例
輸出:
2. 添加自定義詞典
載入詞典
範例: 自定義詞典: https://github.com/fxsjy/jieba/blob/master/test/userdict.txt 用法示例: https://github.com/fxsjy/jieba/blob/master/test/test_userdict.py
調整詞典
代碼示例:
3. 關鍵詞提取
基於 TF-IDF 演算法的關鍵詞抽取
import jieba.analyse
jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
sentence 為待提取的文本
topK 為返回幾個 TF/IDF 權重最大的關鍵詞,默認值為 20
withWeight 為是否一並返回關鍵詞權重值,默認值為 False
allowPOS 僅包括指定詞性的詞,默認值為空,即不篩選
分詞詞性可參見博客:[詞性參考]( blog.csdn.net/HHTNAN/ar...)
jieba.analyse.TFIDF(idf_path=None)
新建 TFIDF 實例,idf_path 為 IDF 頻率文件
代碼示例 (關鍵詞提取) https://github.com/fxsjy/jieba/blob/master/test/extract_tags.py
關鍵詞提取所使用逆向文件頻率(IDF)文本語料庫可以切換成自定義語料庫的路徑
用法: jieba.analyse.set_idf_path(file_name)
# file_name為自定義語料庫的路徑
自定義語料庫示例: github.com/fxsjy/jieba/...
用法示例: github.com/fxsjy/jieba/...
關鍵詞提取所使用停止詞(Stop Words)文本語料庫可以切換成自定義語料庫的路徑
用法: jieba.analyse.set_stop_words(file_name)
# file_name為自定義語料庫的路徑
自定義語料庫示例: github.com/fxsjy/jieba/...
用法示例: github.com/fxsjy/jieba/...
關鍵詞一並返回關鍵詞權重值示例
用法示例: ttps://github.com/fxsjy/jieba/blob/master/test/extract_tags_with_weight.py
基於 TextRank 演算法的關鍵詞抽取
jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v'))
直接使用,介面相同,注意默認過濾詞性。
jieba.analyse.TextRank()
新建自定義 TextRank 實例
演算法論文: TextRank: Bringing Order into Texts
基本思想:
使用示例: 見 test/demo.py
4. 詞性標注
5. 並行分詞
6. Tokenize:返回詞語在原文的起止位置
輸出:
輸出
7. ChineseAnalyzer for Whoosh 搜索引擎
8. 命令行分詞
使用示例:python -m jieba news.txt > cut_result.txt
命令行選項(翻譯):
延遲載入機制 jieba 採用延遲載入,import jieba 和 jieba.Tokenizer()不會立即觸發詞典的載入,一旦有必要才開始載入詞典構建前綴字典。
如果你想手工初始 jieba,也可以手動初始化。
下面部分內容整理自< python jieba分詞(結巴分詞)、提取詞,載入詞,修改詞頻,定義詞庫>
二、 常用NLP擴充知識點(python2.7)
這幾個點在知乎爬蟲程序中很有用處
Part 1. 詞頻統計、降序排序
Part 2. 人工去停用詞
標點符號、虛詞、連詞不在統計范圍內
Part 3. 合並同義詞
將同義詞列舉出來,按下Tab鍵分隔,把第一個詞作為需要顯示的詞語,後面的詞語作為要替代的同義詞,一系列同義詞放在一行。
這里,「北京」、「首都」、「京城」、「北平城」、「故都」為同義詞。
Part 4. 詞語提及率
主要步驟:分詞——過濾停用詞(略)——替代同義詞——計算詞語在文本中出現的概率。
Part 5. 按詞性提取
⑵ 在python 環境下,使用結巴分詞,自動導入文本,分詞,提取關鍵詞.腳本 大俠給個
#-*-coding:UTF-8-*-
importjieba
__author__='lpe234'
seg_list=jieba.cut("我來到北京天安門",cut_all=True)
print','.join(seg_list)
...
Loadingmodelfromcache/var/folders/sv//T/jieba.cache
我,來到,北京,天安,天安門
Loadingmodelcost0.433seconds.
.
Processfinishedwithexitcode0