Google Code Block

2010年4月21日

CKIP Client for C# (part II - Bug 修正)

有網友在CKIP Client for C# (part II - 新增詞性分析)中提到:
」傳去700個字元,但實際上卻只回來3、4百個字元」
」傳回已斷詞過的詞性,不到一半」
經過測試後發現,用本程式傳長一點的文章斷詞,就會出現此問題。Trace 一下 code :
// Blocks until send returns.
byte[] msg = Encoding.Default.GetBytes(xmlString);
byte[] bytes = new byte[1024];
int i = _conn.Send(msg);
// Get reply from the server.
i = _conn.Receive(bytes);
以上程式碼表示送出 bytes 格式的 msg 並透過 bytes 當作 buffer 接收從 server 回傳的結果。
傳回的字串會加上 CKIP 的 tagging 結果,所以傳回的字串會比傳出去的長得多,而當傳回的文章太長,在 buffer 只有 1k 的情況下,就會發生」傳去700個字元,但實際上卻只回來3、4百個字元」的狀況了!
所以只要把 buffer 試情況加大,例如把 buffer 改成送出字串的 5 倍:
//Set the size of buffer 5 times of the original string
int size = msg.Length * 5;
byte[] bytes = new byte[size];
這樣就沒問題囉!

改版的 Code Download:

20090518182136501
 CKIPforCSv2.1.rar

3 則留言:

匿名 提到...

謝謝啦~

匿名 提到...

載點掛了耶,請大大補一下 謝啦。

Brady 提到...

已經 update 囉 :)

張貼留言