从文本中有效地提取WikiData实体

hab*_*ats 6 scala information-retrieval machine-learning wikidata wikidata-api

我有很多文本(数百万),从100到4000字不等.文本被格式化为书面作品,带有标点符号和语法.一切都用英文.

问题很简单:如何从给定文本中提取每个WikiData实体?

实体被定义为每个名词,正确或规​​则.即,人,组织,地点和椅子,土豆等的名称.

到目前为止,我已经尝试了以下内容:

  1. 使用OpenNLP对文本进行标记,并使用预先训练的模型来提取人员,位置,组织和常规名词.
  2. 在适用的情况下应用Porter Stemming.
  3. 将所有提取的名词与wmflabs-API匹配,以检索潜在的WikiData ID.

有效,但我觉得我可以做得更好.一个明显的改进是在本地缓存相关的WikiData,我打算这样做.但是,在我这样做之前,我想检查是否有其他解决方案.

建议?

我标记了Scala的问题,因为我正在使用Spark来执行任务.

Tom*_*ris 3

一些建议:

  • 考虑斯坦福 NER 与 OpenNLP 的比较,看看它在你的语料库上的比较如何
  • 我想知道大多数实体名称的词干提取的价值
  • 我怀疑您通过将任务划分为离散阶段可能会丢失信息
  • 尽管 Wikidata 是新的,但任务却不是,因此您可以查看 Freebase|DBpedia|Wikipedia 实体识别|消歧论文

特别是,DBpedia Spotlight 就是专门为此任务而设计的系统。

http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/38389.pdf http://ceur-ws.org/Vol-1057/Nebhi_LD4IE2013.pdf