这里是R代码:如何使用OpenNLP获取R中的POS标签?
library(NLP)
library(openNLP)
tagPOS <- function(x, ...) {
s <- as.String(x)
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)}
str <- "this is a the first sentence."
tagged_str <- tagPOS(str)
输出是:
tagged_str $ POStagged [1]“这/ DT是/ VBZ一个/ DT的/ DT第一/ JJ句子/ NN ./“。
现在我想从上面的句子中只提取NN字,即句子,并希望将它存储到一个变量中。任何人都可以帮助我解决这个问题。
我只能跟你提供的示例工作 - 它为你提出了什么。如果您遇到其他示例的问题,请随时发布新问题。 – RHertel
假设的例子是 “2汤匙全蛋蛋黄酱” “1茶匙全麦芥末” “70克混合沙拉叶” “西红柿2个,切成薄片” “面包与黄油黄瓜,服务” “90克Hakuba有机干荞麦面“ ”1个大胡萝卜,去皮,切成火柴梗“ ”1/2束西兰花,切成5厘米长“ ”60g婴儿玉米,对角切成薄片“ 试试这些例子。在某些情况下工作 – user4599
谢谢你的评论,@HimaanshuGauba。我很抱歉听到我的建议解决方案在某些遇到的情况下无法提供预期的结果。如果在您的OP中出现这种隐患的可能性已经很明显,那么我会试着提供一个适用于这些案例的答案。 – RHertel