Извлечение существительных и глаголов из текста - PullRequest
6 голосов
/ 04 июня 2010

Мне было интересно, можно ли отдельно извлечь существительные, глаголы в R пакете openNLP? Я использую функцию tagPOS, которая помечает предложение, но что делать, если я хочу извлечь глаголы, существительные отдельно.

1 Ответ

9 голосов
/ 04 июня 2010

Используя пример: (это для извлечения слов, помеченных как / VBx, где x - любой отдельный символ)

library("openNLP")

acq <- "Gulf Applied Technologies Inc said it sold its subsidiaries engaged in pipeline 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."

acqTag <- tagPOS(acq)

sapply(strsplit(acqTag,"[[:punct:]]*/VB.?"),function(x) sub("(^.*\\s)(\\w+$)", "\\2", x))

     [,1]                           
[1,] "said"                         
[2,] "sold"                         
[3,] "engaged"                      
[4,] "said"                         
[5,] "is"                           
[6,] "did"                          
[7,] " not/RB explain./NN Reuter./."

Хорошо, мое регулярное выражение нуждается в некотором улучшении, чтобы избавиться от последней строки в результате.

EDIT

Альтернативой может быть игнорирование строк, содержащих space символ

sapply(strsplit(acqTag,"[[:punct:]]*/VB.?"),function(x) {res = sub("(^.*\\s)(\\w+$)", "\\2", x); res[!grepl("\\s",res)]} )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...