<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
英語單詞之間是通過空格分隔的,但是中文卻不存在空格的概念,因此需要一個模組來解決中文的分詞問題。jieba模組是一個python第三方中文分詞模組,可以用於將語句中的中文詞語分離出來。
此外,全國計算機等級考試二級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.
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. """
注意: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. """
# -*- 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模組的深入瞭解的文章就介紹到這了,更多相關python jieba 內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45