手把手教你用Python搭建一个AI智能问答系统!

构建民航业知识图谱并实现语义查询 CivilAviation Q&A 根据民航业年度公报(年报)构建民航业知识图谱并实现语义查询。 项目地址:https://github.com/ShawnHXH/QA-CivilAviationKG 平台 Windows 10 x64 Python 3.7 Neo4j community 3.5.20 运行 确保安装所需依赖 pip install -r requirements.txt 注:python-Levenshtein 如果安装不成功,则可以下载对其进行离线安装。 构建 阅读详情

导读:智能问答系统是自然语言处理的一个重要分支。今天我们将利用分词处理以及搜索引擎搭建一个智能问答系统。

具体的效果如下所示:

 

 

私信小编01  领取完整代码!

 

下面简单了解下智能问答系统和自然语言处理的概念,智能问答系统是自然语言处理的一个重要分支。现在普遍认为智能问答能够独立解决很多问题,但是必须要承认现在技术所处的初级阶段的性质。也就是说,智能问答系统在现阶段最大的价值在于为客服人员赋能,而并非独立于人自行解决众多目前还有巨大错误率和不确定性的问题。

 

一旦具有这样的思想基础——通过智能问答系统为客服人员附能,那么将智能问答系统做成一个工具和产品的基础就有了,只有通过产品化、工具化的方式,才能够实现这个预期。

 

自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。

 

因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系,但又有重要的区别。自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。因而它是计算机科学的一部分。

 

 

下面开始搭建我们的智能问答系统,首先我们需要导入的库:

 

import requests
from lxml import etree
import jieba
import re
import sys,time
import os

 

其中requests库用来向搜索引擎搜索答案,lxml用来获取答案,jieba库用来提取问题以及做出问题分析,re是处理语言的正则匹配库,sys以及time库用来调试输出效果,os模块用来写入文件以搭建模式选择。

 

我们知道一个真正的语言回答应该是逐字回答的才符合人的回答习惯,下面为了达到语言对话的效果,我们定义一个函数:

 

def print_one_by_one(text):
    sys.stdout.write("\r " + " " * 60 + "\r") # /r 光标回到行首
    sys.stdout.flush() #把缓冲区全部输出
    for c in text:
        sys.stdout.write(c)
        sys.stdout.flush()
        time.sleep(0.1)

 

就是用来逐字输出的效果。

 

下面是真正搭建的部分,为了对语言进行处理,首先我们要加载停用词,去除掉语言中无意义的词,比如“了”,“啊”等等:

 

stop = [line.strip() for line in open('stopwords.txt',encoding='utf-8').readlines() ]

 

开始执行的判断输出一下,以及使用者的输入:

 

print("小智:您好,请问您需要问什么呢(对话(快,慢),可控制输出速度)")
input_word=input("我:")


为了控制文字输出的速度,我们借助文件读取控制模式:

 

#默认为慢速
print(input_word)
if input_word == "快":
        f = open("1.txt", "w")
        f.write("0")
        f.close()
elif input_word =='慢':
        f = open("1.txt", "w")
        f.write("1")
        f.close()

 

下面用Jieba分词,去除掉无用的停用词:

 

sd=jieba.cut(input_word,cut_all=False)
final=''
for seg in sd:
    #去停用词
        print(seg)
        if seg not in stop :
            final +=seg
 process=final

 

此时process是仅仅最简单语言的处理结果,为了适应更多语言习惯,使用正则表达式匹配另一种语言习惯,一个“问”时的处理:

 

#匹配问后面全部内容
pat=re.compile(r'(.*?)问(.*)')
#一个“问”时的处理
try:
        rel=pat.findall(final)
        process=rel[0][1]
except:
        pass

 

另外再添加语言习惯,两个“问”的处理:

 

#两个问时的处理
try:
        rel=pat.findall(final)
        rel0=rel[0][1]
        print(rel0)
        rel1=pat.findall(rel0)
        process=rel1[0][1]
except:
        pass

 

这样输出的效果就可以适应多种语言习惯,为了区分问答句和模式选择句加入判断语句:

 

print("问题:"+process)
if process=='':
        print("小智:OK")

 

在else中使用搜索引擎获取答案,首先使用请求头,百度百科网址:

 

header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
        url=requests.get("https://baike.baidu.com/search/word?word="+process,headers=header)

 

为了防止中文乱码问题,使用编码如下:

 

#为了防止中文乱码,编码使用原网页编码
        url.raise_for_status()
        url.encoding = url.apparent_encoding

 

下面使用匹配获取内容:

 

