如何在Freebase和Wikipedia之间进行映射?

时间:2015-06-24 09:24:17

标签: wikipedia freebase wikipedia-api

我使用工具AIDA(一种命名实体工具)来注释语料库并获得如下格式:

2   Germany http://en.wikipedia.org/wiki/Germany    11867   /m/0345h
6   United_Kingdom  http://en.wikipedia.org/wiki/United_Kingdom 31717   /m/07ssc

列3是实体的对应维基百科URL,列4是实体的对应维基百科ID。有没有办法将url或id映射到Freebase MID,就像最后一列一样?最后一栏是另一个人的工作。我不知道他是怎么做到的,也无法在其他地方找到方法。

以下是AIDA链接: https://www.mpi-inf.mpg.de/departments/databases-and-information-systems/research/yago-naga/aida/downloads/

2 个答案:

答案 0 :(得分:1)

使用Freebase API或Freebase数据转储,可以轻松地将这两个EN维基百科ID映射到Freebase主题,并使用各种标识符(包括MID)。哪一个最好使用取决于您需要映射的数据量。

所有Wikipedia ID都存储在Freebase中以/authority/wikipedia为根的名称空间中。数字ID(即文章编号)存储在英语维基百科的/authority/wikipedia/en_id中,因此您可以使用http://freebase.com/authority/wikipedia/en_id/11867作为德语主题的别名之一。

此处列出了所有其他子命名空间:https://www.freebase.com/authority/wikipedia?ns=但与英语维基百科相关的其他两个命名空间是enen_title,两者都包含使用alpha维基百科的密钥文章名称。后者是规范ID并且是唯一的,而前者包含该ID,以及指向它的所有重定向页面的ID。

这两个网址也是德国的别名:

https://www.freebase.com/authority/wikipedia/en/Germany https://www.freebase.com/authority/wikipedia/en_title/Germany

要使用MQLRead查询API,请构建如下查询:

[{
  "id": "/authority/wikipedia/en_id/11867",
  "mid": null,
  "name": null
}]

并解析生成的JSON

{
  "result": [{
    "id": "/authority/wikipedia/en_id/11867",
    "mid": "/m/0345h",
    "name": "Germany"
  }]
}

获得MID。完整的查询URL如下所示:

https://www.googleapis.com/freebase/v1/mqlread/?lang=%2Flang%2Fen&query=%5B%7B+%22id%22%3A+%22%2Fauthority%2Fwikipedia%2Fen_id%2F11867%22%2C+%22mid%22%3A+null%2C+%22name%22%3A+null+%7D%5D

你可以用其他命名空间中的alpha键做同样的事情,但是需要为特殊字符转义密钥,因为你有数字标识符所以不值得描述它。如果其他人需要,则在此处描述MQL密钥转义:http://wiki.freebase.com/wiki/MQL_key_escaping

答案 1 :(得分:0)

您可以使用维基百科信息查询Freebase,请参阅Freebase API docs。查询/ common / topic / topic_equivalent_webpage属性。但是,Freebase现在将在不久的将来关闭,因此我不建议您付出太多努力。