Skip to content
Prev 377271 / 398502 Next

POS counting number of verbs

Hi Elahe,

First, please post in plain text and make sure the code in your message 
is properly formatted.

Second, please state which libraries you are using.

Third, your problem appears to be with empty Messages, this can be 
resolved as follows.

 >>>>>>>>>>>
tar <- data.frame(Message=c("","'alter database? datafile' needs to be 
executed"), group=c("1","2"),
 ????????????????? stringsAsFactors=TRUE)
str(tar)

library(openNLP)
library(NLP)

tagPOS <- function(x, ...) {
 ? s <- as.String(x)
 ? if(s=="") return(list())
 ? word_token_annotator <- Maxent_Word_Token_Annotator()
 ? a2 <- Annotation(1L, "sentence", 1L, nchar(s))
 ? a2 <- annotate(s, word_token_annotator, a2)
 ? a3 <- annotate(s, Maxent_POS_Tag_Annotator(), a2)
 ? a3w <- a3[a3$type == "word"]
 ? POStags <- unlist(lapply(a3w$features, `[[`, "POS"))
 ? POStagged <- paste(sprintf("%s/%s", s[a3w], POStags), collapse = " ")
 ? list(POStagged = POStagged, POStags = POStags)
}

count_verbs <-function(x) {
 ? pos_tags <- tagPOS(x)$POStags
 ? sum(grepl("VB", pos_tags))
}

library(dplyr)

tar %>% group_by(group) %>% summarise(num_verbs = count_verbs(Message))
<<<<<<<<<<<<<<<<

Rgds,
Robert
On 05/11/18 12:38, Elahe chalabi via R-help wrote: