如何找到文本所涉及的 wikidata(或 freebase 或 DBpedia)主题列表?

2024-04-13

我正在寻找一种解决方案来提取文本(或 html)文档所涉及的概念列表。我希望这些概念成为 wikidata 主题(或 freebase 或 DBpedia)。

例如 ”《Bad》是迈克尔·杰克逊的歌曲" 应该返回 Michael Jackson(艺术家,wikidata Q2831)和 Bad(歌曲,wikidata Q275422)。如此例所示,系统应该对拼写错误 (Mikael) 和歧义 (Bad) 具有鲁棒性。

理想情况下,系统应该跨多种语言工作,它应该同时处理短文本和长文本,并且当不确定时它应该返回多个主题(例如,糟糕的歌曲+糟糕的专辑)。此外,理想情况下它应该是开源的并具有 python API。

是的,这听起来像是圣诞老人的清单。有任何想法吗?

Edit

我检查了一些解决方案,但到目前为止还没有灵丹妙药。

  • NLTK 解析文本并提取“命名实体”(AFAIU,引用名称的句子的一部分),但它不返回维基数据主题,仅返回纯文本。这意味着它可能不明白“我向警长开枪" 是鲍勃·马利 (Bob Marley) 的一首歌曲的名称,它会将其视为一个句子。
  • OpenNLP 的作用大致相同。
  • Wikidata 有一个搜索 API,但一次只能搜索一个术语,并且不处理歧义消除。
  • 有一些商业服务(OpenCalais、AlchemyAPI、CogitoAPI...),但恕我直言,没有一个真正出色。

您可以使用 Spacy 检索命名实体,然后使用搜索 API 将它们链接到 WikiData。

对于 Spacy 与命名实体不匹配的句子的剩余部分,您可以从句子中创建一个 ngram 列表,从最大的 ngram 开始,您可以使用 WikiData 搜索 API 来查找 WikiData 主题。

词性标注可以很好地利用,也就是说语法解析信息更强大,因为你可以知道单词之间的关系。例如,给出以下输出链接语法 http://abiword.org/projects/link-grammar/:

Found 8 linkages (8 had no P.P. violations)
    Linkage 1, cost vector = (UNUSED=0 DIS= 0.15 LEN=9)

    +-------------------------Xp-------------------------+
    +----------->WV---------->+                          |
    +-------Wd------+         +---------Osn--------+     |
    |       +---G---+----Ss---+----Os----+         |     |
    |       |       |         |          |         |     |
LEFT-WALL Bob.m Marley[!] wrote.v-d Natural[!] Mystic[!] . 

您可以看出主题是“Bob Marley”,因为

  1. “wrote”与“Marley”相连S http://abiword.org/projects/link-grammar/dict/section-S.html它将主语名词与有限动词连接起来。
  2. “Marley”通过以下方式连接到“Bob”G http://abiword.org/projects/link-grammar/dict/section-G.html将专有名词连接在一起。

因此,“Bob Marley”是一个很好的实体候选者(而且它的两个单词都大写)。

鉴于上面的解析“树”,即使“自然”和“神秘”位于句子的同一侧,也很难判断它们是否相关。

链接语法提供的第二个解析具有相同的成本向量,并将“Natural Mystic”再次与 G 连接在一起。

就这个:

    Linkage 2, cost vector = (UNUSED=0 DIS= 0.15 LEN=9)

    +-------------------------Xp-------------------------+
    +----------->WV---------->+                          |
    +-------Wd------+         +---------Os---------+     |
    |       +---G---+----Ss---+          +----G----+     |
    |       |       |         |          |         |     |
LEFT-WALL Bob.m Marley[!] wrote.v-d Natural[!] Mystic[!] .

因此,在我看来,“Bob Marley”和“Natural Mystic”是维基数据搜索的良好候选者。

这是语法和拼写正确的简单问题。

以下是对同一句子 11 个小写字母的解析:

Linkage 1, cost vector = (UNUSED=1 DIS= 0.15 LEN=14)

    +------------------------Xp------------------------+
    +----------------------Wa---------------------+    |
    |       +------------------AN-----------------+    |
    |       |        +-------------AN-------------+    |
    |       |        |                  +----AN---+    |
    |       |        |                  |         |    |
LEFT-WALL Bob.m marley[?].n [wrote] natural.n mystic.n . 

