赵同明 钱佳琛 王翔 蒋效伟 杨玉
收稿日期:2023-08-20
基金项目:全国高等院校计算机基础教育研究会教学研究项目(2023-AFCEC-307);江苏省计算机学会教学类项目(JSCS2022028);江苏省大学生创新创业项目(202211641027Z);江苏海洋大学教学改革项目(JGX2022033)
DOI:10.19850/j.cnki.2096-4706.2024.06.002
摘 要:為满足人们对健康饮食知识的了解,文章采用网络爬虫工具在权威饮食网站上获取数据,对数据进行预处理后批量导入Neo4j数据库中,构建饮食知识图谱,在此基础上设计并实现问答系统。首先针对用户提出的问题进行问题理解,再基于Spark环境的朴素贝叶斯分类器训练出的问题模板,通过匹配的结果从Neo4j数据库中获取问题的答案。知识图谱与健康饮食的结合既满足了人们对健康饮食的不断追求,也增进了人们对传统医学中“药食同源”理论的理解。
关键词:知识图谱;健康饮食;网络爬虫;朴素贝叶斯;问答系统
中图分类号:TP311 文献标识码:A 文章编号:2096-4706(2024)06-0007-04
Research on the Construction of Healthy Diet Knowledge Graph and Q&A System
ZHAO Tongming, QIAN Jiachen, WANG Xiang, JIANG Xiaowei, YANG Yu
(School of Computer Engineering, Jiangsu Ocean University, Lianyungang 222005, China)
Abstract: In order to meet people's understanding of healthy diet knowledge, this paper uses web crawler tools to obtain data on authoritative diet websites, preprocesses the data, and then imports it in batches into the Neo4j database to construct a diet Knowledge Graph. Based on this, a Q&A system is designed and implemented. Firstly, understand the questions raised by users, and then use the problem template trained by the Naive Bayes classifier in the Spark environment to obtain the answers to the questions from the Neo4j database through the matched results. The combination of Knowledge Graph and healthy diet not only satisfies people's continuous pursuit for healthy diet, but also enhances their understanding of the theory of“medicine and food are the same source”in traditional medicine.
Keywords: Knowledge Graph; healthy diet; web crawler; Naive Bayes; Q&A system
0 引 言
民以食为天,健康尤为先。食物是人类赖以生存的物质基础,科学合理的饮食有助于人体的健康成长。智慧的中华民族很早就意识到这一点,利用食物中的营养物质强身健体甚至还能辅助治疗一些病症[1]。随着现代社会的快速发展和人们对健康的重视,如何进行健康饮食成为人们关注的内容。因此,设计一款面向大众的智能健康饮食问答系统就显得很有必要。通过该系统用户可以更加全面地了解饮食信息,为用户提出的饮食问题给予快速而准确的反馈,让用户吃的明白放心、科学合理。从学科专业的角度讲,健康饮食知识图谱的构建,可以完善饮食领域的行业知识图谱,为饮食领域的深入研究打好坚实的数据基础。
知识图谱概念由Google公司在2012年正式提出,但是其发展的历程却远远超过10年,甚至可以追溯到20世纪60年代的语义网络。语义网络是由著名心理学家Quillian提出的知识有向图,利用节点来表示实体,利用弧来表示所连接实体之间的关系[2]。通过语义网络的使用,简化了复杂的知识结构,但同时也存在缺乏统一行业标准等缺点[3,4]。2012年,谷歌公司根据先前收购的Freebase的技术基础上,重新设计了模式层,最终提出了知识图谱的概念,目的是提高搜索引擎工作的效率。自知识图谱的概念提出以来,已经在搜索引擎、聊天机器人、问答系统等方面得到了广泛的应用[5-8]。以“知识图谱”和“饮食”为关键字,在万方数据搜索期刊论文共有30余篇,但仅有数篇符合真正的搜索意图。耿化聪等通过构建知识图谱引入菜品间的语义信息作为重要推荐依据,提出一种基于知识图谱嵌入和协同过滤的个性化饮食推荐算法[9]。陈莹莹等通过对文献进行统计分析,得出了营养素养教育干预的理论和实践体系还有待深入开展等相关结论[10]。上述相关文献虽然将知识图谱应用于饮食的相关研究,但关注点多集中在个性化饮食推荐或美食研究,缺乏在健康饮食问答方面的应用。
“知识图谱”是“人工智能”相关课程的重要内容,将饮食健康与知识图谱结合起来,既能让学生认识到人工智能对人类生活的深刻影响,也能让学生充分了解传统医学中“药食同源”的重要理论。这种结合,既能激发学生的学习兴趣与热情,使他们更好地理解与掌握知识图谱在相关领域的重要作用,又能潜移默化的领悟中华文明的悠久历史与博大精深。
1 健康饮食知识图谱的构建
1.1 饮食知识数据采集
为了获取构建知识图谱必备且可靠的数据,本文利用网络爬虫八爪鱼采集器作为数据采集工具,以《中医饮食营养学》作为饮食问答系统的数据支撑[11]。该书上篇介绍了中医饮食领域内的一些基本理论,包括发展历史、食物间的搭配宜忌、中医饮食的内容特点等。中篇介绍了一些常用食物,从该食物的性、味、归经、简介、功效和现代研究等,并对食物做出类别的划分。下篇介绍了常用保健食品,分别阐述了食品的做法、功效和按语等。该书对于知识图谱中实体属性的划分有着很大的参考和指导意义。
利用八爪鱼采集器对《中医饮食营养学》网络站点实行数据采集,并且将获取的数据存入txt文件中。最终得到了近4 500行原始数据,经人工梳理,得到了包含辛温解表类、消导类、辛凉解表类、健脾和胃类、清热泻火类、清热生津类、清热解毒类、化痰止咳平喘饮食、健脾化湿类、清热凉血类、利尿类、通便类、活血类、止血类、补气类、补血类、助阳类、滋阴类和其他类总共100多项食物词条及142项症状词条。
1.2 知识图谱的构建
1.2.1 知识图谱设计
在进行知识图谱结构设计时,在表示形式方面,三元组是知识图谱的一种通用表示形式,由2个具有语义连接关系的实体和实体间的关系组成。本文依据食物及其熟悉的特点,以实体—属性名—属性值的形式或者实体—对应关系—实体的形式存储在Neo4j图数据库中。
根据食物实体之间属性和关系,本文在Neo4j数据库中创建了food(食物)、genre(类别)、symptom(症状)三种节点标签,xing(食物性)、wei(食物味)、name(食物名字)、attention(食用注意)、effect(食物功效)、introduction(食物简介)、meridian tropism(食物归经)的实体属性以及食物实体所属类别、食物对应症状两个实体间的关系。
1.2.2 原始数据处理
为了适应Neo4j图数据库csv的导入格式,本文从原始数据集data.txt抽取了多种实体,包含食物、类别和症状等实体,分别生成不同的实体集合。食物对应症状实体集中包含sid和sname两个实体属性,食物类别实体集中包含gid和gname两个实体属性。不仅是实体,还要创建实体与实体间关系。包含食物实体与类别实体间的“属于”关系和食物实体与症状实体间的“应用”关系。总共创建了5个csv文件:food.csv(食物实体集)、genre.csv(类别实体集)、symptom.csv(症状实体集)、food_genre.csv(食物-类别)、food_symptom.csv(食物-症状)。
1.2.3 数据导入
Neo4j图数据库支持将数据格式转变成csv文件并利用load csv直接导入的方式,本系统采用load csv批量导入的方式。在数据库的本地浏览器窗口将所有的csv文件批量导入。在Neo4j中可以构建如图1所示的健康饮食知识图谱,该图谱共有3种节点标签、269个节点、两种关系类型和12个属于节点的属性。
2 健康饮食问答系统设计
本问答系统主要由健康饮食知识图谱构建和问答系统实现两个部分组成。健康饮食知识图谱的构建主要是知识图谱构建模块,问答系统则包含三个模块:人机交互模块、问题理解模块和问题解答模块,如图2所示。
图2 健康饮食问答系统功能模块图
在知识图谱构建模块,首先要进行数据收集,选定好饮食相关的资料作为整个系统的数据来源;然后对收集来的数据进行预处理,包括实体、实体属性和实体间关系的处理;最后生成csv文件批量导入Neo4j数据库,完成对饮食知识图谱的构建。
在人机交互模块,主要目的是要达到人机交互式问答的效果,包括前端的设计、前后端的数据管理和系统框架的搭建。
在问题理解模块,将用户提出的原始问题转化成分类模型可识别的问题,包括对原始问题中的实体划分、提取和替换,完成用户意图识别。
在问题解答模块,将问题理解模块中的输出结果,进行朴素贝叶斯分类模型的分类,转化成最终系统可识别问题,利用Cypher语句,经过数据库查询,最终输出用户问题答案。
3 健康饮食问答系统实现
3.1 人机交互模块实现
在人机交互模块,主要是完成前端的设计和SpringBoot框架的搭建。前端主要使用HTML、CSS框架和jQuery技术,并使用Ajax来管理前后端数据的相互传输,此外还使用到Thymeleaf技术渲染项目。
为了让问答系统的答案展现更为清晰直观,使用D3可视化工具结合Neo4j数据库,对所有的食物实体、食物属性和实体间的关系进行前端可视化,用户可选择节点或文字两种方式進行查看。
3.2 问题理解模块实现
在问题理解任务实现中,主要实现的是对原始问题进行意图识别和实体提取。本文采用SpringBoot框架集成HanLp分词器,利用HanLp分词器完成关键字提取和词法标注,通过自定义词性标注,便于关键字的提取。提取后,通过自定义的食物、食物类别和症状表,实现抽象替换,最终转变成朴素贝叶斯模型可识别的问题类型。
3.3 问题解答模块实现
在问题解答任务实现中,运用到基于模板匹配的方法,根据之前的调查得到的问题模板的参考数据,将问题模板总结到一个文件中,并且准备每一类问题的不同问法,利用朴素贝叶斯模型不断地训练。将识别的问题与模板进行一一匹配,得到最适应的问题模板。再通过连接数据库后获取最终用户所需要的答案。
3.4 问答系统展示
3.4.1 问答机器人
启动SpringBoot框架进入程序主界面。系统会设置一个对话小机器人——小five,通过与小five聊天的方式,用户可以获取自己所提问题的结果。用户将问题输入问题框并点击提交,系统会针对该问题进行分析,并给出合适的答案。以提问食物的功效为例,输入“香蕉有什么功效”,系统会给出“清热,润肠,解毒,止痛”的答案。以提问症状有哪些食物可以缓解为例,如输入“高血压病患饮食推荐”,系统首先对用户提出的问题进行分词和关键字提取,匹配问题模板,然后连接数据库反馈相应答案。问答机器人界面如图3所示。
图3 健康食物问答界面
3.4.2 可视化图谱
健康饮食可视化界面分为两种:节点可视化和文字可视化。在输入框中输入食物名称,系统会自动高亮显现出有关食物的所有节点,并让其他节点灰暗,在界面的右下角显示该食物的介绍信息。以查询蜂蜜为例,输入“蜂蜜”,系统会自动显现出蜂蜜相关的节点,并在界面的右下角显示蜂蜜的介绍内容,“蜂蜜”的文字可视化效果如图4所示。
4 结 论
本文以健康饮食问答为研究对象,在构建饮食知识图谱的基础上,设计并实现了健康饮食知识问答系统。实验采用网络爬虫工具在官方网站上获取数据,对原始数据进行预处理后,根据食物中的数据映射关系,抽取实体、实体属性和实体间的关系,利用Neo4j中的导入语句批量导入Neo4j图数据库,构建饮食知识图谱。问答系统采用SpringBoot框架搭建并集成Neo4j图数据库和HanLp分词器。HanLp分词器完成用户问题关键字提取和词法标注,通过自定义的食物、食物类别和症状表,实现抽象替换,最终转变成贝叶斯模型可识别的问题类型,然后基于模板匹配的方法输出问题答案。将人们普遍关注的饮食健康与“知识图谱”结合起来,既增加了人们对人工智能的直观理解,也强化了人们对“药食同源”理论的认识。
参考文献:
[1] 王新功,刘波.中医养生中的饮食疗法 [J].食品工业,2021,42(4):521.
[2] 王俊,高炜.基于多元语义网络的民族信息资源库构建研究 [J].苏州科技大学学报:自然科学版,2018,35(3):74-78.
[3] 黄合水,方菲.广告的演变及其本质——基于1622条教科书广告定义的语义网络分析 [J].新闻与传播研究,2019,26(12):84-96+128.
[4] 张栋豪,刘振宇,郏维强,等.知识图谱在智能制造领域的研究现状及其应用前景综述 [J].机械工程学报,2021,57(5):90-113.
[5] JI S X,PAN S R,CAMBRIA E,et al. A Survey on Knowledge Graphs:Representation,Acquisition,and Applications [J].IEEE Transactions on Neural Networks and Learning Systems,2022,33(2):494-514.
[6] MIN W Q,LIU C L,Xu L Y,et al. The Development and Applications of Food Knowledge Graphs in the Food Science and Industry [J/OL].arXiv:2107.05869 [cs.CV].[2023-07-28].https://arxiv.org/abs/2107.05869v2.
[7] 黄微,卢国强,赵旭.基于知识图谱的微博主题演变路径研究 [J].情报理论与实践,2022,45(3):173-181.
[8] 叶俊民,宋家琦,张珂,等.一种知识图谱增强的在线评测系统习题推荐算法研究[J].小型微型计算机系统,2023,44(11)2558-2565.
[9] 耿化聪,梁宏涛,刘国柱.基于知识图谱与协同过滤的饮食推荐算法 [J].计算机与现代化,2021(8):24-29.
[10] 陈莹莹,仝贝贝,康晓凤,等.国际营养素养研究热点的可视化知识图谱分析 [J].職业与健康,2021,37(13):1826-1830.
[11] 翁维健.中医饮食营养学 [M].上海:上海人民出版社,2008.
作者简介:赵同明(1999—),男,汉族,江苏扬州人,本科,主要研究方向:软件工程;通讯作者:杨玉(1979—),女,汉族,江苏扬州人,副教授,博士,主要研究方向:智能信息处理。