wra*_*ool 6 r corpus text-mining tm
我已经看过这里发布的其他类似问题(像这样),但问题仍然存在.
我有一个文本数据的数据框,我需要阻止它.因此,我将其转换为语料库,然后将其转换为词干,然后完成词干中的单词,然后尝试将文本数据框作为输出.
myCorpus <- Corpus(VectorSource(textDf$text))
myCorpus <- tm_map(myCorpus, removeWords, stopwords('english'))
myCorpus <- tm_map(myCorpus, content_transformer(tolower))
myCorpus <- tm_map(myCorpus, removePunctuation)
dictCorpus <- myCorpus
myCorpus <- tm_map(myCorpus, stemDocument)
myCorpus <- tm_map(myCorpus, stemCompletion, dictionary=dictCorpus)
Run Code Online (Sandbox Code Playgroud)
现在我正试图从这个语料库中获取一个数据帧,所以我尝试了以下命令.
dataframe<-data.frame(text=unlist(sapply(myCorpus, '[', "content")),
stringsAsFactors=F)
和
dataframe<-data.frame(text=unlist(sapply(myCorpus,[)), stringsAsFactors=F)
并且
dataframe <-
data.frame(id=sapply(corpus, meta, "id"),
text=unlist(lapply(sapply(corpus, '[', "content"),paste,collapse="\n")),
stringsAsFactors=FALSE)
Run Code Online (Sandbox Code Playgroud)
从这个链接
所有这些都会产生以下错误:
Error in UseMethod("meta", x) :
no applicable method for 'meta' applied to an object of class "character"
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
Ken*_*oit 12
这应该这样做:
data.frame(text = sapply(myCorpus, as.character), stringsAsFactors = FALSE)
Run Code Online (Sandbox Code Playgroud)
使用工作解决方案编辑,使用crude示例
这里的问题是你不能申请stemCompletion转型.
getTransformations()
## [1] "removeNumbers" "removePunctuation" "removeWords" "stemDocument" "stripWhitespace"
Run Code Online (Sandbox Code Playgroud)
不包括stemCompletion,它将带有标记的标记的向量作为输入.
所以这应该这样做:首先提取转换后的文本并标记它们,然后完成词干,然后粘贴在一起.在这里,我使用内置crude语料库说明了解决方案.
data(crude)
myCorpus <- crude
myCorpus <- tm_map(myCorpus, removeWords, stopwords('english'))
myCorpus <- tm_map(myCorpus, content_transformer(tolower))
myCorpus <- tm_map(myCorpus, removePunctuation)
dictCorpus <- myCorpus
myCorpus <- tm_map(myCorpus, stemDocument)
# tokenize the corpus
myCorpusTokenized <- lapply(myCorpus, scan_tokenizer)
# stem complete each token vector
myTokensStemCompleted <- lapply(myCorpusTokenized, stemCompletion, dictCorpus)
# concatenate tokens by document, create data frame
myDf <- data.frame(text = sapply(myTokensStemCompleted, paste, collapse = " "), stringsAsFactors = FALSE)
Run Code Online (Sandbox Code Playgroud)