我正在关注本文https://mylearnmachinelearning.com/category/linear-regression/,以创建命名实体提取器。根据需要,我已经安装了所有openNLP
,NLP
,rJava
,magrittr
和openNLPmodels.en
软件包。除了使用此功能 annotations
以外,其他一切都已按计划进行。
# Extract entities from an AnnotatedPlainTextDocument
entities <- function(doc, kind) {
s <- doc$content
a <- annotations(doc)[[1]] #Point of error
if(hasArg(kind)) {
k <- sapply(a$features, `[[`, "kind")
s[a[k == kind]]
} else {
s[a[a$type == "entity"]]
}
}
使用以下方法:
entities(text_doc, kind = "person")
。
问题是,即使RStudio中的智能感知似乎也不知道任何功能 annotations
。它显示annotation
,annotate
和annotations_in_spans
,但不显示但没有annotations
。
甚至还有一个YouTube video演示了相同的内容。奇怪的是,他在那里可以使用annotations
。
打包版本:
openNLP:v0.2-6
openNLPmodels.zh:v1.5-1
rJava-v0.9-9
magrittr-v1.5
NLP-v0.2-0
答案 0 :(得分:2)
在早期版本的annotations
程序包中,AnnotatedPlainTextDocument
方法与类型NLP
的对象相关联。
Here is the documentation(版本0.1-11)。
The latest NLP version是0.2-0。
The method for AnnotatedPlainTextDocument现在称为annotation
(末尾没有's')。从文档看来,主要区别在于它返回一个Annotation
对象,而不是Annotation
对象的列表。
答案 1 :(得分:1)
函数annotations
位于许多软件包中,请参见此处:
https://www.rdocumentation.org/search?q=annotations
虽然可能不是最好的方法,但是如果您在不知道该功能属于哪个程序包的情况下查找特定功能,则本站点可能会帮助您找到这样的程序包。
答案 2 :(得分:0)
尝试:
# Extract entities from an AnnotatedPlainTextDocument
entities <- function(doc, kind) {
s <- doc$content
a <- annotation(doc)
if(hasArg(kind)) {
k <- sapply(a$features, `[[`, "kind")
s[a[k == kind]]
} else {
s[a[a$type == "entity"]]
}
}