如何在R中删除文档后获取根和单词之间的列表?

时间:2018-04-09 14:06:23

标签: r nlp tm

我正在进行文本挖掘项目,我们希望按体育对变量进行分类(是一个描述体育的自由文本变量)。出于这个原因,我想阻止它。我想检查根和单词之间的关系是否正确,所以我想知道哪些根包含哪些单词。我在R工作,有人可以帮我吗?

删除puntuation,数字,额外的空格后,我正在做:

library(tm)
myData <- c('natacion gimnasio','gimnasia montana','correr bicicleta','corremontanismo','nadar bici')
corpus <- Corpus(VectorSource(myData))
dictCorpus <- corpus
corpus <- tm_map(corpus, stemDocument, language = "spanish")
inspect(corpus[1:5])
corpus <- tm_map(corpus, stemCompletion, dictionary=dictCorpus)
inspect(corpus[1:5])

然后我有:

enter image description here

我有3个问题,我不知道如何解决它:

  1. 带有词根之间关系的列表(例如:root = gimnasi; words = gimnasio,gimnasia | root = montan; words = montana,montanismo)。我希望看到每个根与其相关词的关系。
  2. 如何进行正确的匹配(bicicleta == bici,但是stemDocument没有连接它们)。
  3. 在应用stemCompletion时更改单词的根目录。
  4. 提前致谢。

1 个答案:

答案 0 :(得分:0)

我对你的所有问题都没有完整的答案。但我会尽可能多地回答。

1)您可以访问雪球网站Spanish stemming algorithm

西班牙语样本列表为here

对应的根是here

匹配这些文件将为您提供根和单词之间的关系。

2)在bici和bicicleta之间获得正确匹配很困难。它们没有相同的引理或根。您需要一个同义词词典来帮助您。

3)返回单词而不是root是有趣的,但西班牙语有男性和女性版本。如果我看看gimnasio / gimnasia的引理,它们就是gimnasio和gimnasia,即使根是gimnasi。你要回哪个字?您可能想在开始词干之前决定这一点,并创建一个仅包含(fe)男性单词的词典。