天天看點

盤古分詞--功能簡介功能

盤古分詞--功能簡介

http://www.cnblogs.com/eaglet/archive/2009/08/13/1545420.html

盤古分詞--功能簡介

Posted on 2009-08-13 16:50 eaglet 閱讀(8474) 評論(103) 編輯 收藏

盤古分詞--功能簡介功能

盤古分詞--功能簡介 作者:eaglet

     兩年前我開發了一個KTDictSeg 中文分詞元件,這個元件推出2年來受到很多朋友的喜愛。不過由于我當初開發KTDictSeg時比較倉促,底子沒有打好,而且當時對分詞的了解也比較膚 淺,是以KTDictSeg元件存在很多問題,我一直想重新開放一個更好的開源分詞元件,但一直沒有抽出時間。上周我終于下定決心開始做這個事情,經過兩 周的開發(業餘時間),今天終于完成了盤古分詞的V1.0版本。盤古分詞和KTDictSeg完全不同,幾乎所有的算法我全部都推倒重寫了,其分詞速度大 概比KTDictSeg快5倍左右(多線程下快10倍以上),記憶體占用隻有KTDictSeg的一半,分詞的準确度方面也比 KTDictSeg 有顯著提高,功能也增加了很多。下面我就簡單介紹一下盤古分詞元件的基本功能,希望能對有這方面需求的朋友有所幫助。

     盤古分詞 英文名 PanGuSegment

     項目 Logo:

盤古分詞--功能簡介功能

     項目首頁 盤古分詞項目首頁

     開源協定 : Apache License 2.0

     商業應用:免費 商業應用授權

     下載下傳位址 同項目首頁

功能

中文分詞功能

  • 中文未登入詞識别

     盤古分詞可以對一些不在字典中的未登入詞自動識别

  • 詞頻優先

    盤古分詞可以根據詞頻來解決分詞的歧義問題

  • 多元分詞

     盤古分詞提供多重輸出解決分詞粒度和分詞精度權衡的問題

     詳見 盤古分詞版本功能介紹 - 多元分詞

  • 中文人名識别

     盤古分詞在中文人名識别上較KTDictSeg取得了較大突破,這裡簡單示範一下中文人名的識别效果

     輸入: “張三說的确實在理”

     分詞結果:張三/說/的/确實/在理/

     但是如果輸入 “李三買了一張三角桌子”

     分詞結果:李三/買/了/一張/三角/桌子/

     這裡可以在第一個句子中盤古分詞識别出張三是一個人名,進而按照人名輸出了這個詞,而第二句中盤古分詞識别出其句子中包含的張三并不是一個人名,進而沒有按中文人名來輸出這個詞。

     詳見  盤古分詞-中文人名識别

  • 強制一進制分詞

     有的項目需要在輸出精确分詞結果的同時輸出單個漢字,進而保證搜尋元件可以按照任意顆粒度來搜尋文本。盤古分詞提供了這種功能,分詞結果中精确分詞的權值較高,單個漢字的權值較低,通過權值的設定可以知道搜尋元件找到最比對的結果。

     如 “張三說的确實在理”

     分詞結果: 張(0,1)/張三(0,5)/三說的(1,1)/三(1,1)/說(2,5)/的(3,5)/确(4,1)/确實(4,5)/實(5,1)/在(6,1)/在理(6,5)/理(7,1)/

     挎号裡面第一個數字表示單詞在句子中的位置,第二個數字表示權值,下同

  • 繁體中文分詞

     盤古分詞提供了對繁體中文分詞的支援。國内很多站内搜尋對繁體中文分詞支援不是特别好,這其中就包括部落格園的找找看。你可以在找找看中輸出 "我的選擇",你會發現隻找到一條比對的記錄,該比對記錄比對的是 "我的選擇" 這個整詞,但如果你輸入 "我的 選擇" 這時就能搜到包括"我的" 和 " 選擇" 的所有記錄。從這個測試中可以分析部落格園的找找看在處理繁體中文時是簡單根據空格或者一些符号來分割的,無法分解連續的漢字。

     盤古分詞可以實作繁體中文的分詞

     還是輸入 "我的選擇"

     分詞結果是: 我/的/選擇/

  • 同時輸出簡體和繁體

     這個功能也很有趣,如果你用google 搜 "我的選擇",你會發現它可以同時将簡體和繁體的 "我的選擇" 全部搜出來。要實作這個功能,就必須在分詞時同時将簡繁兩種漢字輸出。

    還是輸入 "我的選擇"

    分詞結果是:我(0,5)/的(1,5)/選擇(2,1)/選擇(2,5)/

  • 中文詞性輸出

     盤古分詞可以将以登入詞的中文詞性輸出給使用者,以友善使用者做進一步處理。

  • 全角字元支援

     盤古分詞可以識别全角的字母和數字

