jieba 使用笔记
生活随笔
收集整理的這篇文章主要介紹了
jieba 使用笔记
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
jieba 使用筆記
- 初始化
- 分詞 jieba.cut(sentence, cut_all , HMM)
- 自定義詞典
- 詞性標注
- 關鍵詞提取
- Tokenize:返回詞語在原文的起止位置
- ChineseAnalyzer for Whoosh 搜索引擎
安裝: pip 即可
初始化
import jieba import jieba.posseg # 詞性標注 import jieba.analyse # 關鍵詞 from jieba.analyse import ChineseAnalyzer # 搜索引擎 # jieba.initialize() # 手動初始化(可選)分詞 jieba.cut(sentence, cut_all , HMM)
cut_all= 參數用來控制分詞模式 False 為精確模式 True為全模式
HMM= 參數用來控制是否使用 HMM 模型用于新詞發現
jieba提供3種分詞模式:
并行分詞(不支持win)
jieba.enable_parallel(2) # 開啟并行分詞模式,參數為并行進程數
jieba.disable_parallel() # 關閉并行分詞模式
cut/cut_for_search 返回 generator
lcut/lcut_for_search 返回 list
為print更清晰 易于比較 使用 str.ljust()/center()/rjust()函數實現輸出的字符串左對齊、居中、右對齊
自定義詞典
詞典格式:
一詞一行 一行:詞語 詞頻(可省)詞性(可省) 空格分隔 順序不可顛倒 UTF-8編碼
使用 add_word(word, freq=None, tag=None) 和 del_word(word) 可在程序中動態修改詞典。
使用 suggest_freq(segment, tune=True) 可調節單個詞語的詞頻,使其能(或不能)被分出來。
注意:自動計算的詞頻在使用 HMM 新詞發現功能時可能無效。
詞性標注
jieba.posseg.POSTokenizer(tokenizer=None) 新建自定義分詞器,tokenizer 參數可指定內部使用的 jieba.Tokenizer 分詞器。jieba.posseg.dt 為默認詞性標注分詞器。
標注句子分詞后每個詞的詞性,采用和 ictclas 兼容的標記法。
返回 generator
關鍵詞提取
兩種方式:
jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
sentence 為待提取的文本
topK 為返回幾個 TF/IDF 權重最大的關鍵詞,默認值為 20
withWeight 為是否一并返回關鍵詞權重值,默認值為 False
allowPOS 僅包括指定詞性的詞,默認值為空,即不篩選
jieba.analyse.TFIDF(idf_path=None) 新建 TFIDF 實例,idf_path 為 IDF 頻率文件
jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=(‘ns’, ‘n’, ‘vn’, ‘v’))
直接使用,接口相同,注意默認過濾詞性。
jieba.analyse.TextRank() 新建自定義 TextRank 實例
Tokenize:返回詞語在原文的起止位置
注意,輸入參數只接受 unicode
有默認模式與搜索模式
ChineseAnalyzer for Whoosh 搜索引擎
簡單測試下
analyzer = ChineseAnalyzer() [print(t.text) for t in analyzer("在南京市長江大橋研究生命的起源")] print(analyzer) # Out[] # CompositeAnalyzer(ChineseTokenizer(), LowercaseFilter(), StopFilter(stops=frozenset({'that', 'or', 'with', 'for', 'if', '了', 'and', 'a', 'you', 'have', 'from', 'is', 'may', 'in', 'we', 'as', 'of', 'us', 'tbd', 'when', 'by', 'it', 'this', 'on', 'can', 'the', 'yet', 'not', 'at', '和', 'an', 'are', 'to', 'your', 'will', '的', 'be'}), min=1, max=None, renumber=True), StemFilter(stemfn=<function stem at 0x00000198D106F510>, lang=None, ignore=frozenset(), cachesize=50000, _stem=<function stem at 0x00000198D1090EA0>))總結
以上是生活随笔為你收集整理的jieba 使用笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java学习笔记_身份验证机制
- 下一篇: 好久没发胡说八道的贴了,今天发一贴