【问题标题】:Using gsub function to replace words by reading a .csv file使用 gsub 函数通过读取 .csv 文件来替换单词
【发布时间】:2018-05-10 11:02:01
【问题描述】:
setwd("C:\\Users\\Joshua\\Documents\\TextMining\\Description_text")
library(RTextTools)
library(topicmodels)
library(tm)
library(SnowballC)

#Seizure
#cnamePS=file.path("C:\\Users\\Joshua\\Documents\\TextMining\\")
cnamePS=file.path("C:\\Users\\Joshua\\Documents\\TextMining\\Description_text")
docs <- Corpus(DirSource(cnamePS), readerControl=list(reader=readPlain))

#clean file
docsA <- tm_map(docs, removePunctuation)
docsA <- tm_map(docsA, removeNumbers)

docsA=tm_map(docsA,content_transformer(tolower))
docsA=tm_map(docsA,removeWords,stopwords("english"))

#phrase replacement
phrasesReplacement <- read.csv("C:\\Users\\Joshua\\Documents\\TextMining\\phrases.csv", stringsAsFactors = FALSE)
replacePhrasesFunc <- function(txt, replacementtable)
{

  txt<-gsub("-","",txt)

  for (r in seq(nrow(replacementtable)))
  {
    txt <- gsub(replacementtable$phrase[r], replacementtable$replacement[r], txt, fixed=TRUE)
  }
  return(txt)
}

replacePhrases <- content_transformer(replacePhrasesFunc)

docsA <- tm_map(docsA, replacePhrases, phrasesReplacement)#keep phrase


#docsAcopy=docsA #make copy

#docsA=tm_map(docsA,stemDocument) 

docsA=tm_map(docsA,stripWhitespace)

您好,我正在尝试进行一些文本挖掘以进行一些研究,但是我的代码的一部分中不断出现一个错误。

> docsA <- tm_map(docsA, replacePhrases, phrasesReplacement)#keep phrase
Error in gsub(replacementtable$phrase[r], replacementtable$replacement[r],  : 
  invalid 'pattern' argument
Called from: gsub(replacementtable$phrase[r], replacementtable$replacement[r], 
    txt, fixed = TRUE)

不幸的是,由于我是 R 新手,我似乎无法弄清楚为什么错误会不断重复发生。如果可能的话,感谢您的帮助。

So the .csv file I use is formatted as such..

So here is the debugging information.

【问题讨论】:

  • 在运行此代码之前尝试options(error=recover)。这将在您收到错误时启动调试器,您可以看到 replacementtable$phrase[r] 的样子。
  • 我认为您的数据中可能存在一些保留的元字符导致这种情况,例如,如果您的数据存在“(”或“+”或“*”等具有特​​殊含义包含这些符号,那么就会发生这种错误,除非这些用“\\”转义。
  • 感谢您的关注。我已经启动了调试器并发布了我看到的内容。 "\\" 是什么意思?

标签: r replace gsub


【解决方案1】:

原来是我的 .csv 文件有问题。

我在单词之间少了一个逗号。

一个很好的提醒,最小的事情可能导致整个代码无法工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    • 2017-06-09
    • 1970-01-01
    • 1970-01-01
    • 2021-11-04
    • 2013-10-14
    相关资源
    最近更新 更多