按上次说的,今天说说聊天机器人这个小小的项目,这个就和人工AI开始挂钩了。我们现在很容易看到小孩子的玩具某某智能语音机器人,只要连上网就能和小朋友对话,还能讲故事、学英语、朗诵古诗,再配合上各式各样的灯话,优美别致、时尚科技感超强的造型,令小朋友爱不释手、家长们也赞不绝口,享受着高科技带来的快乐。

其实这种智能机器人实现的原理很简单,还是那句万年不变的话,这就是0与1的区别,在不懂程序人看来,好神奇,世界如此奇妙;在懂程序人看来,就其实就是调用数据库和网络接口请求的结果,貌似神秘感一下子都消失了,没有神秘感也不是什么好事,大家都知道魔术是假的,但是就是吸引别人,一旦谜底揭露才发现还不如一直不说漏的好。

我写的这个聊天机器人利用的事最最简单的原理,首先不是语音对话聊天,只是最原始的命令行内容输入,聊天机器人针对输入的内容作出聊天内容的回应,就和当初我们码字聊QQ、微信似得,只不过是程序在和你聊。对于那些百无聊赖的人来说是打发时间必备之良药。貌似微信也有这方面的机器人,咱们来自己编写代码,哈哈,神不神奇?奇不奇妙?

当我一会上了代码之后,就恍然大悟,你也会说也不过如此。不过再高大上的程序、功能,最开始也是十分low的,最早的计算机还好几层楼房那么高呢。

我这个聊天机器人原理是什么呢?就是相当于电脑的搜索功能一样,只不过搜索的事语言库,这个语言库就是将我们日常说的话,或者英语日常用语几百句之类的对话,一问一答存入到这个语言库之中。我们聊天也摆脱不了这些话,什么你叫什么、你住在哪里。。。这样的唠嗑。当我们输入打字的内容,程序就会根据输入的内容在这个语言库匹配问句,匹配问句有个阈值,超过这个阈值就认为问的这句话就是语言库的这个问答,之后再把回答返回给你,哈哈,是不是很简单。如果这个语言库的内容足够丰富,回答内容足够多,再根据自己的需要选择不同的风格,什么幽默搞笑无厘头、端庄文雅名家秀风格不同选的语言库也不同。就会比真人聊天还有意思。

我的这个语言库就是从网上爬取的日常对话几千句存成一个txt文本文件,简单的不能再简单了。不过原理就是这么个原理,有兴趣的你可以爬取更多的对话内容,存入数据库。现实中的某某机器人都是联网之后,向这个数据库接口发送请求,返回来转换成语音让大、小朋友听到,聊天有聊天的语言库,讲故事有讲故事的故事库,古诗的事古诗库。下面这就是我的语言库。

我这个还可以进一步完善,实现语音和语音的聊天效果,不用黑乎乎丑陋的命令行界面,麦克风将语音输入,之后利用语音转换文字的AI接口,这样的算法不用自己来实现,咱也实现不了,但是谁叫咱们站在巨人的肩膀呢?直接调用接口,这样的接口网上很多。你的语音转换成文字,程序用这个文字去匹配,匹配到阈值超过某个值,(我写的是75),就把对应的回答获取到,在通过文字转换成语言的AI接口,通过音箱让你听到。哈哈,想和林志玲聊天就用林志玲的语音,想和郭德纲聊天就用老郭的语音,当然转成明星的语音是需要收费的。好像导航的语音就有明星的。感兴趣的可以试一试。

用到的第三方库from fuzzywuzzy import process,from fuzzywuzzy import fuzz。问题相似度的阈值代码score=fuzz.ratio(quest, key),score大于75,就程序就认为是这个问题。直接上代码,代码很简单、原理也很简单,但是这也是项目,是项目就意味着有收益。

我是热爱编程喜欢历史的土木工程师,沙漠骆驼,这是我的微信号:daxiong008008,欢迎一起学习交流。

# -*- coding: UTF-8 -*-

from fuzzywuzzy import process

from fuzzywuzzy import fuzz

import re

import os

import sys

import warnings

def txtRead(filePath, encodeType = 'utf-8'):

listLine = []

try:

file = open(filePath, 'r', encoding= encodeType)

while True:

line = file.readline()

if not line:

break

listLine.append(line)

file.close()

except Exception as e:

logger.info(str(e))

finally:

return listLine

if __name__ == '__main__':

warnings.filterwarnings('ignore')

path = os.path.abspath(os.path.dirname(sys.argv[0]))+'\Data\source.txt'

q_a=[]

qa_list = txtRead(path)

for qa in qa_list:

q=qa.strip().split("\t")[0]

a=qa.strip().split("\t")[1]

dic={q:a}

q_a.append(dic)

print("开始聊天")

while True:

print("你问: ")

quest = input()

for i in q_a:

for key,value in i.items():

score=fuzz.ratio(quest, key)

if score >75:

a=value

print('小姜机器人:',a)

