mysql - 哪个数据库可以用来存储NLP引擎处理过的数据

标签 mysql database nlp information-retrieval information-extraction

我正在考虑获取文件形式的非结构化数据,对其进行处理并将其存储在数据库 中以供检索。 数据将采用自然语言,获取信息的查询也将采用自然语言。 例如:数据可以是“Roses are red”,查询可以是“What is the color of a rose?”

我看过几个nlp系统,更关注开源信息抽取和关系抽取系统,以下似乎适合快速入门: https://www.npmjs.com/package/mitie

这可以以(单词,类型)对的形式给出数据。它还给出了运行处理结果的关系(查看站点示例)。

我想知道sql是不是好的数据库来保存这些信息。为了检索信息,我还需要将自然语言查询转换为某种(单词、含义)对 为了使用 sql,我将不得不编写一个将自然语言转换为 sql 查询的层。

请建议是否有在这种情况下运行良好的开源数据库。对于与其他开源信息提取和关系提取系统(如果不是 MITIE)一起工作的数据库,我愿意接受建议。

最佳答案

对于您的问题,SQL 不是合适的选择。您可以使用 NLP 或规则来提取关系,然后将该关系存储在三重存储或图形数据库中。有很多不错的开源图形数据库,例如 Neo4j 和 Apache Titan。你可以在谷歌上查询 Triple-stores,我想 Apache Jena 应该是个不错的选择。存储数据后,您可以使用任何图形查询语言(如 Gremlin 或 Cypher 等(如 SQL))查询图形。请注意,您的系统的核心是知识图谱。

您还可以在您的非结构化数据上设置一个基于 Lucene/Solr 的搜索系统,这可以帮助您结合图形数据库回答您的查询。所有这些(NLP、IR、Graph DB/Triplestores 等)将共存以解决您的问题。

这就像一个合奏。没有 Elixir :) 然而,首先要看看图形数据库或三重存储。

关于mysql - 哪个数据库可以用来存储NLP引擎处理过的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44152302/

相关文章:

MySQL:通过排序加入同一张表

mysql - Go MySql 驱动程序没有正确设置时间

php - Mysql 获取今天日期和 future 的结果

python - 反向关系搜索 Django 管理界面

MySQL获取字段x等于y的行的百分比

java - 用于自然语言处理的 Python 与 Java

linux - Stanford POS Tagger 不标记中文文本

php - 如何在php中制作一个滚动条来显示所有获取的视频

mysql - SQL/MYSQL 更新父项下的子项直到为空

java - 如何打印依赖关系图的一部分