Google Code Block

2008年7月25日

CKIP Client for C#

CKIP (Chinese Knowledge and Information Processing) 是中研院資科所詞庫小組所開發的斷詞系統,並提供了一個 Web Service 供研究者使用。CKIP Client 就是透過 TCP Socket 與此 Web Service 的溝通程式,目前網路上已經有 Java 和 PHP 的版本。

本程式提供了 C# 環境下的連接方法,讓 C# 的 programmer 免除了程式碼轉換的困擾,並針對逗點和句點作了簡單的斷句處理。

程式畫面



2008/10/28 Updated
使用方法:
//判斷斷詞處理是否成功
bool isSuccess = false;
//斷詞處理失敗的錯誤訊息
string errorMsg = "";
CKIPSS ckip = new CKIPSS("使用者名稱", "密碼");
List<string> result = ckip.Send("國際油價回檔,不過國內天然氣價格和桶裝瓦斯卻遲遲不降價", out isSuccess, out errorMsg);

p.s. 使用者名稱和密碼要來這邊申請。
如果登入的使用者名稱和密碼正確,會得到下列結果:
isSucess = true; 代表斷詞處理成功
errorMsg = 「」; 斷詞處理成功,因此不會回傳任何錯誤訊息
result 為字串型態的 List Container,每個字串為一個句子的斷詞結果,以上述使用方法為例,result 會包含2個字串(因為欲斷詞文章根據標點符號可分為兩個句子),分別為:
  • 國際(N) 油價(N) 回檔(Vi) ,(COMMACATEGORY)
  • 不過(C) 國內(N) 天然氣(N) 價格(N) 和(C) 桶裝(A) 瓦斯(N) 卻(ADV) 遲遲(ADV) 不(ADV) 降價(Vi) 。(PERIODCATEGORY)


2009/5/11 Updated
找到原始檔囉,請有需要的網友自行取用吧!:D
下載原始檔(Developed by VS2008 with C#):CKIPClientCS.rar

下載:
CKIPClientCS.cs
CKIPClientCS.exe

13 則留言:

匿名 提到...

可以跟您求一下關於DEMO程式的檔案嗎?
我還是不太暸解使用方法.想參考一下您的DEMO程式

我的EMIAL:xup65471@yahoo.com.tw

匿名 提到...

可以請問一下List(string) result 這段
這個LIST型態的資料result.那麼斷詞過後的字串要怎麼以字串形式輸出?

Brady 提到...

您好,DEMO程式的原始檔似乎已經砍了,無法寄給您,故更新本頁內容,若有不明白的地方,歡迎再次提問。

List<string> result 這段可以用 foreach (string s in result) 讀取 List Container 的內容。

匿名 提到...

您好,目前我也是在做CKIP相關的程式研究,並與web crawler做結合,但是因為小弟目前卡了很多地方,想跟您請教,做一下交流。我的msn:jerry_chou_bear@hotmail.com,是不是方便跟您聯絡一下?謝謝

Brady 提到...

您好,我已經加您的 msn 囉,可是似乎都看不到您在線上?

匿名 提到...

原來您三天後就看到我的留言了...

真的嗎?
我最近不會少上線阿~
還是您都是半夜上線...(?)

最近並沒有收到新增好友的訊息
會不會是打錯了?
還是我再給一次好了
jerrychoubear@hotmail.com
可以的話
寄封信給我
這樣萬一又沒加成功
至少我有帳號可以加加看

匿名 提到...

我想請問一下你的標點符號有另外處理嗎???我參考你的程式寫出來的斷詞只會斷部分呢!!

Marc 提到...

這篇文的貢獻度很高,只不過code還是必須修改才能正常使用。
就CKIP的斷詞功能而言沒有分標點符號及數字,他會把他當作一般詞一樣處理。
就以句號為例,可以在上方的結果畫面上看到處理的結果是。(PERIODATEORY)
希望對你有幫助

Brady 提到...

to 匿名:
我的標點符號沒有另外處理喔,正如marc所說,CKIP會把他當作一般詞一樣處理,所以要處理標點符號或是其他詞性,請參考CKIP的"詞類標記列表"(http://ckipsvr.iis.sinica.edu.tw/cat.htm)

to marc:
謝謝你的留言,希望這篇文章對大家都能夠有所助益! :)

匿名 提到...

謝謝,後來有研究出來了,的確不需要針對標點符號做額外的處理。
但是有個小問題想跟您請教請教,由於回傳的都是字串
例如:國際(N) 油價(N) 回檔(Vi) ,(COMMACATEGORY)
那如果我想把其中的詞性單獨抓出來的話呢?
(或是說想以詞性將對應到的詞去做分類)
是不是就沒有辦法了?
還是要多寫個判斷之類的
請賜教~

Brady 提到...

請參閱CKIP Client for C# (part II - 新增詞性分析)

匿名 提到...

請問出現認證失敗是什麼原因?
我已申請了帳密.

Brady 提到...

認證失敗(Authentication failed) 的話應該是 CKIP 線上服務的問題,建議您再去申請一次!(申請網址:http://ckipsvr.iis.sinica.edu.tw/reg.exe)

張貼留言