Python分詞模組推薦:jieba中文分詞

來源:互聯網
上載者:User

標籤:python   中文分詞   結巴模組   

一、結巴中文分詞採用的演算法

  • 基於Trie樹結構實現高效的詞圖掃描,產生句子中漢字所有可能成詞情況所構成的有向非循環圖(DAG)
  • 採用了動態規劃尋找最大機率路徑, 找出基於詞頻的最大切分組合
  • 對於未登入詞,採用了基於漢字成詞能力的HMM模型,使用了Viterbi演算法

二、結巴中文分詞支援的分詞模式

目前結巴分詞支援三種分詞模式:

  1. 精確模式,試圖將句子最精確地切開,適合文本分析;
  2. 全模式,把句子中所有的可以成詞的詞語都掃描出來, 速度非常快,但是不能解決歧義;
  3. 搜尋引擎模式,在精確模式的基礎上,對長詞再次切分,提高召回率,適合用於搜尋引擎分詞。
<span style="font-size:14px;"><pre name="code" class="python"># -*- coding:utf-8 -*-import jiebatext = '我來到北京清華大學'default_mode =jieba.cut(text)full_mode = jieba.cut(text,cut_all=True)search_mode = jieba.cut_for_search(text)print "精確模式:","/".join(default_mode)print "全模式:","/".join(full_mode)print "搜尋引擎模式:","/".join(search_mode)精確模式: 我/來到/北京/清華大學全模式: 我/來到/北京/清華/清華大學/華大/大學搜尋引擎模式: 我/來到/北京/清華/華大/大學/清華大學</span>


上述代碼解釋:

  • jieba.cut方法接受兩個輸入參數: 1) 第一個參數為需要分詞的字串 2)cut_all參數用來控制是否採用全模式,預設不採用。
  • jieba.cut_for_search方法接受一個參數:需要分詞的字串,該方法適合用於搜尋引擎構建倒排索引的分詞,粒度比較細
  • 注意:待分詞的字串可以是gbk字串、utf-8字串或者unicode
  • jieba.cut以及jieba.cut_for_search返回的結構都是一個可迭代的generator,可以使用for迴圈來獲得分詞後得到的每一個詞語(unicode),也可以用list(jieba.cut(…))轉化為list

三、結巴中文分詞的其他功能

1、添加或管理自訂字典

結巴的所有字典內容存放在dict.txt,你可以不斷的完善dict.txt中的內容。

2、關鍵詞抽取

通過計算分詞後的關鍵詞的TF/IDF權重,來抽取重點關鍵詞。

3.詞性標註

對一句話進行切分後,對每個詞進行詞性標註,是名詞還是動詞

具體樣本:

<span style="font-size:14px;"># -*- coding:utf-8 -*-import jieba.analysetext = "結巴中文分詞模組是一個非常好的Python分片語件" tags = jieba.analyse.extract_tags(text,2) print "關鍵詞抽取:","/".join(tags)關鍵詞抽取: 分詞/Python</span>

<span style="font-size:14px;">#! /usr/bin/env python2.7#coding:utf-8import jiebaimport jieba.possegprint "Full Mode:","/".join(jieba.cut('始遊泳'))print "Full Mode:","/".join(jieba.cut('過郭美美'))s=["我勒個去","費打電話","響全世界","線情人"]for i in s:    pos=[]    seg=jieba.posseg.cut(i)    for j in seg:        print j.word,'/',j.flag,'#',        pos.append([j.word,j.flag])    print  #----------------------------------string="當我輸給青雉的時候就在想,在以後的航海中再遇到像他那麼強的對手的時候"seg=jieba.posseg.cut(string)pos=[]for i in seg:    pos.append([i.word,i.flag])for i in pos:    print i[0],'/',i[1],"#",</span>

輸出結果:

<span style="font-size:14px;">Full Mode:Building prefix dict from E:\Python27\lib\site-packages\jieba\dict.txt ...Loading model from cache c:\users\shifeng\appdata\local\temp\jieba.cacheLoading model cost 0.941999912262 seconds.Prefix dict has been built succesfully. 始/遊泳Full Mode: 過/郭美美我 / r # 勒 / v # 個 / q # 去 / v #費 / v # 打電話 / l #響 / zg # 全世界 / n #線 / n # 情人 / n #當 / p # 我 / r # 輸給 / v # 青雉 / n # 的 / uj # 時候 / n # 就 / d # 在 / p # 想 / v # , / x # 在 / p # 以後 / f # 的 / uj # 航海 / n # 中 / f </span>

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

Python分詞模組推薦:jieba中文分詞

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.