如何在R中执行放缩?
nlp
r
6
0

这个问题可能是R或python中Lemmatizer的一个可能重复项(am,are,is-> be?) ,但是我要再次添加它,因为上一个已经关闭,说它太宽泛了,唯一的答案不是高效(因为它为此访问外部网站,所以速度太慢,因为我的语料库非常庞大,无法找到引理)。因此,该问题的一部分将与上述问题类似。

根据Wikipedia的描述,去词性化定义为:

语言学中的词法化(或词法化)是将单词的不同变形形式组合在一起的过程,因此可以将它们作为单个项目进行分析。

一个简单的谷歌搜索中的R词形还原指向该程序包wordnet河中。当我尝试这个包期待一个特征向量c("run", "ran", "running")输入到词形还原功能会导致c("run", "run", "run") ,我看到此包仅通过各种过滤器名称和字典提供类似于grepl函数的功能。

wordnet程序包中的示例代码,最多提供5个以“ car”开头的单词,因为过滤器名称说明了自己:

filter <- getTermFilter("StartsWithFilter", "car", TRUE)
terms <- getIndexTerms("NOUN", 5, filter)
sapply(terms, getLemma)

上面不是我要寻找的词形化。我正在寻找的是,使用R我想找到单词的真实词根:(例如,从c("run", "ran", "running")c("run", "run", "run") )。

参考资料:
Stack Overflow
收藏
评论
共 4 个回答
高赞 时间 活跃

如前所述,R包textstem中的lemmatize_words()函数可以执行此操作,并为您提供我所期望的结果:

library(textstem)
vector <- c("run", "ran", "running")
lemmatize_words(vector)

## [1] "run" "run" "run"
收藏
评论

你好,你可以尝试包koRpus允许使用Treetagger

tagged.results <- treetag(c("run", "ran", "running"), treetagger="manual", format="obj",
                      TT.tknz=FALSE , lang="en",
                      TT.options=list(path="./TreeTagger", preset="en"))
tagged.results@TT.res

##     token tag lemma lttr wclass                               desc stop stem
## 1     run  NN   run    3   noun             Noun, singular or mass   NA   NA
## 2     ran VVD   run    3   verb                   Verb, past tense   NA   NA
## 3 running VVG   run    7   verb Verb, gerund or present participle   NA   NA

有关所需结果,请参阅lemma列。

收藏
评论

@Andy和@Arunkumar说textstem库可用于执行词干和/或词义化时是正确的。但是,lemmatize_words()仅适用于单词向量。但是在语料库中,我们没有单词的向量;我们有字符串,每个字符串都是文档的内容。因此,要对语料库执行词法语义化,可以使用lemmatize_strings()函数作为tm软件包的tm_map()的参数。

> corpus[[1]]
[1] " earnest roughshod document serves workable primer regions recent history make 
terrific th-grade learning tool samuel beckett applied iranian voting process bard 
black comedy willie loved another trumpet blast may new mexican cinema -bornin "
> corpus <- tm_map(corpus, lemmatize_strings)
> corpus[[1]]
[1] "earnest roughshod document serve workable primer region recent history make 
terrific th - grade learn tool samuel beckett apply iranian vote process bard black 
comedy willie love another trumpet blast may new mexican cinema - bornin"

进行完词条化后,请不要忘记运行以下代码行:

> corpus <- tm_map(corpus, PlainTextDocument)

这是因为要创建文档术语矩阵,您需要具有“ PlainTextDocument”类型的对象,该对象在使用lemmatize_strings()之后会发生更改(更具体地说,语料库对象不包含内容和元数据每个文档-现在只是一个包含文档内容的结构;这不是DocumentTermMatrix()作为参数的对象类型)。

希望这可以帮助!

收藏
评论

也许茎干对您来说足够了?典型的自然语言处理任务与词干文本有关。您可以从NLP的CRAN任务视图中找到几个软件包: http : //cran.r-project.org/web/views/NaturalLanguageProcessing.html

如果您确实确实需要更复杂的东西,那么有一种基于将句子映射到神经网络的特殊解决方案。据我所知,这些需要大量的培训数据。 斯坦福NLP集团创建并提供了许多开放软件。

如果您真的想深入了解该主题,则可以浏览斯坦福NLP Group 出版物同一部分中链接的事件档案。也有一些关于该主题的书。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号