mmseg4j中文分詞包學(xué)習(xí)報(bào)告

目錄

1.認(rèn)識(shí)中文分詞包
2.分詞方法與效果分析
3.分詞包背后的分詞算法學(xué)習(xí)
4.分詞結(jié)果提交
5.基于分詞結(jié)果的詞云分析
<p>1.認(rèn)識(shí)中文分詞包
本次的中文分詞包學(xué)習(xí)我使用的是mmseg4j分詞器患整,資料查得砖顷,mmseg4j用Chih-Hao Tsai 的MMSeg算法實(shí)現(xiàn)的中文分詞器涩嚣,并實(shí)現(xiàn)lucene的analyzer和solr的TokenizerFactory以方便在Lucene和Solr中使用。 MMSeg 算法有三種分詞方法:MaxWord省核、Simple和Complex稿辙,都是基于正向最大匹配。

  • <p>solr +mmseg4j中文分詞
    此方法是在solr下配置中文分詞器mmeseg4j气忠,在配置前邻储,需要安裝好java運(yùn)行環(huán)境未桥。配置jdk
    solr下載:http://www-eu.apache.org/dist/lucene/solr/6.5.1/
    下載solr后本地便可以使用芥备,運(yùn)行cmd冬耿,進(jìn)入下載的solr文件中的bin文件夾中,通過solr start命令運(yùn)行solr
    solrstart.png

    如此萌壳,便可在本地打開solr:http://localhost:8983/solr/#/
solr.png
    隨后亦镶,下載mmseg4j配置在solr中。
    mmseg4j下載:http://download.csdn.net/search?keywords=mmseg4j
    整合mmseg4j:
    (1)mmseg4j支持Solr需要使用附件的mmseg4j-solr-x.x.x.jar以及mmseg4j-core-x.x.jar(x是多少取決于下載的solr的版本)袱瓮,將這兩個(gè)jar包放在類似于這樣的目錄下:

../solr/server/solr-webapp/webapp/WEB-INF/lib
(2)在cmd中缤骨,創(chuàng)建一個(gè)core:solr create -c abc(abc為自定義)

solrcreate.png
    (3)進(jìn)入目錄:../solr/server/solr/abc/conf,修改其中managed-schem


<!-- mmseg4j-->
    <field name="mmseg4j_complex_name" type="text_mmseg4j_complex" indexed="true" stored="true"/>
    <field name="mmseg4j_maxword_name" type="text_mmseg4j_maxword" indexed="true" stored="true"/>
    <field name="mmseg4j_simple_name" type="text_mmseg4j_simple" indexed="true" stored="true"/>

    <fieldType name="text_mmseg4j_complex" class="solr.TextField" positionIncrementGap="100" >
        <analyzer>
          <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="D:\solr\solr-6.5.1\server\solr\abc\conf"/>
          <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        </analyzer>
    </fieldType>
    <fieldType name="text_mmseg4j_maxword" class="solr.TextField" positionIncrementGap="100" >
        <analyzer>
           <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" dicPath="D:\solr\solr-6.5.1\server\solr\abc\conf"/>
           <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        </analyzer>
    </fieldType>
    <fieldType name="text_mmseg4j_simple" class="solr.TextField" positionIncrementGap="100" >
        <analyzer>
        <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="D:\solr\solr-6.5.1\server\solr\abc\conf"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
      </analyzer>
  </fieldType>
<!-- mmseg4j-->

注意:dicPath中的值應(yīng)修改為相應(yīng)的值尺借。
重啟Solr 后绊起,即可在新創(chuàng)建的abc這個(gè)core的Analysis中看到mmseg4j新增的field


solrabc.png

到這個(gè)時(shí)候便可以開始輸入字段進(jìn)行分詞了。但這里我卻遇到很大的問題燎斩。如下圖虱歪,當(dāng)我輸入一段文字以后,點(diǎn)擊分詞卻毫無反應(yīng)栅表,也不知道是什么問題笋鄙,到處都修改了一遍甚至重新安裝了一遍還是同樣的錯(cuò)誤。前前后后弄了好幾個(gè)小時(shí)怪瓶。


