R 如何使用stemCompletion函数(tm软件包)从词典中完成词干语料库

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

我在R的tm软件包中遇到问题。我使用的是0.6.2版本。以下问题(2个不同的错误)已经回答,但在使用发布的解决方案后仍然产生错误。请单击下载数据集(仅93行)。这是一个可复制的例子。 以下是两个错误:

  • (已解决)使用方法中的错误(“meta”,x): 没有适用于“字符”类对象的“meta”方法

  • 错误:继承(doc,“TextDocument”)不正确

  • 在这种情况下,tm_地图(ds.corpus,PlainTextDocument)不会创建纯文本文档。 继承(ds.cleancopus,“TextDocument”)#返回FALSE
  • 请告诉我我的方法有什么问题

    --


    所以现在我的主要问题是“如何从字典(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)