Tim*_*ütz 5 database graph-databases data-structures event-sourcing
我目前正在开展一个项目,我使用自然语言处理从文本中提取情感,将它们与上下文信息联系起来.
上下文信息的定义:与描述实体在时间和空间中的情况相关的每个信息.
我正在寻找的数据结构的描述:
存在任意数量的实体(例如,实体可以是人或组(推特哈希标签)),我想跟踪其中的上下文信息及其与其他实体的对话.处理实体之间的对话以便对其情感特征进行分类.基本的情感特征包括一个向量,它指定它们出现的百分比:{fear: 0.1, happiness: 0.4, joy: 0.1, surprise: 0.9, anger: 0}
实体也可以提交他们想要分享的任何上下文信息,例如:位置,室温,血压......等等(将参考此作为上下文变量).因为实体的对话数量和他们想要共享的上下文变量的数量在任何时间点都不清楚,所以数据结构需要能够相应地进行调整.
重要提示:数据的每次更改也必须代表一个自己的状态,因为我期待将状态的某些变化相互关联.
示例:Bob和Alice的对话显示出极大的恐惧感.几个小时之后,他们又进行了另一次谈话,不再表现出恐惧,而是幸福.现在,人们可以争辩说,高度恐惧,其次是幸福实际上可以被解释为情绪缓解.
但是,为了能够提取这些信息,我需要能够将不同的状态相互关联起来.使用上下文信息将它们与对话中跟踪的情绪相关联也是如此.这就是为什么必须记录和提供每个州的变化.
为了让你更清楚,我已经创建了一个图形并将其附加到问题上.
现在,我的实际问题是:我可以使用哪种数据库/数据结构来解决这个问题?我查看了事件采购数据库,但我不太相信我是否可以轻松地使用它们重新创建图形结构.我也查看了图形数据库,但没有找到我要找的东西.
因此,如果有人能够至少指出我正确的方向或帮助我相应地调整我的结构以解决问题,那将是很好的.但是,如果有数据结构支持,我称之为带有快照的图形数据库,那么易用性可能是最重要的过滤功能.
小智 5
Rich Hickey(Clojure成名)有一个名为Datomic的数据库,可以随时间存储事实.数据库中的每个条目都是一个带有时间戳的事实,仅在事件源中附加.
这些事实可以用关系/逻辑语言ala Datalog(让人联想到Prolog)来查询.请参阅kisai的这篇文章,以获得快速概述.它过去曾用于查询图形并取得了一些成功:使用Datomic作为图形数据库.
虽然我没有使用Datomic的经验,但它似乎非常适合您的特定问题.