analysef.png

我也很崩潰萧落,特別崩潰。后來已經(jīng)是純屬亂弄了洗贰,然而當(dāng)我點(diǎn)了右上角那個(gè)Use <u>original UI</u>后找岖,竟莫名其妙地可以了,很奇怪的地方敛滋,我也不懂為什么许布。但是再看右上角的文字,說是該用戶界面過時(shí)矛缨,隱隱擔(dān)心可能后續(xù)步驟會(huì)進(jìn)行不下去爹脾。知道其中緣由的還望求解帖旨。
analyset.png

<p>
  • <p>本地cmd中mmseg4j中文分詞
    這個(gè)步驟倒是不需要solr箕昭,直接一個(gè)命令后就可以進(jìn)行分詞操作了。好處是方便操作解阅,不好的地方是所分詞的文字需要復(fù)制粘貼進(jìn)去落竹,而分好的內(nèi)容需要復(fù)制粘貼出來,而且無法對(duì)文件分詞货抄,它只能對(duì)復(fù)制或輸入的文字進(jìn)行分詞述召。
    進(jìn)入mmseg4j所在文件夾朱转,輸入:java -cp mmseg4j-core-1.10.0.jar com.chenlb.mmseg4j.example.MaxWord(用哪種分詞方法就寫哪種)+ 所要分詞的字符串,如此便可得到結(jié)果积暖。
mmseg4j.png

<p>2.分詞方法與效果分析
最近又大火的歡樂頌藤为,我就用歡樂頌的簡(jiǎn)介進(jìn)行分詞。分詞內(nèi)容為:
從外地來上海打拼的樊勝美(蔣欣飾)夺刑、關(guān)雎爾(喬欣飾)缅疟、邱瑩瑩(楊紫飾)三個(gè)女生合租一套房,與高智商海歸金領(lǐng)安迪(劉濤飾)遍愿、魅力超群的富家女曲筱綃(王子文飾)存淫,同住在一個(gè)名叫“歡樂頌”的中檔小區(qū)22樓,五個(gè)女人性格迥異沼填,各自攜帶著來自工作桅咆、愛情和家庭的困難與不如意,因?yàn)猷従雨P(guān)系而相識(shí)相知坞笙,從互相揣測(cè)對(duì)方到漸漸接納彼此并互相敞開心扉岩饼,在這一過程中齊心協(xié)力解決了彼此生活中發(fā)生的種種問題和困惑,并見證彼此在上海這座“魔都”的成長(zhǎng)與蛻變薛夜。 不離不棄忌愚、手拉手、團(tuán)結(jié)一心却邓、克服困難硕糊、目標(biāo)一致。

outsolr.png

這是solr上的分詞結(jié)果腊徙,可以看出简十,其無法看到完整的分詞內(nèi)容(或許有解決方法但至今我還沒有找到),所以我決定在cmd內(nèi)進(jìn)行分詞撬腾。
<p>maxword方法:


outm.png

complex方法:


outc.png

simple方法:
outs.png

分詞效果分析:
可以看出三個(gè)方法的分詞結(jié)果不盡相同螟蝙,歸納出三種方法的不一樣處及正確分詞方法:

dif.png

除此之外,三種分詞方法存在著一些同樣的錯(cuò)誤民傻。

人名錯(cuò)誤:樊勝美胰默、蔣欣、關(guān)雎爾漓踢、喬欣牵署、邱瑩瑩、楊紫喧半、安迪奴迅、劉濤、曲筱綃挺据、王子文取具。

