我正在考虑获取文件形式的非结构化数据,对其进行处理并将其存储在数据库
中以供检索。
数据将采用自然语言,获取信息的查询也将采用自然语言。
例如:数据可以是“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/