bject=etree.HTML(url.text)
        print(object)
#正则匹配搜索出来答案的所有网址
#获取词条
head =object.xpath('/html/head//meta[@name="description"]/@content')
#详细内容
        para=object.xpath('/html/body//div[@class="para"]/text()')

 

然后为了判断提问者提出的问题是否可行,以及模式匹配的选择,加入判断:

 

result='小智:'
        for i in para:
            result+=i
        if result=='小智:':
            print("小智:对不起,我不知道")
        else:
            f = open("1.txt", "r")
            s=f.read()
            if s=="1":
                print_one_by_one(result)
            else:
                print(result)

 

然后循环执行问答系统即可:

 

while(True):
    if os.path.exists('1.txt'):
        chuli()
    else:
        f = open("1.txt", "w")
        f.write("1")
        f.close()
        chuli()

 

如下图所示,提问的语句可以任意,不需要固定格式,这样才具有智能性不是吗?

 

 

 

Python实现智能客服问答系统 客服与聊天系统成为了热门话题。Python作为一种简单易学、功能强大的编程语言,在机器人客服与聊天系统的开发中具有广泛应用。Python实现的机器人客服与聊天系统在实际应用中具有广泛的应用场景,如智能问答、智能推荐、Python实现的机器人客服与聊天系统在实际应用中具有广泛的应用场景,如智能问答、智能推荐、本文将介绍如何使用Python实现机器人客服与聊天系统,包括实现方式、代码示例和实际应用。Python实现机器人客服与聊天系统的方式有很多种,其中最常见的是使用。随着人工智能技术的不断发展, 阅读详情

相关推荐

python打造个性化ai_手把手教你用Python搭建一个AI智能问答系统!

导读:智能问答系统是自然语言处理的一个重要分支。今天我们将利用分词处理以及搜索引擎搭建一个智能问答系统。具体的效果如下所示:下面简单了解下智能问答系统和自然语言处理的概念,智能问答系统是自然语言处理的一个重要分支。现在普遍认为智能问答能够独立解决很多问题,但是必须要承认现在技术所处的初级阶段的性质。也就是说,智能问答系统在现阶段最大的价值在于为客服人员赋能,而并非独立于人自行解决众多目前还有巨大错...

weixin_39524842的博客 416

【Python】基于文本匹配的微信自动问答

本文针对传统的基于规则和模板的问答系统在处理大量问题时存在的效率低下、覆盖面狭窄等问题,提出了一种基于文本匹配的问答机器人设计方案。通过对用户输入的问题进行分词和特征提取,将其转换为向量形式,并与预先准备好的问题数据集进行相似度匹配,找到最相似的问题,并将对应的答案发送给用户。实验结果表明,本文所提出的问答机器人具有较高的准确率和覆盖面,可以有效地应用于各种智能客服、智能咨询等领域。问答机器人、文本匹配、分词、特征提取、相似度匹配。

weixin_57807777的博客 2179

python做一个问答系统_手把手教你用Python搭建一个AI智能问答系统

导读:智能问答系统是自然语言处理的一个重要分支。今天我们将利用分词处理以及搜索引擎搭建一个智能问答系统。本文经授权转自公众号优快云(ID:优快云news)作者:李秋键具体的效果如下所示:下面简单了解下智能问答系统和自然语言处理的概念,智能问答系统是自然语言处理的一个重要分支。现在普遍认为智能问答能够独立解决很多问题,但是必须要承认现在技术所处的初级阶段的性质。也就是说,智能问答系统在现阶段最大...

weixin_39536010的博客 2773

手把手教你用Python搭建一个AI智能问答系统

导读:智能问答系统是自然语言处理的一个重要分支。今天我们将利用分词处理以及搜索引擎搭建一个智能问答系统。本文经授权转自公众号优快云(ID:优快云news)作者:李秋键具体的效果如下所示:下面简单了解下智能问答系统和自然语言处理的概念,智能问答系统是自然语言处理的一个重要分支。现在普遍认为智能问答能够独立解决很多问题,但是必须要承认现在技术所处的初级阶段的性质。也就是说,智能问答系统在现阶段最大...

大数据 2万+

基于【Lang Chain】构建智能问答系统的实战指南

什么是 LangChain?🤖📚LangChain是一个帮助开发者轻松构建与语言模型(如 GPT-3 或 GPT-4)互动的工具包。它为开发者提供了一整套现成的模块和功能,使得开发者能够快速创建强大的语言模型应用,无需从零开始。🌟 通俗比喻:想象你有一个超级聪明的助手(就是语言模型),它能够帮助你理解和生成各种文字内容📝。但是,如果你要让这个助手处理大量的信息,比如从多个文档中提取知识、或者在海量数据中找到特定的答案,事情就变得有点复杂了。这时,LangChain就像是一个智能助手管理系统。

