您好,登錄后才能下訂單哦!
這篇文章主要介紹“python中jieba模塊怎么使用”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“python中jieba模塊怎么使用”文章能幫助大家解決問題。
英語單詞之間是通過空格分隔的,但是中文卻不存在空格的概念,因此需要一個模塊來解決中文的分詞問題。jieba模塊是一個python第三方中文分詞模塊,可以用于將語句中的中文詞語分離出來。
jieba模塊作為python的一個第三方模塊,是需要我們自行下載安裝后才能使用的,我們主要采用pip安裝工具進行jieba的安裝,具體步驟如下:
在windows操作系統中,快捷鍵win+R,
然后輸入cmd,點擊確定,打開
輸入:
pip install jieba
即可安裝成功。
jieba模塊支持三種分詞模式:全模式、精準模式以及搜索引擎模式。
①全模式:全模式可以將句子中所有可能的詞語全部提取出來,該模式提取速度快,但可能會出現冗余詞匯。
如圖,第一行出現了冗余詞匯,其采用的就是全模式,而第二行采用精準模式。
②精準模式:精準模式通過優化的智能算法將語句精準的分隔,適用于文本分析。
③搜索引擎模式:搜索引擎模式在精準模式的基礎上對詞語進行再次劃分,提高召回率,適用于搜索引擎分詞。
參數解析:
sentence:要分割的str(unicode)。
cut_all:模型類型。True 表示全模式,False 表示精準模式。其默認為精準模式。
HMM:是否使用隱馬爾可夫模型。
函數功能:
The main function that segments an entire sentence that contains Chinese characters into separated words.
將包含漢字的整個句子分割成單獨的單詞的主要功能。
import jieba sentence = 'python是世界上最好的編程語言' ls = jieba.cut(sentence, cut_all=False) print(ls) # <generator object Tokenizer.cut at 0x000001966B14EA98>
print(type(ls)) # <class 'generator'>
如圖,其是迭代器類型,可以用以下三種方式顯示結果
①' '.join()
# ①''.join ls_1 = ' '.join(ls) print(ls_1) # python 是 世界 上 最好 的 編程 編程語言 語言
②for循環遍歷
# ②for循環遍歷 for i in ls: print(i) ''' python 是 世界 上 最好 的 編程語言 '''
③列表推導式
# ③列表推導式 ls_2 = [i for i in ls] print(ls_2) # ['python', '是', '世界', '上', '最好', '的', '編程語言']
def lcut(self, *args, **kwargs): return list(self.cut(*args, **kwargs))
查看jieba模塊,其定義lcut()函數如上,可以發現lcut()函數最終返回的是list(cut())
import jieba sentence = 'python是世界上最好的編程語言' ls = jieba.cut(sentence, cut_all=False) print(ls) print(list(ls)) ls1 = jieba.lcut(sentence, cut_all=True) print(ls1) ls2 = jieba.lcut(sentence) print(ls2)
結果如下 :
注意:cut_all=False是精準模式,也是其默認的類型。
cut_for_search(sentence, HMM=True)和lcut_for_search(sentence, HMM=True)和上面所講的類似。其都是對搜索引擎進行更精細的細分,即采用搜索引擎模式。
import jieba sentence = 'python是世界上最好的編程語言' ls3 = jieba.cut_for_search(sentence) print(ls3) # <generator object Tokenizer.cut_for_search at 0x00000199C7A3D9A8> print(list(ls3)) # ['python', '是', '世界', '上', '最好', '的', '編程', '語言', '編程語言'] ls4 = jieba.lcut_for_search(sentence) print(ls4) # ['python', '是', '世界', '上', '最好', '的', '編程', '語言', '編程語言']
Add a word to dictionary. freq and tag can be omitted, freq defaults to be a calculated value that ensures the word can be cut out.
函數功能:在字典中添加一個單詞。
參數解析:freq 和 tag 可以省略,freq 默認是一個計算值,保證單詞可以被切掉。
import jieba sentence = 'python是世界上最好的編程語言' ls2 = jieba.lcut(sentence) print(ls2) ls5 = jieba.add_word('最好的') ls6 = jieba.lcut(sentence) print(ls6)
結果如上,最終最好的就沒有被切掉。
函數功能:分詞詞典中刪除詞word
import jieba sentence = 'python是世界上最好的編程語言' ls2 = jieba.lcut(sentence) print(ls2) ls7 = jieba.del_word('世界') ls8 = jieba.lcut(sentence) print(ls8)
不過經過筆者更改word,發現word是編程語言時,最后就分割成了編程和語言;當word是編程時,結果沒變化;當word是python時,結果也沒變化。因此有些需要筆者自己去嘗試。
""" Suggest word frequency to force the characters in a word to be joined or splitted. Parameter: - segment : The segments that the word is expected to be cut into, If the word should be treated as a whole, use a str. - tune : If True, tune the word frequency. Note that HMM may affect the final result. If the result doesn't change, set HMM=False. """
函數功能:建議詞頻,強制將單詞中的字符合并或拆分。
參數解析:
segment :該單詞預期被切割成的片段,如果該單詞應該被視為一個整體,則使用str。
tune : 如果為True,則調整詞頻。
注意:HMM可能會影響最終結果。如果結果不變,設置HMM=False。
""" Tokenize a sentence and yields tuples of (word, start, end) Parameter: - sentence: the str(unicode) to be segmented. - mode: "default" or "search", "search" is for finer segmentation. - HMM: whether to use the Hidden Markov Model. """
函數功能:標記一個句子并產生 (word, start, end) 的元組
參數解析:
unicode_sentence:要分割的 str(unicode)。
模式:"default" or "search", "search" is for finer segmentation. “默認”或“搜索”,“搜索”用于更精細的分割。
HMM: 是否使用隱馬爾可夫模型。
# -*- coding: utf-8-*- import jieba sentence = 'python是世界上最好的編程語言' ls = jieba.cut(sentence, cut_all=False) # print(ls) # print(list(ls)) # # <generator object Tokenizer.cut at 0x0000019F5E44DA98> # print(type(ls)) # # <class 'generator'> # # ①''.join # ls_1 = ' '.join(ls) # print(ls_1) # # python 是 世界 上 最好 的 編程語言 # ②for循環遍歷 # for i in ls: # print(i) # ''' # python # 是 # 世界 # 上 # 最好 # 的 # 編程語言 # ''' # # ③列表推導式 # ls_2 = [i for i in ls] # print(ls_2) # # ['python', '是', '世界', '上', '最好', '的', '編程語言'] # ls1 = jieba.lcut(sentence, cut_all=True) # print(ls1) ls2 = jieba.lcut(sentence) print(ls2) # ls3 = jieba.cut_for_search(sentence) # print(ls3) # # <generator object Tokenizer.cut_for_search at 0x00000199C7A3D9A8> # print(list(ls3)) # # ['python', '是', '世界', '上', '最好', '的', '編程', '語言', '編程語言'] # ls4 = jieba.lcut_for_search(sentence) # print(ls4) # ['python', '是', '世界', '上', '最好', '的', '編程', '語言', '編程語言'] # ls5 = jieba.load_userdict('文案.txt') # ls6 = jieba.lcut(sentence) # print(ls6) # ls5 = jieba.add_word('最好的') # ls6 = jieba.lcut(sentence) # print(ls6) ls7 = jieba.del_word('世界') ls8 = jieba.lcut(sentence) print(ls8)
關于“python中jieba模塊怎么使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。