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