[請益] 英文單字還原的lib (snowball)

作者: asleepme (500年沒換暱稱了)   2018-08-31 16:03:18
有沒有對語言有研究的大大,用過snowball這套演算法?
我們在做語言相關的研究,遇到一個很基本也很重要的問題
就是時態問題,過去式、原型、單複數...
為了簡化處理,希望能把動詞還原原型、複數還原單數
簡單的ed、s、ly之類的都還算好處理,沒有lib也可以自己算
網路上找了一陣,最多人討論的就是snowball的演算法,也有很多語言的lib
但是遇到y結尾的變化,他只是去ed而已
例如replied => repli,沒有還原成reply
但是我們系統資料庫通常是紀錄 reply,這樣就會match不到
但是像loving、loved這種又還原的很好成love
至於不規則變化,snowball看起來是完全不處理
想知道大家用snowball都是怎麼用的?
我們的狀況是會有很多單字的原型跟相關的資料
然後要對進來的資料mapping,給他相關資料
不論來的東西是原型、過去式、單複數,都要對的起來
或是我們也把自己的資料全部用snowball算一次存起來
然後進來的資料也用一樣的算法處理,再一路mapping回原本的資料 XD
還是乾脆自己建適合自己應用的表?
作者: EijiHoba (我要好工作)   2018-08-31 17:15:00
如果使用資料庫儲存原型,第三人稱單數現在式,過去式,和過去完成式的單字,這樣做會有哪些問題?
作者: Yshuan (倚絃)   2018-08-31 18:11:00
有網路的話, 直接post給字典網站呢
作者: oopFoo (3d)   2018-09-01 00:43:00
你已經有答案了。不然就要選dictionary的stemmer。如hunspell
作者: pyCassandra (Q口Q)   2018-09-01 10:15:00
stemming
作者: asleepme (500年沒換暱稱了)   2018-09-01 22:47:00
請問樓上大大的stemming是一個專門的方法還是過程?
作者: oopFoo (3d)   2018-09-02 07:38:00
你問的問題就叫stemming。stemmer就是處理stemming的程式。snowball應該是用porter的algorithm來處理stemming.你想要處理irregular word。如feet, foot, mice, mouse就要用dictionary-based 的stemmer。你自己最後一段其實就是最好的解決方法。自己的mapping。

Links booklink

Contact Us: admin [ a t ] ucptt.com