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

时间:2016-02-03 23:33:00

标签: scala machine-learning information-retrieval wikidata wikidata-api

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

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

实体被定义为每个名词,正确或规​​则。即,人员,组织,地点和诸如主席土豆等的名称。

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

  1. 使用OpenNLP对文字进行标记,并使用pre-trained models提取位置组织和常规名词
  2. 在适用的地方申请Porter Stemming
  3. 将所有提取的名词与wmflabs-API匹配,以检索潜在的WikiData ID。
  4. 有效,但我觉得我可以做得更好。一个明显的改进是在本地缓存WikiData的相关部分,我计划这样做。但是,在我这样做之前,我想检查是否有其他解决方案。

    建议?

    我标记了Scala这个问题,因为我正在使用Spark来完成任务。

1 个答案:

答案 0 :(得分:3)

一些建议:

  • 考虑将Stanford NER与OpenNLP进行比较,以了解它如何在您的语料库中进行比较
  • 我想知道大多数实体名称的阻止价值
  • 我怀疑你可能会因为将任务分成不连续的阶段而丢失信息
  • 虽然维基数据是新的,但任务不是,所以你可能会看一下Freebase | DBpedia |维基百科实体识别|消歧的论文

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

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