【问题标题】:JAVA: How use Gazettes with Stanford NLP?JAVA:如何在斯坦福 NLP 中使用 Gazettes?
【发布时间】:2014-06-11 13:28:08
【问题描述】:

我读过这个faq 但我不明白。我尝试使用此代码:

   Properties pp=new Properties();  
   pp.put("annotators", "tokenize, ssplit, pos, lemma, ner, parse");
   pp.put("ner.useSUTime","false");

   pp.put("useGazettes","true");
   pp.put("gazette","C:\\gaz.txt");

   StanfordCoreNLP s=new StanfordCoreNLP(pp);

这是字符串:“Dan 于 2008 年成为音乐朋友协会的成员”

公报文件是:

  CLASS Music friends association 

但是NER不承认“音乐朋友协会”。

我哪里错了?

【问题讨论】:

  • 您为什么希望您的系统能够识别它?你在 gaz.txt 里面有吗?
  • 应该识别文件 gaz.txt 中的命名实体只有这一行“CLASS Music Friends Association”

标签: java nlp stanford-nlp named-entity-recognition


【解决方案1】:

那里给出了答案:

如果使用公报,这并不能保证公报中的单词总是被用作预期类的成员,也不能保证不会选择公报之外的单词。它只是为 CRF 训练提供了另一个功能。如果 CRF 对其他特征有更高的权重,则公报特征可能会不堪重负。

因此,不能保证您的词组会以任何方式被标记。另一种选择是

Stanford CoreNLP 中包含的 regexner 或 tokensregex 工具

【讨论】:

  • 如何使用带有 tokensregex 的公报?此外,如果我的实体跨越多个标记,如“纽约”,我如何使用 tokensregex 在位置公报中进行查找,因为它一次只查看一个标记?
  • 好吧,tokensregex 是一个当且仅当匹配,而 gagatte 是一个建议。您要做什么:严格匹配,但针对特定的单词子集?就像纽约应该被接受,但在某些情况下洛杉矶不应该被接受?也许斯坦福团队会看到这一点并加入进来,但我认为您可能更喜欢 tokenregex。
猜你喜欢
  • 2014-04-26
  • 1970-01-01
  • 1970-01-01
  • 2012-08-03
  • 2010-12-23
  • 1970-01-01
  • 2013-04-22
  • 2016-04-13
  • 1970-01-01
相关资源
最近更新 更多