LG 甚至不认识这个动词。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何找到文本所涉及的 wikidata(或 freebase 或 DBpedia)主题列表? 的相关文章

  • 本地 Blazegraph 上的 Wikidata :此处预期有 RDF 值,发现“”[第 1 行]

    我们 Thomas 和 Wolfgang 已按照此处的说明在本地安装了 wikidata 和 blazegraph https github com wikimedia wikidata query rdf blob master docs
  • 根据日期精度设置日期格式

    我正在使用维基数据查询服务来获取某些地方的人口日期 输出给出以下格式的原始结果2010 01 01T00 00 00Z 举个例子 我还检索了每个日期的日期精度 这query https query wikidata org SELECT 2
  • 如何使用 Jena RDF/Ontology API 以编程方式计算路径长度?

    我有一个 RDF 图 所有类之间只有一种关系 RDFS subClassOf 或 is a 每个类的 大小 等于其子类的总数 如果每个 RDFS subClassOf 属性从子类总数较少的类连接 则每个 RDFS subClassOf 属性
  • 如何以编程方式从维基数据实体获取所有可用信息?

    我对维基数据真的很陌生 我只是认为维基数据使用了大量的具体化 假设我们想要获取奥巴马可用的所有信息 如果我们要从 DBpedia 执行此操作 我们只需使用一个简单的查询 select where
  • 检测 R 中的文本语言

    我有一个推文列表 我想只保留英文推文 我怎样才能做到这一点 The textcat http cran r project org web packages textcat index html包就是这样做的 它可以检测 74 种 语言 更
  • 获取包含 10 种以上语言的所有维基数据项目?

    我正在尝试使用 SPARQL 从 Wikidata 获取世界上最著名的电影 我有以下查询 SELECT item WHERE item wdt P31 wd Q11424 SERVICE wikibase label bd serviceP
  • Spacy Entity Linking 模型的训练时间

    我正在尝试使用 Wikidata 和 Wikipedia 中的脚本来训练 Spacy Entity Linking 模型https github com explosion spaCy tree master bin wiki entity
  • 在 MATLAB 中对文本进行聚类

    我想在 MATLAB 中对文本进行层次凝聚聚类 说吧 我有四句话 I have a pen I have a paper I have a pencil I have a cat 我想把上面的四个句子聚类一下 看看哪个更相似 我知道统计工具
  • Skipgrams 上下文(kwic)中的关键字?

    我使用 Quanteda 对 ngram 和 token 进行上下文分析中的关键字 效果很好 我现在想对skipgrams 执行此操作 捕获 进入障碍 的上下文以及 和 进入障碍 下面的代码是一个空的 kwic 对象 但我不知道我做错了什么
  • 如何使用 SPARQL 从 Wikidata 获取属性标签

    我正在使用 SPARQLWrapper 将 SPARQL 查询发送到 Wikidata 目前我正在尝试查找实体的所有属性 例如 使用一个简单的元组 例如 wd Q11663 a b 这本身是有效的 但我试图为返回的属性和实体找到人类可读的标
  • 如何识别给定文本中的想法和概念

    我目前正在开发一个项目 如果能够检测文本正文中何时提到某个主题 想法 这将非常有用 例如 如果文本包含 如果你告诉我更多关于琼斯先生的信息 也许会有帮助 如果我能描述一下他的外貌 或者最好是一张照片 也会很有用吗 如果能够检测到此人索要琼斯
  • 如何检索维基数据中的分类详细信息

    我有一个实例列表如下 myinstances word2vec tf idf dijkstra s algorithm 对于每个myinstance在上面的列表中 我想找到 1 What are the other instances of
  • Python 的 tfidf 数据框

    我必须对一些情绪进行分类我的数据框是这样的 Phrase Sentiment is it good movie positive wooow is it very goode positive bad movie negative 我做了一
  • 从复杂(混合)句子中提取简单句子的算法?

    有没有一种算法可以用来从段落中提取简单的句子 我的最终目标是稍后对生成的简单句子运行另一个算法来确定作者的情绪 我已经从 Chae Deug Park 等来源对此进行了研究 但没有讨论准备简单的句子作为训练数据 提前致谢 看一眼Apache
  • 使用R识别PDF表格

    我正在尝试从一些 pdf 报告内的表格中提取数据 我看过一些使用 pdftools 和类似软件包的示例 我成功地获取了文本 但是 我只想提取表格 有没有办法使用 R 来识别和提取表格 很好的问题 我最近也在想同样的事情 谢谢 我做到了 与制
  • 如何推断两个人之间的财产是兄弟

    我需要推断一个人是另一个人的兄弟 如果他们有同一个父亲 所以 如果我有这个 巴特有父亲荷马 丽莎有父亲荷马 Because Bart and Lisa有同一个父亲 我想推断 丽莎有弟弟巴特 有没有什么方法可以利用任何属性特征来做到这一点 使
  • OpenNLP 训练中的“截止”和“迭代”是什么意思?

    是什么意思cut off and iteration用于 OpenNLP 培训 或者自然语言处理 我只需要对这些术语进行外行解释 据我认为 迭代是算法重复的次数 截止是一个值 如果文本的值高于某个特定类别的截止值 它将映射到该类别 我对吗
  • 如何在 R 中查找 DTM 中的术语频率?

    我一直在使用 tm 包创建 DocumentTerm 矩阵 如下所示 library tm library RWeka library SnowballC src lt DataframeSource data frame data3 Jo
  • 如何找到文本所涉及的 wikidata(或 freebase 或 DBpedia)主题列表?

    我正在寻找一种解决方案来提取文本 或 html 文档所涉及的概念列表 我希望这些概念成为 wikidata 主题 或 freebase 或 DBpedia 例如 Bad 是迈克尔 杰克逊的歌曲 应该返回 Michael Jackson 艺术
  • 显式语义分析

    我遇到了这个术语 显式语义分析 它使用维基百科作为参考 找到文档中的相似性并将它们分类 如果我错了 请纠正我 我遇到的链接是here http www cs technion ac il gabr resources code esa es

随机推荐