中文分詞 (使用盤古分詞)

摘要:盤古分詞

前言 : 中文分詞的困難度

Lucene.Net 本身的 API 支持英文的分詞 , 而甚少支援中文的分詞 , 主要的原因是

英文的分詞可以根據空白來做為分詞的依據 , 而中文的分詞則不然 , 且不同的中

文組合可能有不同的意思 , 另外語意還得依據前後的語意來判斷 , 因此中文的博

大精深 , 增加了中文分詞的困難度

 

其他中文分詞系統

  1. 中科院 ICTCLAS
  2. JE 分詞

 

 

本文將會使用到盤古分詞 , 來幫助我們將中文內容切割成一個一個有意思的片段 , 

 

檔案下載網址  ,  裡面也有很多關於此元件的許多介紹  ,  

 

雖然盤古分詞並非 Lucene.Net 的 Contrib Library , 但其作者也為 Lucene.Net 製作了 PanGu Analyzer , 

 

此篇文章將示範盤古分詞如何做中文分詞  , 筆者選擇了一篇新聞來當我們的中文內容 : 

 

資策會與F5 Networks將舉辦「2013雲端政府高峰論壇」,為政府雲端應用發展,提供創新方向。
資策會雲端系統軟體研究所表示,下午將與應用交付網路廠商F5 Networks舉辦「2013雲端政府高峰論壇」,邀請產業界專家,為政府雲端應用發展,提供創新方向。
雲端所表示,近年政府透過電子化政府、交通(車籍)、防救災、中小企業、健保、教育、貿易、賦稅/優質經貿網路/電子發票服務、工商服務(工商憑證)、戶政、役政、勞保、數位典藏等服務,逐步跨足雲端領域,提供全面雲端化的個人、企業與政府機關服務。
雲端所指出,研發「雲端運算系統軟體關鍵技術」,結合如巨量資料等新興技術,技轉給多家廠商,包括和沛科技最新開發的蒐證雲服務,可應用於警政、稽核與食品安全等單位,透過任何手機就能即時錄音蒐證,並自動把錄音檔案保存在雲端,有效協助辦案與偵查。
在雲端浪潮下,雲端所認為,將有更多應用應運而生,政府單位積極規劃雲端服務,有助產業和經濟進步,發展分享雲端高效加值服務整合和行動資訊安全管控

 

Step 1 : 引入 PanGu  Namespace  

 

using PanGu;

 

Step 2 : 加入 Dict 資料夾

 

PanGu 元件需要加入一組字典檔 ,  下載網址

 

我們可以在 Dictionaries 裡面找到 Dict.dct 這份檔案 , 並將之移到 Bin 資料夾底下 ,

 

否則會出現找不到 Dict 的錯誤訊息

 

Step 3 :  分詞

 

   string content = @"資策會與F5 Networks將舉辦「2013雲端政府高峰論壇」,為政府雲端應用發展,提供創新方向。
資策會雲端系統軟體研究所表示,下午將與應用交付網路廠商F5 Networks舉辦「2013雲端政府高峰論壇」,邀請產業界專家,為政府雲端應用發展,提供創新方向。
雲端所表示,近年政府透過電子化政府、交通(車籍)、防救災、中小企業、健保、教育、貿易、賦稅/優質經貿網路/電子發票服務、工商服務(工商憑證)、戶政、役政、勞保、數位典藏等服務,逐步跨足雲端領域,提供全面雲端化的個人、企業與政府機關服務。
雲端所指出,研發「雲端運算系統軟體關鍵技術」,結合如巨量資料等新興技術,技轉給多家廠商,包括和沛科技最新開發的蒐證雲服務,可應用於警政、稽核與食品安全等單位,透過任何手機就能即時錄音蒐證,並自動把錄音檔案保存在雲端,有效協助辦案與偵查。
在雲端浪潮下,雲端所認為,將有更多應用應運而生,政府單位積極規劃雲端服務,有助產業和經濟進步,發展分享雲端高效加值服務整合和行動資訊安全管控";
        
        var segment = new Segment();
        var words = segment.DoSegment(content);
        foreach (var word in words)
        {
            Response.Write(word + "<BR>");
        }

 