博客虽小,世界尽在其中 3194

【人工智能】从零开始构建本地智能问答系统:DeepSeek 与知识库的深度融合

随着人工智能技术的快速发展,大规模语言模型(LLM)在问答系统中的应用日益广泛。本文深入探讨如何利用 DeepSeek 模型与知识库结合,构建一个高效的本地智能问答系统。系统采用检索增强生成(RAG)技术,通过本地部署实现数据隐私保护和实时响应。我们将详细介绍系统的架构设计,包括数据预处理、知识库构建、模型微调与推理优化等关键步骤。同时,提供丰富的代码示例(基于 Python),涵盖从文档加载到问答实现的完整流程,并辅以中文注释以便理解。本文还探讨了数学基础,如余弦相似度在向量检索中的应用,并以 LaTeX

一个被知识诅咒的人 1127

从零到一:手把手教你用Python打造一个智能问答系统

本文通过一个完整的案例,展示了如何从零开始构建一个智能问答系统。

2501_92904750的博客 2153

Python聊天机器人,智能问答系统.zip

Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统

AI 问答系统实战:用 Python + Flask + LLM 打造你的智能对话机器人!

本文将手把手教你如何利用 Python 和 Flask 快速搭建一个属于自己的 AI 问答系统,并集成强大的语言模型(如 OpenAI 的 GPT-3.5 或 Hugging Face 的 LLaMA)。AI 问答系统是一种基于自然语言处理(NLP)技术的智能系统,能够理解用户的自然语言问题,并通过预训练的语言模型生成高质量的回答。通过这篇文章,你已经掌握了如何利用 Python 和 Flask 快速搭建一个智能问答系统,并集成强大的语言模型。为了提高系统的响应速度,可以使用 Flask 的异步处理功能。

Leaton的博客 3086

基于Python实现的问答系统设计.zip

资源包含文件:设计报告word+任务书+源码及数据 对问答系统的设计与实现过程有一个全面的了解,实验主要内容包括: 对给定的文本集合进行处理、建立索引。 找出问题的候选答案句并排序。 答案抽取,逐步调优。 文本集合进行处理、建立索引 对所有文档分词、分句,并建立索引,作为问答系统的检索语料。 问题分类 训练一个问题分类模型,得到问题类别信息,然后将其融入到候选答案句排序和答案抽取的任务中,以取得更好的效果。 候选答案句排序 对所有候选答案句按照其包含正确的可能性进行排序,可能性越大的越靠前。 答案抽取 从候选答案句中抽取正确的答案。 详细介绍参考:https://blog.youkuaiyun.com/newlw/article/details/125275786

基于知识图谱的心理咨询智能问答系统python源码+项目说明+数据.zip

【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于知识图谱的心理咨询智能问答系统python源码+项目说明+数据.zip #### 知识图谱实体类型 | 实体类型 | 中文含义 | 举例 | | :---------------- | :------: | :------------------------------------- | | disease | 疾病名称 | 广泛性焦虑障碍 | | alternate_name | 疾病别称 | 泛化性焦虑症, 广泛焦虑障碍, 广泛焦虑症 | | pathogenic_site | 病发部位 | 全身 | | department | 科室 | 精神病科, 心理咨询科 | | symptom | 症状 | 心烦、头痛、坐立不安、惊恐伤肾阳痿... | | check | 检查项目 | 心理咨询 | | susceptible_crowd | 易感人群 | 成年人 | #### 知识图谱实体关系类型 | 实体关系类型 | 中文含义 | 举例 | | :---------------------- | :----------: | :--------------------------------- | | disease_alternate_name | 疾病别名 | <广泛性焦虑障碍,别称,泛化性焦虑症> | | disease_pathogenic_site | 疾病感染部位 | <广泛性焦虑障碍,感染部位,全身> | | disease_symptom | 疾病症状 | <广泛性焦虑障碍,症状,惊恐伤肾阳痿> | | disease_check | 疾病所需检查 | <广泛性焦虑障碍,检查,心理咨询> | | disease_department | 疾病所属科室 | <广泛性焦虑障碍,科室,心理咨询科> | | disease_complication | 并发症 | <广泛性焦虑障碍,并发症,强迫症> | | disease_confusable | 易混淆病症 | <广泛性焦虑障碍,易混淆病症,抑郁症> | | disease_crowd | 疾病易感人群 | <广泛性焦虑障碍,易感人群,成年人> | #### 知识图谱属性类型 | 属性类型 | 中文含义 | 举例 | | :------------ | :------: | :---------------------------------------------------------: | | expert_remind | 专家建议 | 患者忌吃带有刺激性的食物和烟酒,多吃些海产品、豆类、牛奶... | | infectivity | 传染性 | 该病不具有传染性 | | heredity | 遗传性 | 不遗传 | .......

