领域常识图谱-中式菜谱常识图谱:完结常识图谱可视化和常识库智能问答体系(KBQA)

A knowledge graph for Chinese cookbook(中式菜谱常识图谱),能够完结常识图谱可视化和常识库智能问答体系(KBQA)

作用展现:

领域知识图谱-中式菜谱知识图谱:实现知识图谱可视化和知识库智能问答系统(KBQA)

领域知识图谱-中式菜谱知识图谱:实现知识图谱可视化和知识库智能问答系统(KBQA)

本项目开发的体系名称为AI Food Time,中文名为爱食光。如需体会可视化功用可直接访问点击可视化功用。
通过收集网上完全揭露的有关中式菜谱的数据,通过数据清洗和剖析,转换为常识图谱的存储结构,并供给可视化展现与查找智能问答等功用,为热爱美食与烹饪的人们供给方便快捷的中式菜谱服务,并以常识图谱的方式直观显现出不同菜品的联系及所用质料,在生活中具有很大的实际应用需求,包含:

  • 一类菜品的不同详细做法,例如水煮鱼包含麻辣水煮鱼、小清新版水煮鱼和家常版水煮鱼等;
  • 通过菜品与食材的相相联系,能够查询家中现有食材能够烹饪哪些菜品;
  • 能够直接显现出每种菜品所需主料,辅料,配料及其详细数量和烹饪方法,与网上的一些菜谱网页相比愈加简略直观;
  • 可视化能够对各种菜品及相相联系有一个全局的知道,并能够显现每种菜品对应的图片;
  • 智能问答体系可采用自然语言进行发问,体系反应答案结果。

项目码源链接见文末

跳转链接点击

1. 可视化展现及查找:

领域知识图谱-中式菜谱知识图谱:实现知识图谱可视化和知识库智能问答系统(KBQA)

领域知识图谱-中式菜谱知识图谱:实现知识图谱可视化和知识库智能问答系统(KBQA)

领域知识图谱-中式菜谱知识图谱:实现知识图谱可视化和知识库智能问答系统(KBQA)

同一类实体用相同色彩的节点表明,鼠标坐落某个节点上方时显现其相相关的其它实体和之间的联系名称;
具有同一类实体显现开关,节点显现形式转换,并支撑查找功用;
每种菜品的信息栏中显现菜品对应的成品图片,并运用entities_aglin.py进行了实体对齐,消除了食物质猜中的冗余信息。

  • mini版:包含10大类,50种菜品之间的相相联系,包含菜品制造的各种食材和制造进程,轻量级的mini版一起支撑电脑和手机浏览器翻开,如需体会可直接进入访问进口
  • pro版(开发中):包含362大类,八千多种菜品之间的相相联系,包含菜品制造的各种质料和制造进程。

2. 智能问答体系(KBQA):

依据构建的中式菜谱常识图谱,设计常识库问答KBQA体系,依据提出的和菜品有关的问题,体系主动给出答案,关于无法给出答复的情况体系也能进行回应。

  • 文件夹结构
    • /data:包含三元组数据aifoodtime_ntriples.nt
    • /external_dict:包含一切菜品和质料的实体列表entities_list.txt
    • query_main.py:KBQA主函数
    • jena_sparql_endpoint.py:发动jena_sparql服务
    • question2sparql.py:自然语言问题到SPARQL查询的转换
    • question_temp.py:自然语言到SPARQL的问题模板
    • vizdata2entities.py:从可视化存储数据到实体列表文件的转换
    • word_tagging.py:中文分词,运用的是jieba

领域知识图谱-中式菜谱知识图谱:实现知识图谱可视化和知识库智能问答系统(KBQA)

