R(NLP 包)中的方法注释是否已弃用或替换?

Has the method annotations in R(NLP package) been deprecated or replaced?

我正在关注这篇文章 https://mylearnmachinelearning.com/category/linear-regression/ 来创建一个命名实体提取器。根据需要,我已经安装了所有 openNLPNLPrJavamagrittropenNLPmodels.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。它显示 annotationannotateannotations_in_spans,但没有 annotations

甚至还有一个 YouTube video 演示了相同的内容。奇怪的是他可以在那里使用 annotations

包版本:

  1. openNLP: v0.2-6

  2. openNLPmodels.en:v1.5-1

  3. rJava - v0.9-9

  4. magrittr - v1.5

  5. NLP-v0.2-0

函数annotations在很多包中,请看这里: https://www.rdocumentation.org/search?q=annotations

虽然这可能不是最好的方法,但如果您要查找特定功能而不知道该功能属于哪个包,此站点可能会帮助您找到这样的包。

annotations 方法与早期版本的 NLP 包中 AnnotatedPlainTextDocument 类型的对象相关联。

Here is the documentation 版本 0.1-11。

The latest NLP version 是 0.2-0.

The method for AnnotatedPlainTextDocument 现在称为 annotation(末尾没有 's')。从文档看来,主要区别在于它 returns 是一个 Annotation 对象,而不是 Annotation 对象的列表。

试试这个:

# 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"]]
         }
     }