Kan-Ru Chen's Weblog

tsi.src 與 SQLite 的一些實驗

來灌水一下,這是之前 #osxchat 上關於 tsi.src 與 SQLite 的一些有趣實驗 其中似乎有一些點子,可以拿來參考:

2月 20 12:27:30  lukhnos!
2月 20 12:29:38       acer :)
2月 20 12:32:43       orcas: 剛剛的 tsi.db 是沒加 index 的, 針對注音編 index, 查起來就爆快, 連詞都編 index, 就可以反查了.
2月 20 12:36:18       orcas: 然後也許我們多加一個欄位, 叫 tone, 在 import 時把音和調給分開 (e.g. 事實 -> ㄕ ㄕ, 4 2), 這樣就可以做無調query了 (然後針對漢語拼音嘿嘿嘿)
2月 20 12:44:24  黑嘿嘿
2月 20 12:46:02         lukhnos: that is a good idea
2月 20 12:53:14         lukhnos: 我還不是很清楚在 chewing 用的時候是要查那些資料
2月 20 12:54:03         要把那些常用的 call 變成有效的 query
2月 20 13:29:17       吼, irregularies in tsi.src, darn
2月 20 13:29:25       irregularities
2月 20 13:29:45         lukhnos: 變成 sql 就 regular 了
2月 20 13:30:04 *      orcas flee
2月 20 13:30:21         playing tsi.src ?
2月 20 13:30:24       orcas: 像是 "一" 這個 entry 就沒有照標準標破音字... darn
2月 20 13:30:39         *咳*
2月 20 13:30:39       gugod: yes http://openvanilla.org/~lukhnos/tsi-sqlite3.zip
2月 20 13:30:59         lukhnos: 我覺得不同的發音,就用不同的 row
2月 20 13:30:59       gugod: any help?
2月 20 13:31:09         所以我說要精練 tsi.src ... :p
2月 20 13:31:35         e.g. 一 一 0 一行
2月 20 13:31:52         對酷音來說,裡面的五字詞好像都是不必要的
2月 20 13:31:57         一 一4 另外一行
2月 20 13:32:08       orcas: 我就是這樣做的. 現在問題是 tsi.src 在單字標音上有問題. 明明規格上, 破音字要用中括號, 例如 一 181207 [ㄧ,ㄧ2,ㄧ4] 但是 tsi.src 裡面卻是 ㄧ 181207 ㄧ ㄧ2 ㄧ4
2月 20 13:32:20       gugod: 那「一字詞」(?)也可以省囉?
2月 20 13:32:49         lukhnos: 不見得
2月 20 13:33:07         lukhnos: 那只好多寫幾行  perl v處理特例了
2月 20 13:33:19       orcas: 那個 .pl 已經作這件事了. 因此多生的entry不超過4000個˙.
2月 20 13:33:29         lukhnos: 中高頻率的一字詞有「打樁」的作用
2月 20 13:33:37         lukhnos: 像「的」
2月 20 13:33:50         lukhnos: 幾乎一定是斷詞點
2月 20 13:34:05       似乎只有一字詞有 irregularities
2月 20 13:40:40         多字詞也這樣寫就會有 ambiguity
2月 20 13:41:03         就不知道注音跟字怎麼對應
2月 20 13:46:35       嗯.... 還是用 regex 解決了這個問題
2月 20 13:46:37       tsi.src-- :p
2月 20 13:47:50         debug 真苦
2月 20 13:48:11         5 個 index 的 expression...
2月 20 13:48:50       5 個 index?
2月 20 13:49:15         lukhnos: complicated bio system
2月 20 13:49:35       一長串 SQL ?
2月 20 13:49:45       orcas: 先不要把 model 放在心上吧
2月 20 13:49:51       專心實驗比較重要
2月 20 13:51:32         mjhsieh: 我也是這樣想,但在家??沒得做
2月 20 13:54:28       orcas: new version http://openvanilla.org/~lukhnos/tsi-sqlite3.zip
2月 20 13:55:04       try: select * from tsi where syllable="g g" and tone="2 4";
2月 20 13:55:20       我把注音符號代換成標準排列的字母, 然後把音調分離了
2月 20 13:55:53       然後可以做一些有趣的統計 :p
2月 20 13:56:16         拿來做聯想詞好像很方便
2月 20 13:56:19         哈,bioinfo 很多也不過如此
2月 20 13:56:56       gugod: 是啊, 可以做 where phrase like "首字%";
2月 20 13:57:06       orcas: uso...
2月 20 13:57:44 -->    amao (~inertia@203.73.138.70) has joined #osxchat
2月 20 13:58:15       sqlite3 好像快得有點離譜
2月 20 13:58:27 ---    amao is now known as inertia
2月 20 13:58:55         lukhnos: 會比 perl 或 python 的 hash 快嗎?
2月 20 13:59:27       理論上不會吧
2月 20 13:59:41       可是你想要 @tsi= 嗎? XD
2月 20 13:59:49 -->    tseching (~tseching@61.66.130.113) has joined #osxchat
2月 20 14:00:07         可能可以
2月 20 14:00:22         可能會花掉 512M
2月 20 14:00:27         的 memory
2月 20 14:00:29       剛試了一下 perl -e '@tsi=' 好像也蠻快的
2月 20 14:00:50       1.021 sec 內完成
2月 20 14:01:28         我知道 python  的 read+hash 比 mysql 快
2月 20 14:02:11         把 club 8 跟 belle & sabastian 混著聽真是不錯
2月 20 14:02:34       突然發現有了 tsi.db 後押韻字典就誕生了
2月 20 14:03:09         哈
2月 20 14:03:13         賀
2月 20 14:03:24       應該說馬上變出一堆奇奇怪怪的應用出來
2月 20 14:03:28         select 後就搞定了
2月 20 14:03:33       沒錯
2月 20 14:03:37       邪惡的 SQL
2月 20 14:03:40       muwahahahaha
2月 20 14:04:01       所以要 sqlite 了嗎
2月 20 14:04:05         lukhnos: 為甚麼 '
2月 20 14:04:17         時  是 "g"
2月 20 14:04:31         g = ㄕ
2月 20 14:04:33       orcas: 因為標準鍵盤排列的 ㄕ 在 g
2月 20 14:04:42         lukhnos: soga
2月 20 14:04:47       mjhsieh: 那要改寫 chewing engine 了?
2月 20 14:05:10       尋找所有至少三字詞尾韻押ㄨ韻的: select * from tsi where syllable like "% % %j" limit 20;
2月 20 14:05:24       發現東西還真不少˙ :p
2月 20 14:05:37         lukhnos: I think it is the way to go.. 因為 sqlite 要 extent 容易多了
2月 20 14:05:42       yup
2月 20 14:05:54         馬上拿來做個中文字詞應用吧
2月 20 14:05:56       lukhnos: 這好像是要在 libchewing 小組提?
2月 20 14:06:08       要加詞/修正詞頻好像也會因此容易得多
2月 20 14:06:17 *      lukhnos 指指 gugod
2月 20 14:06:46         我不反對, 不過一步一步來吧 :p
2月 20 14:07:02         一本書|2359|u 1p gj|4 3 0
2月 20 14:07:11         為甚麼有 1p gj?
2月 20 14:07:32       1p=ㄅㄣ; gj=ㄕㄨ
2月 20 14:08:54         lukhnos: 是我白目 orz
2月 20 14:09:02         orcas 的鍵盤沒有注音的話,大概很辛苦 :P
2月 20 14:09:18         orcas 又用許氏鍵盤... :p
2月 20 14:09:20       嗚, 我羨慕鍵盤上沒有注音的人
2月 20 14:09:28         gugod: 我的是純英文鍵盤
2月 20 14:09:29       耶!  # orcas 用許氏?!
2月 20 14:09:39         lukhnos: yes
2月 20 14:09:47 *      ed_blade SpaceSaver US 版
2月 20 14:10:15       嗚嗚嗚
2月 20 14:10:28         lukhnos: 很早當 chewingosx 還不能 runtime 切 keyboard layout 時, orcas 都是自己 patch + build 一份
2月 20 14:10:46       這-這麼苦
2月 20 14:11:05         想想也已經是一整年前的事了
2月 20 14:11:12       不過顯見 orcas 這麼早以前就是酷音支持者了
2月 20 14:11:20         gugod: 歲月如梭
2月 20 14:11:36 *      acer 沒有ㄅㄆㄇ
2月 20 14:11:36       孩子都大了 (?)
2月 20 14:11:53 *      autrijus 還在鞎苦地養小狗
2月 20 14:11:55  lukhnos: 你應該跟我媽換鍵盤
2月 20 14:11:57         gugod: 其實為了打中文剛換到 osx 的時候還學了漢語拼音
2月 20 14:12:13       「校長與高n敘舊──昔別君未婚, 兒女忽成行」
2月 20 14:12:15      lukhnos: 你 algorithm 書後來有看嗎?
2月 20 14:12:23       acer~~~~~~~~~
2月 20 14:12:31  orcas: 太苦了吧
2月 20 14:12:33       autrijus: 看得很慢, 我見到 hcc 時直接把書 pass 給他好了
2月 20 14:12:35  inertia: hola!
2月 20 14:12:40      ok
2月 20 14:12:47       autrijus: 換鍵盤還要錢 :~
2月 20 14:12:57       ouch, 給錯對象
2月 20 14:13:01  XD
2月 20 14:13:03         acer: 直到被西螺高拯救
2月 20 14:13:19       clkao++
2月 20 14:13:31         orcas: 那...等酷音的漢語拼音介面寫完了可以麻煩你測測看嗎 ^^"[
2月 20 14:13:47         gugod: 好像已經忘光了
2月 20 14:13:51  撲
2月 20 14:13:52         XD
2月 20 14:13:57  autrijus: 巴哥這樣難養? #autrijus      還在鞎苦地養小狗
2月 20 14:14:07         gugod: 可以試看看吧
2月 20 14:14:24      isis: 食量太大了
2月 20 14:14:31       acer: 其實本來有大學同學想跟我換keyboard的. :p
2月 20 14:14:43 *      gugod 結果發現一整個早上都在做 ports + 聊天
2月 20 14:15:00 *      lukhnos 從睡醒就一直在搞 importtsi.pl + tsi.db
2月 20 14:15:06         lukhnos: 英換中?
2月 20 14:15:12 *      gugod 趕快 send-pr
2月 20 14:15:14       orcas: yup, 互換.
2月 20 14:15:19  autrijus: 沒遵守七分節制定律?
2月 20 14:15:41         lukhnos: 你要英文 only 的?
2月 20 14:15:43       orcas: 不過後來沒換, 一方面是要錢, 再來沒warranty, 然後她的電腦已經敲了一年多, 我那時是新的
2月 20 14:15:49       orcas: 如果有的話啦...
2月 20 14:16:05         台灣買 laptop 有只有英文的鍵盤嗎?
2月 20 14:16:14         lukhnos: 換鍵盤容易
2月 20 14:16:16       是的. 全世界好像只有台灣有刷字的樣子.
2月 20 14:16:29       orcas: oh, 應該說 no, 台灣買不到只有英文的鍵盤.
2月 20 14:16:31         不會有甚麼大問題?
2月 20 14:16:38         lukhnos: 真苦
2月 20 14:16:54       唉, 我需要鍵盤保固是有原因的.
2月 20 14:17:02 *      lukhnos 換過三次 ThinkPad 560 鍵盤
2月 20 14:17:20         lukhnos: 強打者
2月 20 14:17:39       這樣其實蠻苦的 :~
2月 20 14:17:44         lukhnos 打字跟打算盤一樣
2月 20 14:17:47         lukhnos: ebay 標看看吧
2月 20 14:18:18       hmmm
2月 20 14:18:45       其實 Apple 的中文鍵盤還可以忍受啦
2月 20 14:18:55       至少倉頡跟注音字根都跟英文鍵刷同一色
2月 20 14:19:06       哪像 IBM... 刷得紅紅綠綠白白... +_+
2月 20 14:19:13         就聽到「切切切切」的聲音,選字窗好像沒有出現過一樣
2月 20 14:19:27         (又說了一遍)
2月 20 14:19:45   lukhnos: 00:56  反正重點是終於有人把這種東西寫到 paper 裡了
2月 20 14:19:52   lukhnos: 00:56  我印象中從來沒有看過
2月 20 14:19:57         lukhnos: 我喜歡單純的 keyboard 所以許氏鍵盤很好用
2月 20 14:19:58   lukhnos: 00:57  大概是因為這種東西課本裡都有,所以好像沒什麼人寫
2月 20 14:20:26   lukhnos: 小驚訝只是這樣子。
2月 20 14:20:27 *      gugod 使用許氏的速度已經追上以前用標準鍵盤的速度了
2月 20 14:20:32       orcas: yup, 當年很多人用倚天排列也是因為這樣不要拿貼紙貼鍵盤
2月 20 14:20:34       gugod: 賀!
2月 20 14:20:39         gugod: 賀
2月 20 14:20:49       s/不要/不用/
2月 20 14:21:10 *      gugod 反而不會用標準排列了
2月 20 14:21:15         真糟糕
2月 20 14:21:17       unlearn 得真快
2月 20 14:21:28         lukhnos: 當年當兵就就是不會打標準鍵盤,就不用當電腦兵
2月 20 14:21:36       啊?那這樣是好事還是壞事
2月 20 14:21:52         lukhnos: 對我算好事吧
2月 20 14:21:53         lukhnos: 我本來以為是會同時記住兩種
2月 20 14:22:25         結果沒辦法
2月 20 14:23:01         好像是 re-wire 腦裡面的幾條東西的那種感覺
2月 20 14:23:05       還有人收集這種東西 http://www.geocities.co.jp/SiliconValley-Oakland/3186/collection.html
2月 20 14:23:08      lukhnos's URL: [  ]
2月 20 14:23:12         lukhnos: 後來占了一個破冬後就很好混的缺
2月 20 14:23:19       orcas: which is... ?
2月 20 14:23:34   lukhnos: 酷音當然是可以用 SQLite
2月 20 14:23:56         lukhnos: 通信二級補給兼管制
2月 20 14:24:01         sqlite 的 overhead 多大? 500k ?
2月 20 14:24:12   lukhnos: 只是如果要享受 SQL statement 的好處,red-black tree 好像就沒必要留著了
2月 20 14:24:51             993420 Feb  8 22:52 /usr/local/lib/libsqlite3.0.8.6.dylib
2月 20 14:24:58           1184064 Feb  8 22:52 /usr/local/lib/libsqlite3.a
2月 20 14:24:59       orcas: 那個沒遇到裝檢應該很涼吧
2月 20 14:25:50       orcas: 如果通通從 source 自己 build, 好像只要 500k
2月 20 14:25:57       (印象沒錯的話)
2月 20 14:26:01         lukhnos: 其實是不合法的,因為管制要管補給,但我不會自己給自己找麻煩
2月 20 14:26:12       多出那麼多主要是 library symbol table 大
2月 20 14:26:30         用 sqlite 可能會有的爭議,一是大小, 二是,現在現在酷音也不慢,換了之後也不會明顯變快
2月 20 14:26:38       orcas: 通補我就不瞭解了, 我做的是被你們補的那種
2月 20 14:26:45         lukhnos: 其實我遇到裝檢也還好,不是弄車的問題很少
2月 20 14:26:47       此補非彼捕
2月 20 14:26:52         所以好像很可以換
2月 20 14:26:55         lukhnos: 一級?
2月 20 14:27:01       orcas: 我在電台
2月 20 14:27:06         好處 >> 爭議
2月 20 14:27:16         lukhnos: 了解
2月 20 14:27:32   如果用了 SQLite 之後能方便地支援更多種輸入法,那也許值得。
2月 20 14:27:46       b6s: 例如說可以做酷倉頡或酷行列...
2月 20 14:27:49         喔,還有一個爭議,就是會不會使得 chewing 比較難 build
2月 20 14:28:05   lukhnos: yes~
2月 20 14:28:17         考慮到 chewing-anywhere的難度 :p
2月 20 14:28:19         gugod: sqlite 滿好 build 的
2月 20 14:28:22   gugod: 於是到最後就變成重寫
2月 20 14:28:23       gugod: 理論上不會, 因為 sqlite3 最快的 build 方法, 就是 gcc -o *.c
2月 20 14:28:24 *      b6s flee
2月 20 14:28:35         even on very limited environment ?
2月 20 14:28:44         like, PalmOS XD
2月 20 14:28:48   SQLite 大概不支援 embedded system?
2月 20 14:28:48         gugod: it is self-contained
2月 20 14:28:55       hmmm... 如果塞得下 500k 就應該沒問題吧?
2月 20 14:29:01       sqlite is also meant for embedded env?
2月 20 14:29:10         我指的是好不好 compile
2月 20 14:29:15 *      gugod look at iiimf-sdk
2月 20 14:29:23 *      gugod (茶)
2月 20 14:29:23       compile 是一定好 compile
2月 20 14:29:27       哈
2月 20 14:30:32         gugod: 其實在 palmOS 一般的注音還滿好用的,用 stylus 和鍵盤有些不同
2月 20 14:31:23        $ du -hs /usr/lib/libsqlite3.so.0.8.6
2月 20 14:31:23        296K    /usr/lib/libsqlite3.so.0.8.6
2月 20 14:31:33        $ du -hs /usr/lib/libsqlite3.a
2月 20 14:31:33        380K    /usr/lib/libsqlite3.a
2月 20 14:31:35       x86 版的比較小?
2月 20 14:32:29        strip 過
2月 20 14:33:23        tsi.db 比現在用的結構小 :P
2月 20 14:33:25         BTW 有人要 cdict 的 sqlite db 檔玩玩嗎?
2月 20 14:33:26 -->    penk (~lamppix@140.120.229.161) has joined #osxchat
2月 20 14:33:35       (手)
2月 20 14:33:53       再叫 zonble 去砍砍教育部國語字典...
2月 20 14:34:04   也許可以先試試 zaurus 上的 embedded linux
2月 20 14:34:15       那就要指指 Autrijus 了
2月 20 14:34:41   要先改成酷易他才有動機 XD
2月 20 14:34:49       大易不用酷啦
2月 20 14:34:58  上面的倚天26我到現在還用不順
2月 20 14:35:20 *      isis 遜
2月 20 14:35:38        在 palm 上面就是要用手寫輸入啊~
2月 20 14:36:01   大易如果加上 HKSCS 會不會和倉頡一樣重碼率爆增?
2月 20 14:36:07        哇 !! 難得碰到也是用倚天 26 的人 !!
2月 20 14:36:16       注音 -> 酷音, 倉頡 -> 酷倉, 追音 -> 酷刑?  # flees
2月 20 14:36:23        XD
2月 20 14:36:37  ij1iao: 呵呵
2月 20 14:36:40   倉頡 -> 酷姐
2月 20 14:36:59       酷姐!
2月 20 14:37:02       入力娘!
2月 20 14:37:18  娘!
2月 20 14:37:54         [酷刑|半形]
2月 20 14:38:08         想起來就很讚
2月 20 14:38:20   既然 gugod 把酷(拼)音改出來了,那就真的可以改酷刑了
2月 20 14:38:21         aye.. 為甚麼我的 upload bandwidth 這麼小
2月 20 14:38:33       非常適合法庭上做為交叉詢問用(酷刑)
2月 20 14:38:40  ...
2月 20 14:38:49   可是酷刑沒有 win32 版 XD
2月 20 14:38:50  lukhnos++
2月 20 14:40:02         [苦力強|半形]
2月 20 14:41:34   其實只要給 gugod 一個對照表大概就好了
2月 20 14:42:06         酷刑輸入法是用拼音?
2月 20 14:42:14   注音
2月 20 14:42:17        b6s: 注音是
2月 20 14:42:56   用某些規則將鍵碼限制永遠要三個的注音,然後排列有些地方像許氏
2月 20 14:43:02   有些地方像倚天
2月 20 14:43:49         何苦呢 XD
2月 20 14:43:49       blah
2月 20 14:43:57   haha
2月 20 14:45:23         有些字要用 poj 打,有些要用拼音打,有些要用英文拼
2月 20 14:48:24         打小灌木出現 bush , 打 evil 出現 a company of your choice
2月 20 14:54:35        每打一次還會變換規則 :P
2月 20 15:02:27        ...