Great Circle Associates

XCIN Mail-list
(December 2000)


Indexed By Date: [Previous] [Next] Indexed By Thread: [Previous] [Next]

Subject: 關於 bims 猜詞
From: Kuang-che Wu <kcwu@camel.ck.tp.edu.tw>
Organization: Taipei Chien-kuo Senior High School
Date: 9 Dec 2000 19:54:41 GMT
To: xcin@tlug.sinica.edu.tw
Reply-To: xcin@linux.org.tw

我不知道這問題是不是該在 sourceforge 上討論比較適當
(sourceforge上看起來較冷清, 所以我就在這問了.....)

看起來 bims 猜詞大致上是用跟斷詞一樣的演算法,
差別在於現在是"斷音", 因此看過了 code 之後, 有點小問題

1. 從 Chih-Hao Tsai 兄的網站上看到關於 CScanner/MMSEG 的說明,
   其中使用單字詞的字頻來作 disambiguation,
   在以前的文章也提到使用詞頻來斷詞似乎不是很有效

   而 bims 中的猜詞演算法, 並沒有使用單字頻斷詞,
   取而代之的是用累計詞頻來作 disambiguation

   好奇是為了什麼用後者取代前者呢?

   (拿 tabe的斷詞、bims的斷音(猜詞) 跟 CScanner 的 code 比較,
    真的差好多....有感而發)

2. 這部份可能複雜瑣碎一點, 牽扯到程式碼了...
   程式中先從頭選出三個可能斷音點,
   根據 bimsVerifyPindown() 檢查如此斷音是否存在不違背pindown的詞
   然後用四個 rule 來 disambiguate
   這其中有個問題, 前三個 rule 關於長度,
   最後一個使用詞頻, 這是我覺得有問題的地方

   由前頭找出三個可能斷音, 因此只要"有可能"這樣斷音,
   就存在這樣的三詞音
   但是後來使用 rule4 時, 是把"所有該詞音的詞" 詞頻最大的拿來加總
   我覺得應該是: 把"所有該詞音的詞中, 不違背pindown" 詞頻最大的拿來加總

   舉個例子應該會比較清楚我在講甚麼....
   實際的例子太難舉了, 我用符號來說明
   假設現在使用者輸入的音是 12345,
   2 這個音被 pindown 要用 b 這個字
   現在詞音 12 3 45 都存在詞, 1 23 45 也存在詞, 因此 rule 1~3 沒有作用
   詞:      AB C DE           F bH DE
            Ab
   12 有可能是 AB 這個詞, 也可能是 Ab 這個詞
   假設各詞詞頻 AB 5, Ab 1, C 1, DE 1, F 1, bH 2
   所以根據 rule 4 的 code,
   12 3 45 這種斷法, 詞頻總和=5+1+1=7
   1 23 45 這種斷法, 詞頻總和=1+2+1=4
   所以程式會選擇使用 12 3 45 這種斷音,
   最後根據斷音 smart edit, 會選字變成 Ab C DE

   問題在於, 12 的最大詞頻不應該算成 5, 應該是 1 才對
   因為 2 被 pindown 用 b 了
   這樣的話 12 3 45 詞頻總和應該算成 1+1+1=3
   這時選擇 1 23 45 斷音是比較好的決定, 選字成 F bH DE

   希望大家能看得懂我在說甚麼....
To Unsubscribe: send mail to majordomo@linux.org.tw
with "unsubscribe xcin" in the body of the message


Follow-Ups:
Indexed By Date Previous: 「一蹴可及」vs.「一蹴可幾」
From: william.bbs@openbazaar.net (何陋居主)
Next: Re: 「一蹴可及」vs.「一蹴可幾」
From: edward@linux.dreamer.org (Edward Lee)
Indexed By Thread Previous: Re: 「一蹴可及」vs.「一蹴可幾」
From: edward@linux.dreamer.org (Edward Lee)
Next: Re: 關於 bims 猜詞
From: Chih-Hao Tsai <hao520@yahoo.com>