Преобразуйте существительные во множественном числе в существительные в единственном числе - PullRequest
10 голосов
/ 12 августа 2011

Как можно преобразовать множественные существительные в единственные существительные, используя R? Я использую функцию tagPOS, которая помечает каждый текст, а затем извлекает все существительные множественного числа, которые были помечены как «NNS». Но что делать, если я хочу преобразовать эти множественные существительные в единственные .?


library("openNLP")
library("tm")
acq_o <- "Gulf Applied Technologies Inc said it sold its subsidiaries engaged in pipelines and terminal operations for 12.2 mln dlrs. The company said the sale is subject to certain post closing adjustments, which it did not explain. Reuter."

acq = tm_map(Corpus(DataframeSource(data.frame(acq_o))), removePunctuation)
acqTag <- tagPOS(acq)
acqTagSplit = strsplit(acqTag," ")
qq = 0
tag = 0
for (i in 1:length(acqTagSplit[[1]])){
        qq[i] <-strsplit(acqTagSplit[[1]][i],'/')
        tag[i] = qq[i][[1]][2]
}

index = 0
k = 0
for (i in 1:(length(acqTagSplit[[1]]))) { 
    if (tag[i] == "NNS"){
        k = k +1             
        index[k] = i     
    } 
}
index

1 Ответ

6 голосов
/ 12 августа 2011

Я уверен, что вы могли бы передать ваши данные через внешнюю программу или предварительно обработать ваши данные.

Если вы все равно делаете тегирование, немецкий проект TreeTagger выполняет отличную работу по тегированию и лемматизации одновременно.

РЕДАКТИРОВАТЬ: tchrist был прав, напомнив мне, что, независимо от ваших целей, если вы на самом деле ищете формы единственного числа ваших существительных во множественном числе, поиск решения, испеченного в домашних условиях, вовсе не собирается его сокращать.

А если вы этого не сделаете, то Neo_Me (опять же, в комментариях), похоже, обнаружил пакет, который происходит в R: пакет снежный ком (RStem, похоже, был прекращен. AFAICT, Snowball заменяет его.)

Конечно, это всего лишь реализация или обертка вокруг портера Porter. Используйте на свой страх и риск, это может привести к тому, что такие вещи, как жен в wif или что-то в этом роде.

Мне только что пришло в голову, что R имеет CRAN . В поисках «леммы» я узнал о Java-зависимом пакете wordnet . Кажется, есть функция getLemma. Весь пакет, вероятно, излишний для вас, но все равно может вас куда-то найти, если вы не найдете ничего лучшего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...