python中文问答系统_基于语料库的问答系统

将一个问题及其答案(假设只有一个)作为Lucene中的一个文档来考虑。Lucene支持文档的字段视图;因此在构建文档时,请将问题设为可搜索字段。一旦检索到给定查询问题的排名靠前的问题,请使用Document类的get方法返回答案。

代码框架(自己填写)://Index

IndexWriterConfig iwcfg = new IndexWriterConfig(new StandardAnalyzer());

IndexWriter writer = new IndexWriter(...);

....

Document doc = new Document();

doc.add(new Field("FIELD_QUESTION", questionBody, Field.Store.YES, Field.Index.ANALYZED));

doc.add(new Field("FIELD_ANSWER", answerBody, Field.Store.YES, Field.Index.ANALYZED));

...

...

// Search

IndexReader reader = new IndexReader(..);

IndexSearcher searcher = new IndexSearcher(reader);

...

...

QueryParser parser = new QueryParser("FIELD_QUESTION", new StandardAnalyzer());

Query q = parser.parse(queryQuestion);

...

...

TopDocs topDocs = searcher.search(q, 10); // top-10 retrieved

// Accumulate the answers from the retrieved questions which

// are similar to the query (new) question.

StringBuffer buff = new StringBuffer();

for (ScoreDoc sd : topDocs.scoreDocs) {

Document retrievedDoc = reader.document(sd.doc);

buff.append(retrievedDoc.get("FIELD_ANSWER")).append("\n");

}

System.out.println("Generated answer: " + buff.toString());

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【资源介绍】 毕业设计基于Fasttext的中文医疗问答系统python源码+运行说明+中文医疗对话数据集.zip 本项目为本人的本科毕业设计,基于知识图谱的中文医疗问答系统,通过爬虫工具从公开的医疗网站获取医疗知识并利用Neo4j图数据库构建知识图谱。问句意图利用Fasttext文本分类算法识别,并简单编写了一个槽位记忆功能辅助记住上下文信息,最后利用Django框架搭建了一个简单的前端对话界面。 ## 使用步骤 ### 1. csdn下载本项目并安装必备环境依赖 ### 必备 - JDK 15以上 - Neo4j 4.2.1 - Python3.6以上 - Django 2.1.7 - jieba 0.42.1 - fasttext 0.9.2 - py2neo 2020.1.1 ### 爬虫相关 - requests 2.25.1 - lxml 4.3.0 - retrying 1.3.3 - vthread 0.1.1 - cchardet 2.1.7 ### 其他 - pyTelegramBotAPI 3.7.4 (用于连接TelegramBot) ### 2. 安装Neo4j数据库 主要代码存放在MASystem文件夹中 - Crawler 爬虫代码以及爬取到的医疗信息 - dict 实体字典列表 - entities 爬取的所有数据,整理成json格式 - build_dict.py 从爬取后的数据中提取实体字典 - buIld_graph.py 依靠爬取的数据连接neo4j构建知识图谱 - request_disease.py 爬取疾病分类数据 - request_others.py 爬取其他分类数据 - classifier 意图分类器相关代码 - dict 部分意图语料和实体字典 - intent 意图语料 - models 存储训练好的模型 - fasttext_data.txt Fasttext库能够识别的语料 - intent.txt 所有意图的举例解释文件 - stopwords.txt 停用词语料 - train_intents_fasttext.py 训练Fasttext分类器的代码 - vocabs.txt 训练Fasttext过程中留下的字典,不重要 - word2vec-test.py 采用word2vec的尝试,不重要 - contextual 处理上下文信息的代码 - IntentDetector.py 调用模型识别意图代码 - IntentProcessor.py 记忆上下文实体,处理对应意图的回复 - KGQuery.py 提供从图数据库查询的各类方法 - telegramBot.py 支持机器人在telegram上运行的相关代码 - static中存放网页相关的静态文件 - 其他文件均为 Django框架生成或依赖的文件 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,也适用于小白学习入门进阶。当然也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或者热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载,沟通交流,互相学习,共同进步!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值