Присвоение слов тегов pos соответствующей строке в кадре данных в r - PullRequest
0 голосов
/ 03 июля 2019

Я делаю пометки некоторых текстов в r. То, что я хочу, соответствует каждой строке в текстовом столбце, как показано ниже. Мне нужны только слова существительные, глаголы и прилагательные в соответствующем столбце pos_tag

                                    text             pos_tag
1 Hi, I am looking for xyz in your website     website, looking
2          when will my product delivered     product, delivered
3          Is the stock available for abc     stock, available, abc

Я получил некоторую подсказку: Извлечение POS-тегов в R с использованием , но, похоже, оно работает на скаляре, а не на векторе. поэтому используется для цикла, чтобы он работал на каждой строке текста. Другой ключ здесь: POS-теги для каждой записи в R

library(openNLP)
library(NLP)

data <- data.frame(text=c("Hi,i am looking for xyz in your website",
                          "when will my product delivered",
                          "is the stock available for abc"))
data$text <- as.character(data$text)

for(i in 1:nrow(data)){
  data$text[i] <- as.String(data$text[i])  
}

sent_token_annotator <- Maxent_Sent_Token_Annotator()
word_token_annotator <- Maxent_Word_Token_Annotator()
for(i in 1:nrow(data)){
  s <- data$text[i]
  s <- as.String(s)
  a2 <- annotate(s, list(sent_token_annotator, word_token_annotator))  
  pos_tag_annotator <- Maxent_POS_Tag_Annotator()
  a3 <- annotate(s, pos_tag_annotator, a2)
  a3w <- subset(a3, type == "word")
  tags <- sapply(a3w$features,'[[',"POS")
  b <- sprintf("%s/%s",s[a3w],tags)
  b <- grep("/NNP|/NN|ADJ",b,value = T)
  b <- gsub("/NNP|/NN|/ADJ","",b)
  b <- list(b)
  data$pos_tag[i] <- b 

}

Но я не уверен, правильно ли я это делаю или это лучший способ сделать это в r. Пожалуйста, предложите

...