各大輸入法分類詞庫內部格式的簡單比較

2021-09-08 02:53:31 字數 1212 閱讀 9031

之前一直利用閒暇時間做深藍詞庫轉換,對各大輸入法的分類詞庫有了一些大概的了解,下面來比較下各個詞庫格式的特點:

1.搜狗細胞詞庫scel格式

scel格式是採用unicode編碼了漢字、拼音。整個scel格式的內容是:頭資訊、詞庫簡介、拼音組合列表、詞條列表。scel格式的詞條的資料結構設計的還是比較好的,它使用了拼音指標來避免在詞條**現重複的拼音來佔據內容,也會把同音詞合併在一起,節省空間。基本結構如下:

該拼音對應的詞條數、拼音指標、詞條列表。

2.qq分類詞庫qpyd格式

qpyd格式是我一直很頭疼的格式,原來是採用了zip壓縮詞條列表。qpyd格式的內容是:頭資訊、詞庫簡介、壓縮的詞條列表。qpyd格式由於採用了zip壓縮,所以在同樣詞條數的情況下,整個檔案會顯得比其他格式的詞庫小。但是與搜狗的scel格式不同的是,qpyd格式中,每個詞條都對應了其拼音,詞語是使用utf8編碼,但是拼音是使用unicode編碼,真是很奇怪。

拼音長度、(分母序號、韻母序號)列表、詞語

這裡的分母序號和韻母的序號是在詞庫中找不到的,需要通過幾個實際的bdict詞庫解析,乙個個的歸納出來。

4.紫光分類詞庫uwl格式

uwl格式的詞庫並不是很多,所以我現在還不支援對該詞庫格式的轉換,但是使用了winhex大概看了下,該格式的詞庫和scel也比較類似,沒有使用壓縮,但是編碼上好像utf8和unicode的都有,詞條之間的距離很稀疏,也就是說在檔案中,詞條和詞條間有很多0000,實在是浪費空間。

5.觸寶備份詞庫bak格式

觸寶輸入法的備份檔案格式是我覺得資料結構上最複雜的,裡面使用的是乙個樹結構來表示。樹結構中的上一層節點和下乙個節點還是雙向指標,我花了很多的時間來解讀,終於能夠實現對該檔案的解析,但是有些位元組不明白是什麼意思,沒辦法根據詞庫生成對應的bak檔案。觸寶使用的是unicode編碼來儲存漢字,拼音和bdict做的有點類似,也是用的預設的拼音列表,不同之處是,觸寶沒有將分母和韻母分開,而且把聲韻母的組合作為乙個列表。

總結下:

這幾種詞庫格式中,感覺scel是比較清晰的,也比較節約空間,而且容易理解,如果能夠像qq詞庫那樣壓縮的話,就更節省空間了。qpyd格式把每個詞的每個拼音都記錄在詞後面,實在是浪費空間,還不如scel格式這樣方便,而且拼音和漢字使用了2中編碼,真是沒必要吧。bdict格式把聲母和韻母拆開,以預設列表進行檢索,這樣也比較好,空間利用已經比較充分。紫光的uwl格式就實在不敢恭維,裡面充斥著大量的0000,實在太浪費空間了。觸寶詞庫備份檔案資料結構太複雜太複雜,一般難以理解。

各大輸入法分類詞庫內部格式的簡單比較

之前一直利用閒暇時間做深藍詞庫轉換,對各大輸入法的分類詞庫有了一些大概的了解,下面來比較下各個詞庫格式的特點 1.搜狗細胞詞庫scel格式 scel格式是採用unicode編碼了漢字 拼音。整個scel格式的內容是 頭資訊 詞庫簡介 拼音組合列表 詞條列表。scel格式的詞條的資料結構設計的還是比較...

搜狗輸入法匯入Google詞庫bug

記得大學的時候都是使用的紫光拼音輸入法,後來聽說搜狗拼音不錯,於是大四的時候使用了一下搜狗輸入法,當時感覺還不錯。不久google也推出了自己的輸入法,由於google詞庫與帳戶繫結的特點,非常適合與我白天在公司使用電腦,晚上回家在家使用電腦的情況,於是就換成了google拼音輸入法。最近又聽朋友說...

輸入法控制

unit u ime inte ce implementation uses windows,forms,imm,sysutils,messages varstmpclassname,stmpime string 失去焦點時的控制項名稱和輸入法名稱 msghandle hhook 0 判斷當前類名是...