Пакет интеллектуального анализа текста R, добавляющий новую функцию в getTransformation

Я пытаюсь добавить новый стеммер, который работает с использованием метода поиска в таблице. если h — это хэш, содержащий операцию формирования основы, он кодируется следующим образом: ключи — это слова до выделения основы, а значения — слова после выделения основы.

В идеале я хотел бы добавить собственный хеш, который позволяет мне делать следующее

мой корпус = tm_map (мой корпус, заменить слова, ч)

функция 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 я видел функцию replaceWords, которая позволяла использовать синонимы и подстановки на основе WORDNET. Но я больше не вижу его в текущей версии пакета tm (особенно когда я вызываю функцию getTransformations())

Есть ли у кого-нибудь идеи о том, как я могу это сделать?

Любая помощь приветствуется.

Привет, Шивани

Спасибо, Шивани Рао.


person Shivani Rao    schedule 05.04.2012    source источник


Ответы (1)


Вам просто нужно использовать функцию PlainTextDocument вместо as.PlainTextDocument. R автоматически вернет последний оператор в вашей функции, поэтому он работает, если вы просто сделаете последнюю строку

PlainTextDocument(paste(unlist(z),collapse=' '))
person Fojtasek    schedule 06.04.2012