【问题标题】:Efficiently extract WikiData entities from text从文本中高效提取 WikiData 实体
【发布时间】:2016-05-13 09:41:55
【问题描述】:

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

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

一个实体被定义为每个名词,无论是适当的还是常规的。即人名、组织名、地点名和诸如chairpotatoes等事物的名称。

到目前为止,我已经尝试了以下方法:

  1. OpenNLP标记文本,并使用pre-trained models提取位置组织和常规名词
  2. 在适用的情况下申请Porter Stemming
  3. 将所有提取的名词与wmflabs-API 匹配以检索潜在的WikiData ID。

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

建议?

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

【问题讨论】:

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


    【解决方案1】:

    一些建议:

    • 将斯坦福 NER 与 OpenNLP 进行比较,看看它在您的语料库上的比较效果
    • 我想知道词干对大多数实体名称的价值
    • 我怀疑您可能会因为将任务划分为离散的阶段而丢失信息
    • 虽然 Wikidata 是新的,但任务不是,因此您可以查看 Freebase|DBpedia|Wikipedia entity recognition|disambiguation 的论文

    特别是 DBpedia Spotlight 是专为这项任务而设计的系统。

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

    【讨论】:

    • 词干实际上只对识别为非专有名词和复数的名词进行,这不是多数。感谢您的论文/指出 dbpedia 聚光灯。我不知道这些。
    • DBpedia 实际上链接到 Wikidata,(由于某种原因我错过了),所以我会将您的答案标记为已接受,因为我能够使用 DBpedia Spotlight 来获取 DBpedia ID,并使用 Sparql +RDF 直接获取 Wikidata ID。
    • @habitats 您介意详细说明如何链接它们吗?我现在正在尝试这个,但通常没有从 dbpedia 条目到 wikidata 的直接链接
    猜你喜欢
    • 1970-01-01
    • 2019-09-08
    • 1970-01-01
    • 2022-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-26
    相关资源
    最近更新 更多