首页
学习
活动
专区
圈层
工具
发布

问词干R
EN

Stack Overflow用户
提问于 2017-03-20 16:17:31
回答 1查看 1.7K关注 0票数 2

我正在做一个文本挖掘项目,试图清理文本-单数/复数形式的单词,不同时态的动词和拼写错误的单词。我的样本看起来如下:

代码语言:javascript
复制
test <- c("apple","apples","wife","wives","win","won","winning","winner","orange","oranges","orenge")

我尝试在wordStem包中使用SnowballC函数。然而,结果是错误的:

代码语言:javascript
复制
"appl"   "appl"   "wife"   "wive"   "win"    "won"    "win"    "winner" "orang"  "orang"  "oreng" 

我想看到的是:

代码语言:javascript
复制
"apple"   "apple"   "wife"   "wife"   "win"    "win"    "win"    "winner" "orange"  "orange"  "orange"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-20 16:45:14

这就是波特·斯泰默的工作原理。其原因是它允许相当简单的规则来创建词干,而不必存储大量的英语词汇表。例如,我认为您不希望change和changing都去chang。似乎更自然的是,它们都应该向change靠拢。那么,你会制定一条规则,如果你把ing从一个单词的末尾取下来,你应该把e加回来来得到词干吗?那么clang和clanging会发生什么呢?波特斯泰默给了clang。添加e将给出非单词clange。要么您使用简单的处理规则,有时创建不是单词的词干,要么您必须包含大量的词汇表,并且有更复杂的规则,这些规则取决于单词是什么。Porter Stemmer使用简单的规则方法。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42908720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档