我已经在我的电脑上制作了一个带有PageRank功能的小型搜索引擎原型。我对在其基础上构建一个知识图谱很感兴趣,并且希望它能返回与查询上下文相关的网页,类似于谷歌如何找到与搜索问题相关的答案。我看到关于知识图谱有很多宣传,但几乎没有关于如何构建知识图谱的文献和伪代码指南。是否有人知道关于知识图谱内部工作原理的好参考资料,这样就不需要自己创建关于知识图谱的模型了?
回答:
知识图谱是一个热门词汇。它是多种模型和技术的集合,旨在实现一个结果。你的旅程的第一站始于自然语言处理、本体学习和文本挖掘。这是一个广泛的人工智能领域,可以在这里找到该领域的研究概览。
在构建自己的模型之前,我建议你尝试使用专门的工具箱,如gensim,来尝试不同的标准算法。你将了解到tf-idf、LDA、文档特征向量等知识。
我假设你想处理文本数据,如果你想使用其他图像进行图像搜索,情况会有所不同。音频部分也是如此。
构建模型只是第一步,谷歌知识图谱最困难的部分是每天要处理数十亿的请求…
一个好的处理流程可以“轻松”地在Apache Spark之上构建,它是“当前一代的Hadoop”。它提供了一个弹性的分布式数据存储,这对于想要扩展规模是必不可少的。
如果你想将数据保持为图形形式,如图论中的图形(如PageRank),用于实时查询,我建议你使用Bulbs,这是一个框架,类似于图形的ORM,但你不是使用SQL,而是使用图形遍历语言Gremlin来查询数据库。例如,你可以将后端从Neo4j切换到OpenRDF(如果你做本体学习,这很有用)。