R 如何使用stemCompletion函数(tm软件包)从词典中完成词干语料库
我在R的tm软件包中遇到问题。我使用的是0.6.2版本。以下问题(2个不同的错误)已经回答,但在使用发布的解决方案后仍然产生错误。请单击下载数据集(仅93行)。这是一个可复制的例子。 以下是两个错误:R 如何使用stemCompletion函数(tm软件包)从词典中完成词干语料库,r,tm,R,Tm,我在R的tm软件包中遇到问题。我使用的是0.6.2版本。以下问题(2个不同的错误)已经回答,但在使用发布的解决方案后仍然产生错误。请单击下载数据集(仅93行)。这是一个可复制的例子。 以下是两个错误: (已解决)使用方法中的错误(“meta”,x): 没有适用于“字符”类对象的“meta”方法 错误:继承(doc,“TextDocument”)不正确 在这种情况下,tm_地图(ds.corpus,PlainTextDocument)不会创建纯文本文档。 继承(ds.cleancopus,“Tex
所以现在我的主要问题是“如何从字典(tm软件包)中完成词干语料库”“stemCompletion方法似乎不起作用(在字符向量上)。其次,如何完成整个语料库的词干提取,是否应该对语料库内容的每个文档使用for循环?有两件事需要更改
removeURL不确定是否已找到解决方案。这封信已经通知我了 我相信它解决了你的第二个问题“如何从字典(tm软件包)中完成词源语料库”(以及我的,与你的相似)。具体而言,您可以尝试以下代码:
stem_completion <- tm_map(ds.corpus,
content_transformer(function(x, d)
paste(stemCompletion(strsplit(stemDocument(x), ' ')[[1]], d),
collapse = ' ')), d = copy)
stem\u看看?stemCompletion
。在stemCompletion(ds.corpus,stemCompletion,dictionary=copy)
中,您正在将类型为corpus
的对象传递给类型应为character
的参数,并且。。。嗯。。。我不知道第二个参数stemCompletion
应该放在哪里。也许你应该澄清一下你想要实现什么…?我只是让自己对tm软件包的功能感到舒服。在这里,我在构建模型之前执行基本数据预处理。请查看问题中的链接以获得更好的参考@MrFlick@freetiger如果这回答了您的问题,请接受答案。@amitkb3为什么需要创建副本?e、 为什么一个人不能做stemCompletion(x,ds,语料库)?
stemCompletion(ds.corpus[[1]]$content, dictionary = copy)
compan entit suppl
# Data import
df.imp<- read.csv("data/Phone2_Sample100_NegPos.csv", header = TRUE, as.is = TRUE)
##### Data Pre-Processing
#install.packages("tm")
require(tm)
ds.corpus<- Corpus(VectorSource(df.imp$Content))
ds.corpus<- tm_map(ds.corpus, content_transformer(tolower))
ds.corpus<- tm_map(ds.corpus, content_transformer(removePunctuation))
ds.corpus<- tm_map(ds.corpus, content_transformer(removeNumbers))
removeURL<- function(x) gsub("http[[:alnum:]]*", "", x)
ds.corpus<- tm_map(ds.corpus,content_transformer(removeURL))
stopwords.default<- stopwords("english")
stopWordsNotDeleted<- c("isn't" , "aren't" , "wasn't" , "weren't" , "hasn't" ,
"haven't" , "hadn't" , "doesn't" , "don't" ,"didn't" ,
"won't" , "wouldn't", "shan't" , "shouldn't", "can't" ,
"cannot" , "couldn't" , "mustn't", "but","no", "nor", "not", "too", "very")
stopWord.new<- stopwords.default[! stopwords.default %in% stopWordsNotDeleted] ## new Stopwords list
ds.corpus<- tm_map(ds.corpus, removeWords, stopWord.new )
tdm<- TermDocumentMatrix(ds.corpus)
copy<- ds.corpus ## creating a copy to be used as a dictionary
x <- c("compan", "entit", "suppl")
stemCompletion(x, copy)
stem_completion <- tm_map(ds.corpus,
content_transformer(function(x, d)
paste(stemCompletion(strsplit(stemDocument(x), ' ')[[1]], d),
collapse = ' ')), d = copy)