作者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/cn.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