R的文本挖掘包...为getTransformation添加一个新函数

时间:2012-04-05 16:25:38

标签: r text-mining stemming corpus

我正在尝试添加一个使用表查找方法工作的新词干分析器。如果h是包含词干操作的哈希值,则编码如下:键作为词干之前的单词,值作为词后句词。

我想理想地添加一个允许我执行以下操作的自定义哈希

myCorpus = tm_map(myCorpus,replaceWords,h)

replaceWords函数应用于myCorpus中的每个文档,并使用哈希来阻止文档的内容

以下是我的replaceWords函数的示例代码

$hash_replace <- function(x,h) {
if (length(h[[x]])>0) {
    return(h[[x]])
} else {
    return(x)
}
}

replaceWords <- function(x,h) {
y = tolower(unlist(strsplit(x," ")))
y=y[which(as.logical(nchar(y)))]
z = unlist(lapply(y,hash_replace,h))
return(paste(unlist(z),collapse=' '))
}

虽然这有效,但转换后的语料库不再包含“TextDocument”或“PlainTextDocument”类型的内容,而是包含“character”类型的内容

我尝试使用

return(as.PlainTextDocument(paste(unlist(z),collapse=' ')))

但是这在尝试运行时给我一个错误。

在R的tm软件包的早期版本中,我确实看到了一个允许同义词和基于WORDNET的子代码的replaceWords函数。但我不再在当前版本的tm包中看到它(特别是当我调用函数getTransformations()时)

有没有人有关于如何实现这一目标的想法?

非常感谢任何帮助。

干杯, Shivani

谢谢, Shivani Rao

1 个答案:

答案 0 :(得分:1)

您只需使用PlainTextDocument功能而不是as.PlainTextDocument。 R将自动返回函数中的最后一个语句,因此如果你只做最后一行

就可以了
PlainTextDocument(paste(unlist(z),collapse=' '))