知乎python小项目_简单新颖科技感十足的python小项目相关推荐

  1. Java web小项目_个人主页(1)—— 云环境搭建与项目部署

    摘自:Java web小项目_个人主页(1)-- 云环境搭建与项目部署 作者:丶PURSUING 发布时间: 2021-03-26 23:59:39 网址:https://blog.csdn.net/ ...

  2. 基于stm32的简单小项目_适合小白做的创业3个小项目,简单上手

    现在每一位为了能够让自己和家人过上更好地生活,都会不满足于现状的单方面地工作,想要通过创业来改变如今的局面,这种想法也是好的,但是我们需要知道想要创业,并不是那么的容易,需要有一定的技能和管理水平才能 ...

  3. python视觉识别线条_简单车道线识别

    本文将介绍如何利用Opencv,对简单场景下的车道线进行离线识别.梳理整个识别过程的逻辑,并对过程中使用的相关知识点进行介绍.正文中使用C++实现,在文末也会附上利用python实现的代码,读者完全可 ...

  4. python抠图教程_简单几行Python代码实现8秒抠图的AI神器,根本无需PS(附教程)...

    曾几何时,「抠图」是一个难度系数想当高的活儿,但今天要介绍的这款神工具,只要 3 行代码 5 秒钟就可以完成高精度抠图,甚至都不用会代码,点两下鼠标就完成了. 感受下这款抠图工具抠地有多精细: 是不是 ...

  5. 新颖的自我介绍_简单新颖的自我介绍范文

    简单新颖的自我介绍范文 简单新颖的自我介绍范文1 各位考官好,今天能够站在这里参加面试,有机会向各位考官请教和学习,我感到非常的荣幸.希望通过这次面试能够把自己展示给大家,希望大家记住我.我叫.... ...

  6. python的100道简单习题,祝你成为python大神的小老弟

    python是越来越火热的编程语言,我们应该相应学习和了解一下这种语言,总会有帮助的.本想自己一点点整理的,但是太过于繁琐,而且我也是刚接触python,怕自己整理的不是很周全,就借用别人整理的,谢谢 ...

  7. 如何用python画小熊_转载:《笨办法学Python》笔记-----一个项目骨架

    骨架目录 为什么要建立这么个骨架? 建立一个项目的骨架目录就如同代码风格,统一规范的项目骨架目录应当是能提高项目的可读性的,进而为后来人提供快速方便的项目维护参考,降低项目维护的成本. 基本的框架包括 ...

  8. python 字符串拼接_面试官让用 3 种 python 方法实现字符串拼接 ?对不起我有8种……...

    点击上方 蓝字关注我们 点击上方"印象python",选择"星标"公众号重磅干货,第一时间送达!之前发过很多关于 Python 学习的文章,收到大家不少的好评, ...

  9. python入门教授_南开大学教授强力推荐的5本Python入门书籍,附电子版

    筛选了2年内优秀的python书籍,个别经典的书籍扩展到5年内. python现在的主流版本是3.7(有明显性能提升,强烈推荐) 3.6, 不基于这两个或者更新版本的书,慎重选择.很多库已经不提供py ...

最新文章

  1. 磐创AI - 专注机器学习技术分享
  2. 基于VTK的MFC应用程序开发(1)
  3. 漫画:程序员一时单身一时爽,一直单身...有点惨
  4. Stark 组件:快速开发神器 —— 自动生成 URL
  5. python贪吃蛇毕业设计_【干货|python项目实例——贪吃蛇】- 环球网校
  6. Kotlin入门(1)搭建Kotlin开发环境
  7. Android Messenger 跨进程通信
  8. Improving Opencv 3 : Mask operations on matrices
  9. python网站开发实例 flask_Python Web开发之——构建基于Flask框架的web后端项目
  10. 用HTML代码实现个人简历的编写
  11. python mssql get image bin_python实现mssql里点数据集到AutoCAD的文本转换
  12. 第五回 人似秋鸿来有信,事如春梦了无痕
  13. 用python写脚本控制电脑息屏唤醒_Python制作小脚本,一键可以让你同事的电脑在你指定时间关机...
  14. Day45. 数据分析实战(1):超市运营数据分析
  15. 氛围感新年头像如何制作?教你简单的制作好看头像的办法
  16. 七、手写实现决策树算法
  17. Zookeeper Paxos算法 一致性协议
  18. Win32API:CreateDialog、DialogBox、DialogProc
  19. 【Linux】CentOS7 C#开发环境搭建笔记(Jexus安装、配置、部署)
  20. 华为云+AI+5G,点燃2020政企智能升级

热门文章

  1. 从 TikTok 危机看去中心化应用未来曙光 | ArcBlock 博客
  2. [QQAI机器人]-使用Java开发环境搭建
  3. 女性创业者的自述:创业这一年学到的10大心得
  4. 第9节 路由表的分类及路由器简单原理
  5. 介绍汉明距离及计算示例
  6. videojs播放监控
  7. 我常用的写作工具都在这儿了
  8. shader 画圆,椭圆
  9. c++基础:8.2.5_容器适配器(Container Adapte)
  10. @ConditionalOnBean、@ConditionalOnProperty、@ConditionalOnClass、@Conditional和Condition接口的使用