【发布时间】:2017-10-29 18:53:36
【问题描述】:
我有一个如下的数据框:
str(data)
'data.frame': 255 obs. of 3 variables:
$ Group : Factor w/ 255 levels "AlzGroup1","AlzGroup10",..: 1 112 179 190 201 212 223 234 245 2 ...
$ Gender : int 1 1 0 0 0 0 0 1 0 0 ...
$ Description: Factor w/ 255 levels "A boy's on the uh falling off the stool picking up cookies . The girl's reaching up for it . The girl the lady "| __truncated__,..: 63 69 38 134 111 242 196 85 84 233 ...
在“描述”列中,我有 255 个演讲,我想在我的数据框中添加一列,其中包含每个演讲中的动词数量,我知道如何获取动词数量,但以下代码给出了描述中的动词总数专栏:
> library(NLP);
> library(tm);
> library(openNLP);
NumOfVerbs=sapply(strsplit(as.character(tagPOS(data$Description)),"[[:punct:]]*/VB.?"),function(x) {res = sub("(^.*\\s)(\\w+$)", "\\2", x); res[!grepl("\\s",res)]} )
有谁知道我如何获得每次演讲中的动词数量?
感谢您的帮助!
埃拉赫
【问题讨论】:
-
如果你可以计算动词,那么你也可以使用 dplyr::group_by 按语音分组,然后 summarise(n()) 进行计数。我认为如果您发布可重现的示例而不是数据结构,您可能会获得更好的质量帮助。只需使用
dput(data)并将输出粘贴到此处即可。
标签: r nlp text-mining tm opennlp