Python中jieba分詞是什么?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比渾源網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式渾源網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋渾源地區(qū)。費用合理售后完善,10年實體公司更值得信賴。
1.jieba分詞的安裝
直接在cmd窗口當中pip install即可
2.jieba分詞的介紹
jieba分詞是目前比較好的中文分詞組件之一,jieba分詞支持三種模式的分詞(精確模式、全模式、搜索引擎模式),并且支持自定義詞典(這一點在特定的領域很重要,有時候需要根據(jù)領域的需要來添加特定的詞典以提高分詞結果的質(zhì)量)、支持繁體字分詞。
3.jieba分詞三種分詞模式及使用例子
jieba分詞模塊的主要方法是jieba.cut(),精確模式和全模式的區(qū)別主要在于其中的參數(shù)不同
(1)精確模式:將文本精確地切開,適用于文本分析
jieba.cut()方法里面的CUT_ALL=False
(2)全模式:將文本里面所有可以成詞的詞語全部提取出來,速度較快,但是不能解決歧義的問題
jieba.cut()方法里面的CUT_ALL=True
(3)搜索引擎模式:在精確模式的基礎上,將長詞再次切分,供搜索使用
需要調(diào)用jieba.cut_for_search()方法
僅僅是看這些東西,看不出個所以然來,接下來對三種分詞的模式進行測試:
text='北京郵電大學是教育部直屬、工業(yè)和信息化部共建、首批進行“211工程”建設的全國重點大學' try_words=jieba.cut(text,cut_all=True) print ('全模式分詞結果:'+','.join(try_words)) try_words=jieba.cut(text,cut_all=False) print ('精確模式分詞結果:'+','.join(try_words)) try_words=jieba.cut_for_search(text) print ('搜素引擎模式分詞結果:'+','.join(try_words))
上述代碼運行結果:
全模式分詞結果:北京,北京郵電,北京郵電大學,郵電,郵電大學,電大,大學,是,教育,教育部,直屬,,,工業(yè),和,信息,信息化,部, 共建,,,首批,進行,,211,工程,,,建設,的,全國,重點,大學 精確模式分詞結果:北京郵電大學,是,教育部,直屬,、,工業(yè),和,信息化,部,共建,、,首批,進行,“,211,工程,”,建設,的,全國,重點, 大學 搜素引擎模式分詞結果:北京,郵電,電大,大學,北京郵電大學,是,教育,教育部,直屬,、,工業(yè),和,信息,信息化,部,共建,、,首批,進行, “,211,工程,”,建設,的,全國,重點,大學
分析上述代碼得到的結果,我們看出全模式分詞是將文本當中所有的詞都提取出來,提詞的窗口是允許重疊和包含的,詞語當中的字眼可以出現(xiàn)多次,但是這種分詞模式有可能會出現(xiàn)歧義;精確模式分詞是將文本精確地分隔開,成詞較長的優(yōu)先,不存在成詞窗口的重疊與重復的情況,這種分詞模式出現(xiàn)歧義的概率比較小,但是有可能會出現(xiàn)分詞窗口過大,某些重點詞不會單獨出現(xiàn)在結果當中的情況。綜上所述,這兩種模式的分詞適用于不同的情景,應當酌情選擇。
值得一提的是,這個例子當中的“工業(yè)和信息化部”也應當是一個獨立的名詞,但是這三種分詞方法當中都沒有出現(xiàn)這個詞語,這就需要人工添加詞庫來實現(xiàn),放在下一部分。
再對文本當中可能出現(xiàn)的歧義情況進行嘗試:
text2='南京市長江大橋是一座大橋' try_words=jieba.cut(text2,cut_all=True) print ('全模式分詞結果:'+','.join(try_words)) try_words=jieba.cut(text2,cut_all=False) print ('精確模式分詞結果:'+','.join(try_words)) try_words=jieba.cut_for_search(text2) print ('搜索引擎模式分詞結果:'+','.join(try_words))
這個例子當中的文本為“南京市長江大橋是一座大橋”,我們希望提取出來的分詞結果應當為:“南京市長江大橋”,或者說,最次也應該是“南京市”和“長江大橋”兩個詞語,上述代碼的運行結果為:
全模式分詞結果:南京,南京市,京市,市長,長江,長江大橋,大橋,是,一座,大橋 精確模式分詞結果:南京市,長江大橋,是,一座,大橋 搜索引擎模式分詞結果:南京,京市,南京市,長江,大橋,長江大橋,是,一座,大橋
分析結果:三種模式當中都沒有出現(xiàn)我們的最佳預期(南京市長江大橋),反而在全模式和搜索引擎模式下的分詞結果當中出現(xiàn)了歧義詞(市長、京市),這跟我們的語境顯然是無關的,這也恰好反映了全模式和搜索引擎模式分詞的一個缺陷,也就是容易出現(xiàn)與語境無關的歧義詞,而精確模式出現(xiàn)的比較少。
至于為什么會出現(xiàn)上述情況,我在查閱相關資料之后,認為原因如下:
中文分詞的方法大致可以分為三類:
基于字典、詞庫匹配的分詞方法;基于詞頻度統(tǒng)計的分詞方法和基于知識理解的分詞方法(另外還有逐詞遍歷法,但是因為不論文本有多么短,詞庫多么大都要逐詞遍歷一遍,效率過低,所以說大部分情況不予采用)。一般的中文分詞模塊使用基于字典、詞庫的分詞方法,全模式使用的策略為(設詞典中最長詞的長度為n):從字段的第一個字符開始,向后讀取1,2,...n個字符,并且到詞典當中去對應,如果能對應上,就將其取出來,這樣就可以達到將所有可以成詞的字段提取出來(并且有重復部分)的目的;而相應的,精確模式的分詞策略則可能是盡可能將取詞窗口擴大,也就是在可能含有重復的長度從1到n的這些詞中,取最長的一個輸出。
(上述的“原因”只是我在使用分詞模塊的各個模式時的一點個人看法,不一定正確,對于項目也沒有什么影響,畢竟我也沒有去專門研究過源碼。。。)
4.jieba分詞添加自定義的詞典
中文分詞常常用于許多特定的語境,相應的也就需要添加一些特定語境下的詞典,比如上一部分的“南京市長江大橋”就屬于“地標建筑”之類的詞典,如果分詞將其分為“南京市”和“長江大橋”就有可能不能完全反映出原文本的重點(畢竟南京市的東西很多,長江大橋也不止南京市有),這種時候我們就需要添加自定義的詞典來提高分詞的質(zhì)量。
jieba.add_word('工業(yè)和信息化部')
使用jieba模塊的add_word()方法即可對其加入新的詞,插入之后的分詞結果如下:
全模式分詞結果:北京,北京郵電,北京郵電大學,郵電,郵電大學,電大,大學,是,教育,教育部,直屬,,,工業(yè),工業(yè)和信息化部,信息, 信息化,部,共建,,,首批,進行,,211,工程,,,建設,的,全國, 重點,大學 精確模式分詞結果:北京郵電大學,是,教育部,直屬,、,工業(yè)和信息化部,共建,、,首批,進行,“,211,工程,”,建設,的,全國,重點, 大學 搜素引擎模式分詞結果:北京,郵電,電大,大學,北京郵電大學,是,教育,教育部,直屬,、,工業(yè),信息,信息化,工業(yè)和信息化部,共建,、 ,首批,進行“,211,工程,”,建設,的,全國,重點,大學 全模式分詞結果:南京,南京市,南京市長江大橋,京市,市長,長江,長江大橋,大橋,是,一座,大橋 精確模式分詞結果:南京市長江大橋,是,一座,大橋 搜索引擎模式分詞結果:南京,京市,市長,長江,大橋,南京市,南京市長江大橋,是,一座,大橋
主要的改變在于全模式和搜索引擎模式直接加入了這個詞,而精確模式則是將新加詞的子集詞(姑且這么稱呼)取代了,這也符合上一部分的假設。
看完上述內(nèi)容,你們掌握Python中jieba分詞是什么的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
當前名稱:Python中jieba分詞是什么
文章轉載:http://aaarwkj.com/article40/iposho.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供云服務器、商城網(wǎng)站、網(wǎng)站制作、外貿(mào)建站、自適應網(wǎng)站、手機網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)