Result : 

 

 

上面的結果會發現有些分詞怪怪的 , 例如雲端這兩字被分開了 , 但是雲端在目前卻是類似一個專有名詞了

 

因此我們來使用 PanGu 裡的字典來幫它添加新的專有名詞 , 

 

Release 資料夾裡面我們還可以找到  DictManage.exe  

 

執行之後我們可以在功能列找到文件選項  >  打開我們的 Dict 路徑  , 

 

接下來如下圖操作 , 最後記的要在功能列中的文件選項  >  選擇保存  , 整個字典才算添加完畢

 

 

 

 

最後新的結果如下 : 

 

 

 

另外之前筆者貌似在 CNN 看到了一則有關擷取內容重點並且組成標籤雲提供互動的機制 ,

 

雖然目前拿掉了 .... 以下為 Demo 範例 

 

 

Step 1 : 標籤雲套件下載

 

 

Step 2  : 加入 Javascript 檔案

 

 

Step 3 : 加入 css 

 

 body {background: #FFF }
#div1 {position:relative; width:350px; height:350px; border:1px solid #000; margin: 20px auto 0; }
#div1 a {position:absolute; top:0px; left:0px; font-family: Microsoft YaHei; color:#000; font-weight:bold; text-decoration:none; padding: 3px 6px; }
#div1 a:hover {border: 1px solid #eee; background: #FFF; }
#div1 .blue {color:blue;}
#div1 .red {color:red;}
#div1 .green {color:green;}
p { font: 16px Microsoft YaHei; text-align: center; color: #ba0c0c; }
p a { font-size: 14px; color: #ba0c0c; }
p a:hover { color: red; }

 

 

Step 4 :  初始化元件

 

        $(function () {
            $("#div1").windstagball({
                radius: 120, // 標籤雲( tagcloud )圓的半徑
                speed: 10   // 轉動的速度
            });
        });
    
  

Step 5 : backend Code

 

string content = @"資策會與F5 Networks將舉辦「2013雲端政府高峰論壇」,為政府雲端應用發展,提供創新方向。
資策會雲端系統軟體研究所表示,下午將與應用交付網路廠商F5 Networks舉辦「2013雲端政府高峰論壇」,邀請產業界專家,為政府雲端應用發展,提供創新方向。
雲端所表示,近年政府透過電子化政府、交通(車籍)、防救災、中小企業、健保、教育、貿易、賦稅/優質經貿網路/電子發票服務、工商服務(工商憑證)、戶政、役政、勞保、數位典藏等服務,逐步跨足雲端領域,提供全面雲端化的個人、企業與政府機關服務。
雲端所指出,研發「雲端運算系統軟體關鍵技術」,結合如巨量資料等新興技術,技轉給多家廠商,包括和沛科技最新開發的蒐證雲服務,可應用於警政、稽核與食品安全等單位,透過任何手機就能即時錄音蒐證,並自動把錄音檔案保存在雲端,有效協助辦案與偵查。
在雲端浪潮下,雲端所認為,將有更多應用應運而生,政府單位積極規劃雲端服務,有助產業和經濟進步,發展分享雲端高效加值服務整合和行動資訊安全管控";

        var segment = new Segment();
        var words = segment.DoSegment(content);
        StringBuilder sb = new StringBuilder();
        int i = 0;
        foreach (var word in words)
        {
            
                sb.Append("" + word + "");
            
        }

        div1.InnerHtml = sb.ToString();

 

 

 

這樣子的結果不太理想 , 因為我們只是做基本的分詞 , 並沒有將結果限定在這篇文章中比較重要的字串 , 這部

 

分我們可以使用先前介紹的 Lucene.Net 取得TF-IDF 來取得對內容而言較重要的字彙, 

 

另外也應該根據字彙的頻率而控制標籤雲字體的大小 , 以區別重要與不重要的字彙 , 更甚者可以加入關聯性

 

較高的字彙  .