8

我正在对一个大型数据库进行文本挖掘,以创建指示变量,这些变量指示观察的评论字段中某些短语的出现。注释由技术人员输入,因此使用的术语始终一致。

但是,在某些情况下,技术人员拼错了一个单词,因此我的 grepl() 函数无法捕捉到该短语(尽管拼写错误)出现在观察中。理想情况下,我希望能够将短语中的每个单词提交给一个函数,该函数将返回该单词的几个常见拼写错误或拼写错误。这样的R函数存在吗?

有了这个,我可以在评论字段中搜索这些短语拼写错误的所有可能组合,并将其输出到另一个数据框。这样,我可以逐个查看每个事件,以确定我感兴趣的现象是否真的由技术人员描述。

我在谷歌上搜索过,但只找到了对 R 的实际拼写检查包的引用。我正在寻找的是一个“反向”拼写检查器。由于我要查找的短语数量相对较少,我实际上可以手动检查拼写错误;我只是认为将这种能力内置到 R 包中以用于未来的文本挖掘工作会很好。

感谢您的时间!

4

1 回答 1

5

正如 Gavin Simpson 建议的那样,您可以使用 aspell。我想要让这个工作你需要安装 aspell。在许多 linux 发行版中,它是默认的;我不知道其他系统或它是否与 R 一起安装。

有关使用示例,请参见以下函数。这取决于您的输入数据以及您想要对您未指定的结果做什么(例如,第一个建议的正确拼写错误):

check_spelling <- function(text) {
  # Create a file with on each line one of the words we want to check
  text <- gsub("[,.]", "", text)
  text <- strsplit(text, " ", fixed=TRUE)[[1]]
  filename <- tempfile()
  writeLines(text, con = filename);
  # Check spelling of file using aspell
  result <- aspell(filename)
  # Extract list of suggestions from result
  suggestions <- result$Suggestions
  names(suggestions) <- result$Original
  unlink(filename)
  suggestions
}

> text <- "I am text mining a large database to create indicator variables which indicate the occurence of certain phrases in a comments field of an observation. The comments were entered by technicians, so the terms used are always consistent. "
> check_spelling(text)
$occurence
[1] "occurrence"   "occurrences"  "occurrence's"
于 2013-02-09T20:11:04.247 回答