[请益] 英文单字还原的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