R tm StemCompletion 生成 NA 值

标签 r stemming tm

当我尝试将 StemCompletion 应用于语料库时,此函数会生成 NA 值..

这是我的代码:

my.corpus <- tm_map(my.corpus, removePunctuation) 
my.corpus <- tm_map(my.corpus, removeWords, stopwords("english")) 

(这样做的一个结果是: [[2584]] 分区计划 )

下一步是冲压语料库,因此:

my.corpus <- tm_map(my.corpus, stemDocument, language="english")
my.corpus <- tm_map(my.corpus, stemCompletion, dictionary=my.corpus_copy, type="first")

但是结果是这样的

[[2584]] NA工厂

下一步应该是创建一个包含交易的关联矩阵,然后是先验规则,但是如果我继续尝试获取规则,inspect(rules) 函数会给我这个错误:

> inspect(rules)
Errore in UseMethod("inspect", x) : 
no applicable method for 'inspect' applied to an object of class "c('rules','associations')"

有什么问题吗?我认为 NA 值不能正确生成关联矩阵,然后生成好的规则..这是问题所在吗?如果是这样我该如何解决?

这是问题的摘要:

this is an abstract:

my.words = c("β cell","zoning policy regional index brazil","zoning plan","zolpidem  adult","zizyphus spinosa hu")
my.corpus = Corpus(VectorSource(my.words))
my.corpus_copy = my.corpus
my.corpus = tm_map(my.corpus, removePunctuation)
my.corpus = tm_map(my.corpus, removeWords, c("the", stopwords("english"))) 
my.corpus = tm_map(my.corpus, stemDocument, language="english")
my.corpus <- tm_map(my.corpus, stemCompletion, dictionary=my.corpus_copy, type="first")
inspect(my.corpus)

最佳答案

如果使用原始语料库作为字典参数,此时的

stemCompletion()只是词干提取过程的近似逆转。使用grep(),它在字典中搜索包含当前词干单词的所有单词,然后根据'类型'。

因此,如果词干处理返回的单词不是未词干单词的子字符串,则会失败。例如,'c('delivery', 'zoning') 的词干是由 stemDocument() 中使用的 wordStem() 返回的 c('deliveri', 'zone')强>。然而,在这两种情况下,词干词都不是非词干词的正确子串。因此,stemCompletion() 不会找到任何替换并返回 NA。

有很多替代方法可以解决这个问题,包括从 stemCompletion() 返回后用词干词替换 NA,或者更好地修改 stemCompletion() 函数本身。修改它的一个简单方法是使用您自己的版本 stemCompletion_modified():(将 ... 替换为 stemCompletion( ) tm 包中的函数)

stemCompletion_modified <- function (x, dictionary, type = ...) 
{
  ...
  #possibleCompletions <- lapply(x, function(w) grep(sprintf("^%s", w), dictionary, value = TRUE))
  possibleCompletions <- lapply(x, function(w) ifelse(identical(grep(sprintf("^%s", w), dictionary, value = TRUE),character(0)),w,grep(sprintf("^%s", w), dictionary, value = TRUE)))
  ...
} 

关于R tm StemCompletion 生成 NA 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18782455/

相关文章:

r - 如何在 R 中加载包

R 文本挖掘 - 如何将 R 数据框列中的文本更改为多个具有词频的列?

r - 从 R 中的数据框中识别无意义或乱码的文本。有没有办法将字符串/单词部分匹配到字典?

r - R 中的 SVM - 对新实例进行分类

xml - 将 XML 的所有字段(和子字段)导入为数据框

r - Stan 中指数随机变量的模拟(RStan 包/接口(interface))

search - 更改Stemmer时是否应该在Elasticsearch中为文档重新编制索引?

Solr Snowball 词干分析器与西类牙语不一致

python - 多语言文本语料库的词干提取

r - 什么与 R 中的 #ifdef DEBUG 相似?