jieba 使用笔记
jieba 使用筆記
- 初始化
- 分詞 jieba.cut(sentence, cut_all , HMM)
- 自定義詞典
- 詞性標(biāo)注
- 關(guān)鍵詞提取
- Tokenize:返回詞語(yǔ)在原文的起止位置
- ChineseAnalyzer for Whoosh 搜索引擎
安裝: pip 即可
初始化
import jieba import jieba.posseg # 詞性標(biāo)注 import jieba.analyse # 關(guān)鍵詞 from jieba.analyse import ChineseAnalyzer # 搜索引擎 # jieba.initialize() # 手動(dòng)初始化(可選)分詞 jieba.cut(sentence, cut_all , HMM)
cut_all= 參數(shù)用來(lái)控制分詞模式 False 為精確模式 True為全模式
HMM= 參數(shù)用來(lái)控制是否使用 HMM 模型用于新詞發(fā)現(xiàn)
jieba提供3種分詞模式:
并行分詞(不支持win)
jieba.enable_parallel(2) # 開(kāi)啟并行分詞模式,參數(shù)為并行進(jìn)程數(shù)
jieba.disable_parallel() # 關(guān)閉并行分詞模式
cut/cut_for_search 返回 generator
lcut/lcut_for_search 返回 list
為print更清晰 易于比較 使用 str.ljust()/center()/rjust()函數(shù)實(shí)現(xiàn)輸出的字符串左對(duì)齊、居中、右對(duì)齊
自定義詞典
詞典格式:
一詞一行 一行:詞語(yǔ) 詞頻(可省)詞性(可省) 空格分隔 順序不可顛倒 UTF-8編碼
使用 add_word(word, freq=None, tag=None) 和 del_word(word) 可在程序中動(dòng)態(tài)修改詞典。
使用 suggest_freq(segment, tune=True) 可調(diào)節(jié)單個(gè)詞語(yǔ)的詞頻,使其能(或不能)被分出來(lái)。
注意:自動(dòng)計(jì)算的詞頻在使用 HMM 新詞發(fā)現(xiàn)功能時(shí)可能無(wú)效。
詞性標(biāo)注
jieba.posseg.POSTokenizer(tokenizer=None) 新建自定義分詞器,tokenizer 參數(shù)可指定內(nèi)部使用的 jieba.Tokenizer 分詞器。jieba.posseg.dt 為默認(rèn)詞性標(biāo)注分詞器。
標(biāo)注句子分詞后每個(gè)詞的詞性,采用和 ictclas 兼容的標(biāo)記法。
返回 generator
關(guān)鍵詞提取
兩種方式:
jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
sentence 為待提取的文本
topK 為返回幾個(gè) TF/IDF 權(quán)重最大的關(guān)鍵詞,默認(rèn)值為 20
withWeight 為是否一并返回關(guān)鍵詞權(quán)重值,默認(rèn)值為 False
allowPOS 僅包括指定詞性的詞,默認(rèn)值為空,即不篩選
jieba.analyse.TFIDF(idf_path=None) 新建 TFIDF 實(shí)例,idf_path 為 IDF 頻率文件
jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=(‘ns’, ‘n’, ‘vn’, ‘v’))
直接使用,接口相同,注意默認(rèn)過(guò)濾詞性。
jieba.analyse.TextRank() 新建自定義 TextRank 實(shí)例
Tokenize:返回詞語(yǔ)在原文的起止位置
注意,輸入?yún)?shù)只接受 unicode
有默認(rèn)模式與搜索模式
ChineseAnalyzer for Whoosh 搜索引擎
簡(jiǎn)單測(cè)試下
analyzer = ChineseAnalyzer() [print(t.text) for t in analyzer("在南京市長(zhǎng)江大橋研究生命的起源")] 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>))總結(jié)
以上是生活随笔為你收集整理的jieba 使用笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Java学习笔记_身份验证机制
- 下一篇: 好久没发胡说八道的贴了,今天发一贴