其他錯(cuò)誤:

  • 錯(cuò)誤:一 | 套房
    正確:一套房
  • 錯(cuò)誤:高 | 智商
    正確:高智商
  • 錯(cuò)誤:海 | 歸
    正確:海歸
  • 錯(cuò)誤:金 | 領(lǐng)
    正確:金領(lǐng)
  • 錯(cuò)誤:魅力 | 超群
    正確:魅力超群
  • 錯(cuò)誤:富 | 家 | 女
    正確:富家女
  • 錯(cuò)誤:魔 | 都
    正確:魔都
  • 錯(cuò)誤:團(tuán)結(jié) | 一心
    正確:團(tuán)結(jié)一心
  • 錯(cuò)誤:目標(biāo) | 一致
    正確:目標(biāo)一致

綜上所述可以看出脖隶,complex這一分詞方法的準(zhǔn)確率最高。

    存在分詞錯(cuò)誤時(shí)暇检,便需要進(jìn)行改進(jìn)产阱。改進(jìn)的方法是設(shè)置自定義詞庫(kù)包,再將詞庫(kù)包放入詞庫(kù)目錄下块仆。cmd中還需要配置環(huán)境心墅,較為麻煩,所以我決定在solr進(jìn)行詞庫(kù)的添加榨乎。
    首先怎燥,我創(chuàng)建相應(yīng)的詞庫(kù)包:words-test-my.dic(需以words開頭,擴(kuò)展名為dic)蜜暑。
word.png

隨后铐姚,將該詞庫(kù)包放入詞庫(kù)目錄下。
..\solr\server\solr\abc\conf
在此肛捍,還需要在managed-schem添加字段(度娘上看到的教程隐绵,我也不知道這段文字是干什么的)。

<requestHandler name="/mmseg4j/reloadwords" class="com.chenlb.mmseg4j.solr.MMseg4jHandler">
    <lst name="defaults">
        <str name="dicPath">D:\solr\solr-6.5.1\server\solr\abc\conf</str>
        <str name="check">true</str>
        <str name="reload">true</str>
    </lst>
</requestHandler>

同樣拙毫,dicPath中的值應(yīng)修改為相應(yīng)的值依许。
<p>


out1.png
out2.png
out3.png
out4.png
out5.png
out6.png

以上為增加詞庫(kù)后的分詞結(jié)果,將就看吧缀蹄。

3.分詞包背后的分詞算法學(xué)習(xí)
mmseg4j使用的是Chih-Hao Tsai 的MMSeg算法
其算法原文:http://technology.chtsai.org/mmseg/

  • Simple算法:
    Simple算法是簡(jiǎn)單最大匹配算法峭跳,其基本形式是解析單個(gè)單詞的歧義性。例如缺前,假設(shè)C1,C2,….代表一個(gè)字符串中的漢字蛀醉。我們首先位于字符串的開頭并想知道如何區(qū)分單詞。我們首先搜索詞典衅码,看 C1是否為一個(gè)單個(gè)漢字組成的單詞拯刁,然后搜索 C1C2來看是否為一個(gè)兩個(gè)漢字組成的單詞,以下類推逝段。直至找到字典中最長(zhǎng)的匹配垛玻。最可能的單詞就是最長(zhǎng)的匹配。我們?nèi)∵@個(gè)單詞奶躯,然后繼續(xù)這個(gè)過程直至字符串中的最后一個(gè)單詞被識(shí)別出來帚桩。

  • Complex算法
    Complex算法是復(fù)雜最大匹配算法。最大匹配規(guī)則是最大長(zhǎng)度的三個(gè)詞塊合理的分割巫糙,當(dāng)存在模糊分割時(shí)(比如朗儒, C1 是一個(gè)詞,但 C1C2 也是一個(gè)詞)参淹,此時(shí)將向前兩個(gè)單詞找出所有可能的以C1C1C2的詞塊醉锄,進(jìn)行匹配。
    例如:
    你 | 是 | 不
    你 | 是 | 不是
    你是 | 不 | 是
    你是 | 不 | 是傻
    你是 | 不是 | 傻

  • 消除歧義規(guī)則
    (1)最大匹配浙值,包括簡(jiǎn)單最大匹配及復(fù)雜最大匹配恳不。
    (2)最大平均字長(zhǎng)度
    (3)單詞長(zhǎng)度的最小方差
    (4)單字單詞的語(yǔ)素自由度的最大和

