在 R 中对文档进行词干处理后,如何获得词根和单词之间的列表?

How can I get a list between roots and words after stemmed a document in R?

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

删除标点符号、数字、多余的空格后,我正在做:

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])

那么我有:

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

  1. 包含词根词之间关系的列表(例如:词根 = gimnasi;词 = gimnasio、gimnasia | 词根 = montan;词 = montana、montanismo)。我想看看每个词根与其关联词的关系。
  2. 如何正确匹配(bicicleta == bici,但 stemDocument 没有连接它们)。
  3. 应用 stemCompletion 时更改单词的词根。

提前致谢。

我没有完整回答你所有的问题。不过我会尽量回答的。

1) Spanish stemming algorithm.

可以去snowball官网

西班牙语示例列表是 here

对应的根是here

匹配这些文件会给你一个词根和单词之间的关系。

2) 很难在 bici 和 bicicleta 之间进行正确匹配。它们没有相同的引理或根。你需要一本同义词词典来帮助你。

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