基于NVIDIA NIM 平台打造智能AI知识问答系统

NVIDIA NIM平台是一个专为AI推理设计的微服务套件,具有灵活的使用方式、优化的模型性能、广泛的适配范围和简化的开发流程等优势。它正在被广泛应用于各种AI推理场景,并得到了众多技术合作伙伴的支持和认可。NVIDIA NIM平台是英伟达公司推出的一款重要的人工智能推理微服务平台。NVIDIA NIM,即NVIDIA推理微服务,是一个易于使用的微服务套件,专为AI推理设计。它的目的是加速生成式AI模型在云、数据中心和工作站上的部署,为开发者提供一个强大、可扩展且安全的平台。

2301_77888392的博客 5414

Python实现的基于BERT的知识库问答系统源码+全部数据(期末大作业).zip

Python实现的基于BERT的知识库问答系统源码+全部数据(期末大作业).zip 这是95分以上高分必过大作业设计项目,下载即用无需修改,确保可以运行。也可作为课程设计。 Python实现的基于BERT的知识库问答系统源码+全部数据(期末大作业).zip 这是95分以上高分必过大作业设计项目,下载即用无需修改,确保可以运行。也可作为课程设计。Python实现的基于BERT的知识库问答系统源码+全部数据(期末大作业).zip 这是95分以上高分必过大作业设计项目,下载即用无需修改,确保可以运行。也可作为课程设计。Python实现的基于BERT的知识库问答系统源码+全部数据(期末大作业).zip 这是95分以上高分必过大作业设计项目,下载即用无需修改,确保可以运行。也可作为课程设计。Python实现的基于BERT的知识库问答系统源码+全部数据(期末大作业).zip 这是95分以上高分必过大作业设计项目,下载即用无需修改,确保可以运行。也可作为课程设计。Python实现的基于BERT的知识库问答系统源码+全部数据(期末大作业).zip 这是95分以上高分必过大作业设计项目,下载即用无需

用Python可以开发一个简单的人工智能吗?

Python作为一门广泛使用的编程语言,凭借其简洁的语法和丰富的库支持,已经成为开发人工智能应用的首选工具之一。那么,它究竟能否帮助我们快速构建一个功能完备且易于理解的AI系统呢?让我们一起深入探索这个问题吧!

cda2024的博客 1074

别再硬啃C代码了!用Simulink的Matlab Function模块手把手教你搭建CRC8校验模型(附完整M脚本)

本文详细介绍了如何利用Simulink的Matlab Function模块轻松实现CRC8校验模型,替代传统的C代码编写。通过可视化建模和即时验证,开发者可以高效完成算法设计,并自动生成嵌入式代码。文章包含完整的M脚本示例和工程实践技巧,特别适合嵌入式系统开发人员提升工作效率。

weixin_42520661的博客 186

人工智能之语言领域 自然语言处理 第六章 情感分析

情感分析(Sentiment Analysis),又称意见挖掘(Opinion Mining),旨在自动识别和提取文本中表达的主观情感、态度或情绪。从用户评论到社交媒体,从产品反馈到政治舆情,情感分析已成为企业决策、品牌监控和人机交互的关键技术。本章将深入介绍情感分析的层级结构、核心技术、主流模型,并通过社交媒体舆情实战案例完整演示分析与可视化流程。层级目标示例词级(Word-level)判断单个词的情感倾向“好” → 正面;“差” → 负面句级(Sentence-level)判断整个句子的情感极性。

咚咚王者的博客 857

RAG入门实践:手把手Python实现搭建本地知识问答系统

向量数据库是AI时代的“数据配对专家”,用向量化思维解决非结构化数据的存储和检索难题,尤其适合需要。

Arbboter的专栏 7710

网络系统实现技术之IPX与SPX

IPX/SPXNovell NetWare网络Novell公司为适应网络发展,将主机网络转换为PC网络,开发了Novell NetWare网络系统。该系统中基于客户机/服务器模式。以普通PC机做为客户机,以性能强大的服务器做为服务器,为客户机提供文件服务、数据库服务及其他服务。与前面的SNA模型一样,Novell NetWare也早于OSI模型,所以不能与OSI模型严格对应,但也有很明

