我正在尝试添加一个使用表查找方法工作的新词干分析器。如果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
答案 0 :(得分:1)
您只需使用PlainTextDocument
功能而不是as.PlainTextDocument
。 R将自动返回函数中的最后一个语句,因此如果你只做最后一行
PlainTextDocument(paste(unlist(z),collapse=' '))