英文分詞

  • 英文分詞

     英文單詞通常都是靠空格等符号分割,這個比較簡單,盤古分詞分英文自然也沒有什麼問題。

  • 英文專用詞識别

    一些英文簡寫是字母符号混合,或者是字母數字混合,這個分詞起來就不能按照空格符号這樣分割了,對于字母符号混合的如 U.S.A ,隻要将這個詞錄入到字典中,盤古分詞就可以分出整詞。對于字母和數字混合的,盤古分詞會自動作為整詞輸出。

  • 英文原詞輸出 (後續版本提供)
  • 英文大小寫同時輸出(後續版本提供)

其他功能

  • 停用詞過濾

     對于一些标點符号,連詞,助詞等有時候需要在分詞時過濾掉,盤古分詞提供一個 StopWord.txt 檔案,使用者隻要将需要過濾的詞加入到這個檔案中,并将停用詞過濾開發打開,就可以過濾掉這些詞。

  • 設定分詞權值

     盤古分詞可以讓使用者對如下特性設定自定義權值

     未登入詞權值

     最比對詞權值

     次比對詞權值

     再次比對詞權值

     強行輸出的單字的權值

     數字的權值

     英文詞彙權值

     符号的權值

     強制同時輸出簡繁漢字時,非原來文本的漢字輸出權值。

  • 字典管理

     盤古分詞提供一個字典管理工具 DictManage 通過這個工具,你可以增加,修改,和删除字典中的單詞

  • 動态加載字典

    通過字典工具增加,修改,和删除字典中的單詞後,保持字典,盤古分詞會自動将新的字典檔案加載進去,而不需要重新啟動。

  • 關鍵詞高亮元件

     Lucene 提供了一個關鍵詞高亮元件,但這個元件對中文的支援不是特别好,特别是如果還有多元分詞的情況,處理的就更不好。盤古分詞提供了一個針對中文和英文的關鍵詞高亮元件 PanGu.HighLight ,其對中文的支援要好于Lucene 那個高亮元件。

  • 同義詞輸出(後續版本提供)
  • Lucene.net 接口及示例

     在PanGu4Lucene 這個包裡面有我做的一個盤古+Lucene 的簡單新聞搜尋Web示例程式,Release 包裡面有使用說明。

     性能名額

     Core Duo 1.8 GHz 下單線程 分詞速度為 390K 字元每秒,2線程分詞速度為 690K 字元每秒。

     其他說明

     盤古分詞提供的字典包括17萬個中文常用單詞,但這個字典依然不夠完整,如果要分詞更準确,需要适當維護一下這個字典。

     中文人名的識别能力取決于 ChsSingleName.txt, ChsDoubleName1.txt, ChsDoubleName2.txt 這 三個檔案,它們分别表示單子人名,雙字人名的首字和雙字人名的尾字,如果有的人名沒有分出來,需要維護這三個檔案。

    V1.0.0.2 版本示範截圖

盤古分詞--功能簡介功能

從這個測 試來看,盤古分詞在中文人名這塊的識别能力還是比較突出的,在未登入詞識别方面也有了一定的改進。不過這個分詞結果有一處有一點問題。就是一次性交一百 元, 正常了解應該是一次性/交/一百/元 但盤古分詞分出來是 一次/性交/一百/元 。雖然有點黃,但從語義上看也不是完全說不過去。

盤古分詞--功能簡介功能

posted on 2011-09-25 11:29  lexus 閱讀( ...) 評論( ...) 編輯 收藏

轉載于:https://www.cnblogs.com/lexus/archive/2011/09/25/2190016.html

繼續閱讀