依据构建的中式菜谱常识图谱,针对其中和菜品有关的各类问题,智能问答体系能够给出对应问题的答案。
本项目中的智能问答机器人名为小吃
运用本体系需求预装软件:

  • Apache Jena Fuseki:Jena Fuseki是一个SPARQL服务,通过HTTP供给运用SPARQL协议的REST式SPARQLHTTP更新,SPARQL查询和SPARQL更新。
    官网下载最新版别的fuseki压缩包,并解压到目标文件夹。在apache-jena-fuseki的目标文件夹下用命令行输入命令java -jar fuseki-server.jar,发动Fuseki服务。接着,翻开浏览器,访问:http://localhost:3030,创立一个持久化数据库,并上传/data/aifoodtime_ntriples.nt三元组数据集,完结常识库的准备。
  • JAVA:运转fuseki需求java环境,假如没有安装JAVA8.0及以上版别,请前往oracle官网上下载最新版别的JDK然后安装,并配置环境路径。 体系的流程为:解析输入的自然语言问句生成 SPARQL 查询,进一步恳求后台依据 TDB 常识库的 Apache Jena Fuseki 服务, 得到答案。假如常识库中不存在问题的答案或者关于提出的自然语言问题无法理解,体系也会给出相应回复。

2.1能够发问的问题类型:

1.某一类菜包含的详细菜品;
2.某一个特色菜品的一切质料;
3.某一个特色菜品的主料,辅料和配料;
4.某一个特色菜品的特色;
5.某一个特色菜品的制造进程。

2.2 运用方法:

在已经发动Fuseki服务的情况下,命令行输入python query_main.py,就能够发动问答体系,开端问答进程:

cd KBQA
python query_main.py

问答示例1:

请发问:
水煮鱼类包含哪些菜?
小吃:
家常水煮鱼、小清新版水煮鱼、水煮鱼、香辣水煮鱼、麻辣水煮鱼

问答示例2:

请发问:
怎么制造水煮鱼?
小吃:
1: 准备食材。2: 将鱼清洗洁净后切片,鱼骨和鱼肉分敞开。黄豆芽去掉须根、辣椒剪成段、姜切片。接下来开端腌鱼。鱼骨中放入三四片姜、一勺料酒、半勺盐腌制二十分钟。鱼片中放入半只蛋清、一勺料酒、一勺淀粉、一小勺白胡椒粉后抓匀腌制二十分钟。 3: 锅中加适量清水,水烧开后将黄豆芽放入锅中,再放少许盐。待黄豆芽煮熟捞出放入大碗内。4: 锅中倒入少许油,油热后放入一勺郫县豆瓣酱和姜片煸炒出红油(喜爱更辣一点口感的,能够往锅里再放一些干辣椒煸炒出香味)。5: 往锅里倒入适量的热水。6: 将鱼骨放入锅内,大火烧开后转小火炖10分钟。(这个时分能够尝一下鱼汤的滋味,然后依据自己的口味挑选要不要放盐)鱼骨炖好后捞到装有黄豆芽的大碗中。7: 将鱼肉一片一片的放入锅中。(千万不要搅动,如需求,只要轻轻晃动几下锅即可)8: 煮开后立行将鱼肉捞出,再盛一些汤到碗中。9: 换一只洁净的锅中,锅中倒入40毫升左右的食用油,然后将干辣椒和花椒放入锅中,小火煸炒至辣椒红亮,花椒出香味即可捞出放到鱼肉上。10: 将锅中剩下的油大火烧至稍稍冒烟,然后关火,把油淋在鱼肉上即可。

问答示例3:

请发问:
鱼香肉丝的特色是什么?
小吃:
难度: 简略、耗时: 二十分钟、口味: 鱼香、工艺: 炒

问答示例4:

请发问:
山楂红烧肉的主料详细都是哪些啊?
小吃:
香叶: 3片、五花肉: 400克、八角: 2个、冰糖: 20克、姜: 8克、山楂: 200克、桂皮: 4克、花椒: 20颗

问答示例5:

请发问:
可乐鸡翅需求哪些食材?
小吃:
料酒、姜、葱、八角、可乐、鸡翅中

问答示例6:

请发问:
水煮肉片的辅料是什么?
小吃:
油菜: 适量、绿豆芽: 适量、金针菇: 适量

问答示例7:

请发问:
今天天气怎么?
小吃:
这个问题我真是无法答复。

项目码源链接见文末

跳转链接点击

更多优质内容请关注公号&知乎:汀丶人工智能;会供给一些相关的资源和优质文章,免费获取阅览。