摘要:盤古分詞
前言 : 中文分詞的困難度
Lucene.Net 本身的 API 支持英文的分詞 , 而甚少支援中文的分詞 , 主要的原因是
英文的分詞可以根據空白來做為分詞的依據 , 而中文的分詞則不然 , 且不同的中
文組合可能有不同的意思 , 另外語意還得依據前後的語意來判斷 , 因此中文的博
大精深 , 增加了中文分詞的困難度
其他中文分詞系統
- 中科院 ICTCLAS
- 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 來取得對內容而言較重要的字彙,
另外也應該根據字彙的頻率而控制標籤雲字體的大小 , 以區別重要與不重要的字彙 , 更甚者可以加入關聯性
較高的字彙 .