• R语言
  • tm包字典使用报错Repeated indices currently not allowed.

对TM包解释文件中的reuters数据做字典索引

#要考察多个文档中特有词汇的出现频率,可以手工生成字典,并将它作为生成矩阵的参数
d <- Dictionary(c("prices", "crude", "oil")))
inspect(DocumentTermMatrix(reuters, list(dictionary = d)))

报错:Error in [.simple_triplet_matrix(x, docs, terms) :
Repeated indices currently not allowed.
有人知道如何解决吗,感谢。

    Tatiana97

    试了一下,tm包里没有Dictionary()函数和reuters数据了,请贴一下完整代码以及sessioninfo(),估计这段代码来自老版本的tm包

      tctcab

      你好,这是18年7月更新的tm包解释文件,的确没有使用dictionary函数了,但是我还是有如上报错。谢谢~
      library(tm)
      library(NLP)
      adress=system.file("texts","crude",package="tm")
      reuters=Corpus(DirSource(adress),readerControl=list(reader=readReut21578XML))

      reuters=tm_map(reuters,PlainTextDocument)
      corpus_clean <- tm_map(reuters, tolower)
      corpus_clean <- tm_map(reuters, removeNumbers)
      corpus_clean <- tm_map(reuters, removeWords, ("english"))
      corpus_clean <- tm_map(reuters, removePunctuation)
      corpus_clean <- tm_map(reuters, stripWhitespace)
      dtm <- DocumentTermMatrix(reuters)
      #找出发生5次及以上的条目
      findFreqTerms(dtm, 5)
      #找相关性,比如对于opec,找到相关系数在0.8 以上的条目
      findAssocs(dtm, "opec", 0.8)

      #要考察多个文档中特有词汇的出现频率,可以手工生成字典,并将它作为生成矩阵的参数
      inspect(DocumentTermMatrix(reuters, list(dictionary = c("prices", "crude", "oil"))))