R 如何正确使用stemDocument?

R 如何正确使用stemDocument?,r,text-mining,tm,stemming,snowball,R,Text Mining,Tm,Stemming,Snowball,我已经阅读并提出了问题,但我仍然不理解tm\u map中stemDocument的用法。让我们按照这个例子: q17 <- VCorpus(VectorSource(x = c("poder", "pode")), readerControl = list(language = "pt", load = TRUE)) lapply(q17, content) $`character(0)`

我已经阅读并提出了问题,但我仍然不理解
tm\u map
stemDocument
的用法。让我们按照这个例子:

q17 <- VCorpus(VectorSource(x = c("poder", "pode")),
               readerControl = list(language = "pt",
                                    load = TRUE))
lapply(q17, content)
$`character(0)`
[1] "poder"

$`character(0)`
[1] "pode"
它确实有用!但如果我使用:

> q17 <- tm_map(q17, FUN = stemDocument, language = "portuguese")
> lapply(q17, content)
$`character(0)`
[1] "poder"

$`character(0)`
[1] "pode"
>q17 Lappy(q17,内容)
$`字符(0)`
[1] “波德”
$`字符(0)`
[1] “波德”

它不起作用。为什么会这样?

不幸的是,您遇到了一个bug<代码>stemDocument如果在执行以下操作时传递该语言,则会起作用:

stemDocument(x = c("poder", "pode"), language = "pt")
[1] "pod" "pod"
但在
tm_map
中使用此函数时,函数将以
stemDocument.PlainTextDocument
开始。在此函数中,将对照函数中提供的语言检查语料库的语言。这是正确的。但是在这个函数的末尾,所有内容都被传递到函数
stemDocument.character
,但是没有语言组件。在
stemDocument.character
中,默认语言指定为英语。因此,在
tm_map
调用(或
DocumentTermMatrix
)中,您提供的语言将恢复为英语,词干分析无法正常工作

解决方法可以是使用quanteda包:

library(quanteda)
my_dfm <- dfm(x = c("poder", "pode"))
my_dfm <- dfm_wordstem(my_dfm, language = "pt")

my_dfm

Document-feature matrix of: 2 documents, 1 feature (0.0% sparse).
2 x 1 sparse Matrix of class "dfm"
       features
docs    pod
  text1   1
  text2   1
库(quanteda)

我的_dfmtks@phiver!如何使用
quanteda
,在我的dfm中将单词“pod”返回到“pode”或“poder”?@GuilhermeParreira,你不能。您需要使用tm的
stemCompletion
功能。我从来没有看到重新整理的意义,但是我从来没有离开过英语,甚至对于英语,我发现引理更有用。引理和词性标记在葡萄牙语的udpipe中可用。如果您提供自己的葡萄牙语词典,您可以使用
stemCompletion
。但是请仔细阅读文档,并检查一些示例。它并不总是像你期望的那样。我倾向于使用tm以外的其他软件包的原因之一。我使用重新整理的想法是为了让研究人员更容易理解分析。如果dict是你们的字典,你们有什么代码可以说明怎么做吗(从
quanteda
package开始?)如果dict是你们的字典,里面有单词(
dict Tks!!我想怎么做就怎么做:
diciario
library(quanteda)
my_dfm <- dfm(x = c("poder", "pode"))
my_dfm <- dfm_wordstem(my_dfm, language = "pt")

my_dfm

Document-feature matrix of: 2 documents, 1 feature (0.0% sparse).
2 x 1 sparse Matrix of class "dfm"
       features
docs    pod
  text1   1
  text2   1