首页 > 其他分享 >基于金融知识图谱的问答机器人

基于金融知识图谱的问答机器人

时间:2024-05-29 23:13:25浏览次数:26  
标签:name 图谱 机器人 pos str ans print query 问答

import json

from flask import Flask, request
from py2neo import Graph
from pyhanlp import *

app = Flask(__name__)
@app.route("/qa", methods=['POST', 'GET'])
def kg_qa():
if request.method == 'GET':

ques = request.args.get('question')
cb = request.args.get('callback')
print(ques)

qa_graph = Graph("http://localhost:7474",auth=("neo4j","12345678"),name="neo4j")

keyword = []
ansList = []
# CRF 词法分析器
CRFLexicalAnalyzer = JClass("com.hankcs.hanlp.model.crf.CRFLexicalAnalyzer")
analyzer = CRFLexicalAnalyzer()
han_word_pos = analyzer.analyze(ques).toString()

print(han_word_pos)

wordlist = han_word_pos.split(" ")
for word in wordlist:
pos = word.split("/")
if "n" in pos[1]:
print(pos[0],pos[1])
if pos[0] not in keyword:
keyword.append(pos[0])
print(keyword)
query_str = ""
#枚举组成cypher查询语句
for key1 in keyword:
for key2 in keyword:
if('董事' in key2):
query_str = "match (e)-[r2:`董事会成员`]->(s) where s.name='%s' return e.name"%(key1)
if('概念' in key2):
query_str = "match (s)-[r2:`概念属于`]->(e) where s.name='%s' return e.name"%(key1)
if('行业' in key2):
query_str = "match (s)-[r2:`行业属于`]->(e) where s.name='%s' return e.name"%(key1)

print(query_str)
if(len(query_str) > 0):
answer = qa_graph.run(query_str).data()
print(answer)
if answer:
for item in answer:
print(item)
ans_str = item['e.name']
print(ans_str)
#如果结果里面没有才加入
if ans_str not in ansList:
ansList.append(ans_str)
print(ansList)

re_ans = "您想问的是不是这些问题:\n"

for i in range(len(ansList)):
re_ans += "(%s) %s \n"%(i+1,ansList[i])
print(re_ans)

result = {
"question" : ques,
"answer" : re_ans
}
res_str = json.dumps(result)
cb_str = cb + "(" + res_str + ")"
print(cb_str)

return cb_str
return 'Error Format'

if __name__ == '__main__':
from werkzeug.serving import run_simple
run_simple('127.0.0.1', 9001, app)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
<meta name="author" content="">
<meta name="description" content=""/>
<meta name="format-detection" content="telephone=no" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="white" />
<title>chatbot</title>
<style type="text/css">
body{ margin: 0; font-size: 18px; background-color: #fff;}
</style>
</head>
<body>
<h1>欢迎大家参加本期知识图谱学习</h1>
<div>
    讲师:蔡丰龙<br>
</div>
<script type="text/javascript" src="robot/robot.js?022107"></script>
</body>
</html>

  

标签:name,图谱,机器人,pos,str,ans,print,query,问答
From: https://www.cnblogs.com/mine-my/p/18221315

相关文章

  • 2024-5-29-中国人形机器人产业链全景图谱
    人形机器人作为一种“未来产业”,结合了机械设计、人工智能、传感技术和控制系统等先进技术,产业链路非常复杂。人形机器人产业链包括上中下游。上游包括核心零部件(如伺服系统、减速器、传感器、控制器等)和软件系统开发,中游为人形机器人本体制造,下游为终端应用市场,如医疗、教育、救......
  • 如何配置机器人ROS操作系统之间的有线和无线的局域网通信(基于ROS的主从通讯)
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言1.主从配置前的准备工作(1)查看主从机的hostname(2)查看各自主机和从机的IP(3)本教程的hostname和ip如下2.在主机中的修改(1)修改主机的/.bashr文件(2)修改主机的hosts文件3.在从机......
  • Pi 母公司将开发情感 AI 商业机器人;Meta 科学家:Sora 不是视频生成唯一方向丨RTE 开发
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个人观......
  • 考研复试问答-操作系统&数据结构
    操作系统中断的分类中断使CPU从用户态变为内核态,让操作系统内核强行收回CPU的控制权。中断分为内中断和外中断,内中断主要包括异常,比如自陷指令、地址越界、计算溢出;外中断主要是包括来自时钟以及I/O的中断;分时操作系统:时间片轮转,强调交互性实时操作系统:强调可靠性,分为硬实时......
  • 基于知识图谱的个性化学习资源推荐系统的设计与实现(论文+源码)_kaic
      摘  要最近几年来,伴随着教育信息化、个性化教育和K12之类的新观念提出,一如既往的教育方法向信息化智能化的转变,学生群体都对这种不受时间和地点约束的学习方式有浓厚的兴趣。而现在市面上存在的推荐系统给学生推荐资料时不符合学生个人对知识获取的需求情况,以至于推......
  • 案例一:neo4j构建简单的知识图谱python启动
    案例一里面有4个python文件: 其中test1可以正常启动test4里面没啥内容可以不用管,其他的两个文件,会出现报错: 原因是被爬取信息的网站现在不允许任意获得了,必须要密钥,所以我们要找到这个网站去注册密钥:Tushare数据  这样就可以运行成功了;......
  • 利用显著地面特征进行配送机器人定位的鲁棒方法
    论文:Salience-guidedGroundFactorforRobustLocalizationofDeliveryRobotsinComplexUrbanEnvironments作者:JooyongPark,JungwooLee,EuncheolChoi,YounggunCho收录:ICRA2024利用显著地面特征进行配送机器人定位的鲁棒方法在本文中,我们提出了一种新颖的定位系统,它......
  • 【二维路径规划】基于快速RRT-star实现二维空间移动机器人运动规划附matlab复现
     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。......
  • 案例一:neo4j构建简单的金融知识图谱
    参考上一个博文将所有数据导入neo4j里面并新建数据库robot在案例里面给了很多数据开始时候不知道导入那个,但是知道需要节点文件和关系文件,并且导入知识图谱数据库的文件必须有格式 最上面一行是必须有的,所以我把目录下的文件件全部点开发现只有这一部分是需要导入的中间的:ex......
  • 计算机毕业设计hadoop+hive知识图谱漫画推荐系统 动漫推荐系统 漫画分析可视化大屏 漫
    流程:1.DrissionPage+Selenium自动爬虫工具采集知音漫客动漫数据存入mysql数据库;2.Mapreduce对采集的动漫数据进行数据清洗、拆分数据项等,转为.csv文件上传hadoop的hdfs集群;3.hive建库建表导入.csv动漫数据;4.一半指标使用hive_sql分析得出,一半指标使用Spark之Scala完成;5.sq......