成片的大树 9164

【人工智能】什么是人工智能对齐(文末送书)

人工智能对齐(AI Alignment)指让人工智能的行为符合人的意图和价值观。人工智能系统可能会出现“不对齐”(misalign)的问题。

小吉妙妙屋 2973

5分钟搞定SNMP工具安装:从Linux到Windows的snmpwalk/snmpget全攻略

本文提供了SNMP工具(snmpwalk/snmpget)在Linux和Windows系统上的快速安装与使用指南,涵盖从基础安装到高阶应用的全面解析。通过详细的命令示例和故障排查技巧,帮助用户快速掌握网络设备监控与诊断的核心技能,提升运维效率。

weixin_29248313的博客 557

STM32HAL库硬件I2C驱动INA226避坑指南:从寄存器配置到电流测量实战

本文详细解析了使用STM32的HAL库硬件I2C驱动INA226电流/功率监测芯片的完整流程与常见陷阱。内容涵盖从硬件I2C配置、寄存器(特别是配置与校准寄存器)的深度解析、健壮的驱动函数封装,到实战中的校准技巧与滤波优化,旨在帮助开发者避开通信失败、数据不准等典型问题,实现高精度电流测量。

x1y2z的博客 791

NLP实战(二)搭建一个简单的问答系统

Part 2: 搭建一个简单的问答系统 本次项目的目标是搭建一个基于检索式的简单的问答系统。 通过此项目,你将会有机会掌握以下几个知识点: 字符串操作 2. 文本预处理技术(词过滤,标准化) 3. 文本的表示(tf-idf, word2vec) 4. 文本相似度计算 5. 文本高效检索 此项目需要的数据: dev-v2.0.json: 这个数据包含了问题和答案的pair, 但是以JSON格式存在,需要编写parser来提取出里面的问题和答案。 glove.6B: 这个文件需要从网上下载,下载地址为:h

Divine0的博客 6900

【QT开发教程】使用Qt进行蓝牙低功耗(BLE)编程

蓝牙低功耗(BLE,Bluetooth Low Energy)技术广泛应用于现代设备中,例如智能手表、健身追踪器和物联网设备。Qt提供了一套完整的Bluetooth模块,使开发者可以轻松地在应用程序中实现BLE通信功能。本文将介绍如何在Qt中进行BLE编程,包括基本概念、使用方法以及一些实际的示例。

科技改变人类,技术成就未来 2869

本地搭建简易AI问答系统(Java为主+Python辅助)

本文介绍了一个本地运行的简易AI问答系统搭建方法,采用Java+Python混合技术栈。系统分为三层架构:Java控制台前端、Java核心逻辑层和Python AI模型层。技术选型包括JDK 11+、Python 3.9+、Transformers库及轻量化模型ChatGLM-6B-int4。详细说明了环境配置步骤、Python端模型加载与问答处理实现(ai_answer.py),以及Java端通过ProcessBuilder调用Python脚本的核心逻辑。系统无需云服务,支持CPU/GPU运行,适合零基础

从零开始,掌握网络安全。提供全面的网络安全教程、攻防演练技巧和行业动态。 1254

OpenHarmony AI系列:神经网络处理单元(NPU)驱动架构与实现详解

NPU(Neural Processing Unit,神经网络处理单元)是专门为神经网络计算设计的硬件加速器。在OpenHarmony系统中,NPU驱动是通过NNRT(Neural Network Runtime,神经网络运行时)框架实现的,它作为中间桥梁连接上层AI推理框架和底层NPU硬件,实现AI模型的跨芯片推理计算。

m0_67505153的博客 665

mabl:AI原生测试自动化平台的基础使用

mabl是一个基于人工智能和机器学习的云原生测试自动化平台。它通过使用先进的技术,如机器学习,自动创建和执行测试,自动分析测试结果,并根据需求的变化自动适配和维护测试。这样的自动化过程极大地提高了软件测试的效率和准确性。mabl的口号是 “You write code, mabl tests”,意味着开发者只需关注编写代码,而测试工作则可以交给mabl来完成。mabl的平台支持多种测试类型,包括 Web、App、Api、可访问性和性能测试,使得团队能够更快速、更有信心地发布软件。

blues_C的博客 3661
上一篇: Python文章自动生成器火了!没错,它的名字叫“狗屁不通”!
下一篇: 双十一数据被质疑?教你如何用Python预测未来趋势!
PythonJavaPHP
博客等级 码龄7年 116粉丝 76原创
评论 14
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值