当前位置: 首页 > 知识库问答 >
问题:

使用StanfordCoreNLP管道时的日期

燕砚文
2023-03-14

如果我使用TokenizerNotator、WordsToSentencesAnnotator、POSTaggerAnnotator和sutime创建一个AnnotationPipeline,我会将TimexAnnotations附加到生成的注释上。

但是,如果我创建一个StanfordCoreNLP管道,并将“annotators”属性设置为“tokenize,ssplit,pos,lemma,ner”,那么即使相关的单个标记被标记为DATE,我也不会得到TimexAnnotations。

为什么会有这种区别?

共有2个答案

壤驷睿
2023-03-14

当我们运行注释时,我们从文档中提取所有实体提及,并将日期视为实体提及。下面是一些示例代码。我添加了一些注释掉的选项,如果你只想提取时间表达式,并且想要时间注释。要填充的类字段。

package edu.stanford.nlp.examples;

import edu.stanford.nlp.ling.*;
import edu.stanford.nlp.util.*;
import edu.stanford.nlp.time.TimeAnnotations;

import edu.stanford.nlp.pipeline.*;

import java.util.*;

public class SUTimeExample {

  public static void main(String[] args) {
    Annotation document =
        new Annotation("The date is 1 April 2017");
    Properties props = new Properties();
    //props.setProperty("customAnnotatorClass.time", "edu.stanford.nlp.time.TimeAnnotator");
    //props.setProperty("annotators", "tokenize,ssplit,pos,lemma,time");
    props.setProperty("annotators", "tokenize,ssplit,pos,lemma,ner,entitymentions");
    StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
    pipeline.annotate(document);
    for (CoreMap entityMention : document.get(CoreAnnotations.MentionsAnnotation.class)) {
      if (entityMention.get(CoreAnnotations.EntityTypeAnnotation.class).equals("DATE"))
        System.out.println(entityMention);
    }
  }
}
程磊
2023-03-14

当我运行此命令时:

java -Xmx8g edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,lemma,ner -file data-example.txt -outputFormat text

我得到了日期的TIMEX注释。默认情况下,ner注释器应该应用SUTime。

 类似资料:
  • 当我使用StanfordCoreNLP的SUTime功能,使用其留档中给出的代码,其中涉及使用AnnotationPipeline创建管道对象时,我能够成功地从字符串中提取TIME。 我还尝试了@StanfordNLPHelp在这个链接中建议的解决方案:使用StanfordCoreNLP管道的日期 但错误仍然存在:

  • 传递参数 链接管道 我们可以将多个管道连接在一起,以便在一个表达式中使用多个管道。

  • 我从https://stanfordnlp.github.io/CoreNLP/然后将其解压并放入cd。现在我试着运行下面的java文件<代码>javac-cp“*”分析。java工作正常,但是java情感分析在线程“main”java中抛出异常错误。lang.NoClassDefFoundError:edu/stanford/nlp/pipeline/StanfordCoreNLP。 导入jav

  • 假设我有+10000个句子,我想像这个例子一样分析。有可能并行处理这些和多线程吗?

  • 我正在使用管道来格式化我的日期,但如果没有解决方法,我就无法获得我想要的确切格式。我是误解了管道还是根本不可能? PLNKR视图

  • 低于我的情况。 我有一个处理文本的类文本处理器。我需要在这样的文本中找到相关的引用,然后用斯坦福大学的OpenIE工具提取信息。我使用这两条管道: “标记化、ssplit、pos、引理、ner、解析、提及、coref”表示共指。 和 用于信息提取的“标记化、ssplit、pos、引理、depparse、natlog、openie”。 单独使用它们来分析单个文本需要很多时间,但目前我必须这样做,因为