4.分詞結(jié)果提交
我進(jìn)行了政府工作報(bào)告的分詞。詳情可見:
政府工作報(bào)告原文http://www.reibang.com/p/9dab71d520e6
政府工作報(bào)告分詞原文(Complex分詞)http://www.reibang.com/p/a0a89ed0918d
政府工作報(bào)告分詞(修改分詞后)http://www.reibang.com/p/1f93a0d4bdfb

5.基于分詞結(jié)果的詞云分析(詞頻統(tǒng)計(jì)+可視化)
使用的是在線詞頻制作進(jìn)行政府工作報(bào)告的詞頻統(tǒng)計(jì)开呐。

yun1.png
yun.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末烟勋,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子筐付,更是在濱河造成了極大的恐慌卵惦,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瓦戚,死亡現(xiàn)場(chǎng)離奇詭異沮尿,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)较解,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門畜疾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人印衔,你說我怎么就攤上這事啡捶。” “怎么了奸焙?”我有些...
    開封第一講書人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵瞎暑,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我与帆,道長(zhǎng)金顿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任鲤桥,我火速辦了婚禮揍拆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘茶凳。我一直安慰自己嫂拴,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開白布贮喧。 她就那樣靜靜地躺著筒狠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪箱沦。 梳的紋絲不亂的頭發(fā)上辩恼,一...
    開封第一講書人閱讀 49,185評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼灶伊。 笑死疆前,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的聘萨。 我是一名探鬼主播竹椒,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼米辐!你這毒婦竟也來了胸完?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤翘贮,失蹤者是張志新(化名)和其女友劉穎赊窥,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體狸页,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡锨能,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了肴捉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腹侣。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖齿穗,靈堂內(nèi)的尸體忽然破棺而出傲隶,到底是詐尸還是另有隱情,我是刑警寧澤窃页,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布跺株,位于F島的核電站,受9級(jí)特大地震影響脖卖,放射性物質(zhì)發(fā)生泄漏乒省。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一畦木、第九天 我趴在偏房一處隱蔽的房頂上張望袖扛。 院中可真熱鬧,春花似錦十籍、人聲如沸蛆封。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)惨篱。三九已至,卻和暖如春围俘,著一層夾襖步出監(jiān)牢的瞬間砸讳,已是汗流浹背琢融。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留簿寂,地道東北人漾抬。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像陶耍,于是被迫代替她去往敵國(guó)和親奋蔚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子她混,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容

  • 目錄## 1.安裝solr并整合MMseg4j分詞包 2.分詞方法與分詞效果分析 3.分詞包背后的分詞算法學(xué)習(xí) 4...
    貍貍深深閱讀 803評(píng)論 0 3
  • 目錄: 1烈钞、認(rèn)識(shí)中文分詞包(下載、安裝與運(yùn)行)2坤按、分詞方法與效果分析3毯欣、分詞包背后的分詞算法學(xué)習(xí)4、分詞結(jié)果提交5...
    Echo真二閱讀 1,771評(píng)論 0 2
  • 目錄 認(rèn)識(shí)中文分詞包(下載臭脓、安裝及運(yùn)行) 分詞方法與效果分析 分詞算法學(xué)習(xí) 分詞結(jié)果提交(2017/5/24完善方...
    ?葉閱讀 1,564評(píng)論 0 2
  • 速食信息太多酗钞,浮躁的心情也慢慢在微博,朋友圈還有各種打折信息里發(fā)酵起來来累。像溫水里的青蛙絲毫沒有發(fā)現(xiàn)任何的不妥砚作。在j...
    美女一號(hào)閱讀 312評(píng)論 0 1
  • 早餐吃的枸杞百合粥,還有茶葉蛋跟幾碟小菜嘹锁,清爽可口葫录。 飯后靈犀拉著帥哥回到她的房間,神秘兮兮的說到:我要送你一樣禮...
    靈犀心理咨詢室閱讀 383評(píng)論 0 0