问题标签 [knowledge-graph]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
128 浏览

python - Grakn Python 客户端 API - 如何接收事物的某些属性

我目前正在研究 Python 客户端的 Grakn phone_calls 示例,并且正在玩一些。我目前尝试的是只获得 Grakn事物的某些属性。Python API 文档通知我使用并thing.attributes(attribute_types)声明 attribute_types 应该是 AttributeTypes 列表。

我尝试了以下传递 AttributeTypes 的 python 列表:

导致以下错误:

0 投票
1 回答
644 浏览

python - 多个版本的 Tensorflow 导致问题

长话短说:我使用了一个 Amazon EC2 实例,并试图使用这个名为 Ampligraph 的包,它在内部使用 TensorFlow(TF)。我使用此安装指南通过 PIP 安装了它。我运行以下脚本将模型加载到系统中。

它给了我`AttributeError:模块'tensorflow'没有属性'random'

我关注了多个这样的 StackOverFlow 帖子并了解到我拥有的 TF 版本有问题。

当我运行以下命令检查 TF 版本时

这就是我得到的:

所以,我知道TF的版本是1.0.1(最后一行)。

同样,我通过 pip 安装了 TF:

它安装成功。但是,当我运行命令检查 TF 版本时,它显示与上面相同的消息,并且版本仍然是 1.0.1

我究竟做错了什么?

对不起,很长的帖子谢谢!

0 投票
2 回答
139 浏览

performance - 在 SPARQL 屏蔽结果中排序

我在 Sparql 中有一个很长的查询,我想按数字字段“sentiment”对结果进行排序,如果我在 SELECT 和 GROUPBY 中包含该字段,一切正常,否则会崩溃。但是我想呈现查询而不像在 SQL 查询中那样显示“情绪”字段。这在 SPARQL 中可行吗?

查询是:

如何在不显示“情绪”字段本身或总体上改进查询的情况下形成查询并对结果进行排序?

谢谢。

0 投票
2 回答
204 浏览

neo4j - 如何在知识图中对条件三元组进行建模

我正在尝试基于文本文档(非结构化数据)构建知识图谱。因此,我目前的方法是从数据中提取三元组并将它们发送到图形数据库,例如 neo4j 以进行进一步分析。然而我注意到的是,在三元组的构造中有很多,让我们称它们为“条件三元组”。一个例子:

提供以下“有趣”的三元组:

We thus need three 4 nodes:
1. Donald Trump
2. president-elect
2. republican party
2. July 2016

这些是可能与图中其他实体有有趣关系的 4 个节点。然而,我的困难(或怀疑)在于关系,这些似乎非常具体和漫长。

我不确定这是否真的是一个问题,或者包含如此长的关系是否是最佳实践,例如was president-elect for republican party since.

我考虑过创建遍历,例如:

这提供了更“简单”的关系,但是这是独特的遍历,因此其他遍历president-elects与该特定节点无关,forsince关系不再可以唯一地跟踪到Donald Trump.

因此,我现在倾向于应用更长的关系。因此,我的问题是:这是一种最佳实践方法,还是我错过了替代解决方案?

0 投票
1 回答
485 浏览

python - 如何将我的知识图存储在数据库中以回答搜索查询?

我是机器学习的新手,我正在尝试实现知识图并将其用于搜索目的(就像 Google 和 Bing 一样)。这是我的方法。我有一些文本文件。我对python很熟悉。

脚步:

  1. 从文本文档中提取三元组。我正在考虑为此使用斯坦福 OpenIE。(有没有更好的可用于 python 的库?)。

提取三元组并将它们加载到 csv 中后,我的数据如下所示:

2. 将数据集导入 python 并根据TransHTransEComplEx等任何模型对其进行训练。 3.然后使用TensorflowAmpligraph库(Ampligraph 示例)对其进行训练。

现在,一旦我获得了嵌入式模型,我该如何使用它来回答搜索查询?我如何将我的模型存储在数据库中,为此我应该使用什么数据库?

谢谢你。

附言。您可以访问“Ampligraph Example”的链接,了解训练后生成什么样的模型。

0 投票
1 回答
382 浏览

python - 如何在python中构建基于知识图谱的问答程序

我有一个用例,我有几个 word 文件。目前我正在提取文本并将其存储在 Elasticsearch 中。从 Elasticsearch 中,在进行完整的短语查询时,我只得到哪个页面的得分最高及其内容。现在,我想从 Elasticsearch 返回的页面内容构建一个小型运行时知识图谱。基于该知识图,我想对特定问题给出具体答案。是否可以在 python 中构建运行时知识图并立即从该图中给出答案?请帮帮我。

0 投票
2 回答
155 浏览

postgresql - Stardog:无法加载类 [org.postgresql.Driver]

我正在尝试按照 Stardog 教程使用虚拟图

按照说明,我设置了$STARDOG_EXT环境变量。

JDBC 设置

Stardog 不附带 JDBC 驱动程序,因此您需要手动将包含 RDBMS 驱动程序的 JAR 文件复制到 Stardog 服务器的类路径中。这样做的首选方法是将STARDOG_EXT环境变量设置为指向 Stardog 安装目录之外的目录并将 jar 文件复制到那里:

我在上述位置复制了 JAR 文件,如下所示。

但是Unable to load class: org.postgresql.Driver在尝试使用 PostgreSQL 创建虚拟图时出现错误。

我的 PostgreSQL 属性文件 ( music.properties) 和映射文件 ( music_mappings.ttl) 位于 - ~/Workspace/Stardog/pgsql_demo.

0 投票
0 回答
93 浏览

deep-learning - 在 Python 中构建推理系统以获取程序建议

我想开发一个推理系统,该系统将提供步骤/程序来解决用户面临的问题。示例:如果用户键入“请重置我的密码”,推理系统应该搜索知识是否有解决相同问题的步骤,然后返回所有步骤,如“转到 url”->“单击忘记密码”- >“输入新密码”等,如果用户键入另一个查询,如“请解锁我的帐户”,推理系统应通过现有知识并使用可用步骤向用户推荐。解决步骤可以与建议的密码重置问题步骤重叠。像“转到网址”这样的查询可能是这两个查询的共同步骤。

根据我对此的研究,我相信我需要首先创建所有解决步骤的知识图。但是,如果您可以建议如何继续使用它,因为有几种方法可以表示知识,但我无法看到如何创建链接解决步骤的知识库/图表以及如何推理它。因此,我在工作中使用 python,任何指导都会很有帮助。

0 投票
0 回答
1041 浏览

out-of-memory - Pytorch RuntimeError:CUDA out of memory when training graph attention network

我正在尝试使用 pytorch 重现论文中提出的模型的结果。该模型利用atttion机制来达到在知识图谱中进行关系预测的目的。主要分为图注意力网络(GAT)和卷积网络两部分。训练GAT的代码如下:

计算 GAT 损失的代码如下:

本文用于训练模型的数据集是 FB15k-237、NELL-995 和 umls。他们的训练集中三元组的数量是:272115、149678 和 5216。我成功地在所有三个数据集上重现了结果。但是,当我尝试使用新的数据集 YAGO3-10(具有 1079040 个训练数据)来训练模型时,出现 GPU 内存溢出错误。错误信息如下:</p>

我尝试过的方法如下:

  1. 减少批量大小。减少后,它会在反向传播期间溢出。错误信息如下:

    Traceback (most recent call last): File "main.py", line 366, in <module> train_gat(args) File "main.py", line 242, in train_gat loss.backward() File "/home/user1/anaconda3/envs/stw/lib/python3.6/site-packages/torch/tensor.py", line 107, in backward torch.autograd.backward(self, gradient, retain_graph, create_graph) File "/home/user1/anaconda3/envs/stw/lib/python3.6/site-packages/torch/autograd/__init__.py", line 93, in backward allow_unreachable=True) # allow_unreachable flag RuntimeError: CUDA out of memory. Tried to allocate 2.60 GiB (GPU 0; 15.77 GiB total capacity; 11.86 GiB already allocated; 2.42 GiB free; 511.96 MiB cached)

  2. 使用 torch.cuda.empty_cache () 在反向传播之前删除无用的变量。但是,最大内存使用量似乎没有改变。

  3. 使用dataparallel在两个GPU上训练模型,但没有运行成功,似乎是因为一些模型参数在不同的GPU上。错误信息如下:

    Traceback (most recent call last): File "main.py", line 377, in <module> train_gat(args) File "main.py", line 244, in train_gat Corpus_, Corpus_.train_adj_matrix_dim1, Corpus_.train_adj_matrix_dim00, Corpus_.train_adj_matrix_dim01 ,train_indices, current_batch_2hop_indices) File "/home/user1/anaconda3/envs/stw/lib/python3.6/site-packages/torch/nn/modules/module.py", line 493, in __call__ result = self.forward(*input, **kwargs) File "/home/user1/anaconda3/envs/stw/lib/python3.6/site-packages/torch/nn/parallel/data_parallel.py", line 152, in forward outputs = self.parallel_apply(replicas, inputs, kwargs) File "/home/user1/anaconda3/envs/stw/lib/python3.6/site-packages/torch/nn/parallel/data_parallel.py", line 162, in parallel_apply return parallel_apply(replicas, inputs, kwargs, self.device_ids[:len(replicas)]) File "/home/user1/anaconda3/envs/stw/lib/python3.6/site-packages/torch/nn/parallel/parallel_apply.py", line 83, in parallel_apply raise output File "/home/user1/anaconda3/envs/stw/lib/python3.6/site-packages/torch/nn/parallel/parallel_apply.py", line 59, in _worker output = module(*input, **kwargs) File "/home/user1/anaconda3/envs/stw/lib/python3.6/site-packages/torch/nn/modules/module.py", line 493, in __call__ result = self.forward(*input, **kwargs) File "/home/user1/cxy/KBAT-2/models.py", line 148, in forward edge_list, edge_type, edge_embed, edge_list_nhop, edge_type_nhop) File "/home/user1/anaconda3/envs/stw/lib/python3.6/site-packages/torch/nn/modules/module.py", line 493, in __call__ result = self.forward(*input, **kwargs) File "/home/user1/cxy/KBAT-2/models.py", line 55, in forward for att in self.attentions], dim=1) File "/home/user1/cxy/KBAT-2/models.py", line 55, in <listcomp> for att in self.attentions], dim=1) File "/home/user1/anaconda3/envs/stw/lib/python3.6/site-packages/torch/nn/modules/module.py", line 493, in __call__ result = self.forward(*input, **kwargs) File "/home/user1/cxy/KBAT-2/layers.py", line 140, in forward edge_m = self.a.mm(edge_h) RuntimeError: arguments are located on different GPUs at /opt/conda/conda-bld/pytorch_1556653183467/work/aten/src/THC/generic/THCTensorMathBlas.cu:255

  4. 使用 apex 包进行 float16 计算。但是有些参数会报nan值,这可能是使用float16的原因。

后两种方法可能有效,但我没有成功运行代码。请问有没有人有使用上述方法的经验,或者有更好的建议。

由于篇幅限制,我无法展示所有代码。该模型的代码链接如下: https ://github.com/deepakn97/relationPrediction

0 投票
0 回答
13 浏览

relation - 什么是知识库中的“关系”?

所以,这可能是一个源于我缺乏知识的问题,但是作为知识库中的“关系”的质量是什么?

例如,如果我们有这样的句子:

我爸爸喜欢吃三明治。我爸爸还有一个弟弟。

在这个(相当随机的)例句中,我可以看出一个知识库三重示例可能是(My dad, likes, to eat sandwiches).

的例子(My dad, has, a brother)也有效吗?