使用Python编写一个简易客服机器人

  介绍

使用Python编写一个简易客服机器人?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

1,货物信息储存到MySQL数据库中

在现实情景中,购物信息的数据一般会储存到数据库中,方便在进行问答时才访问数据库获取相关信息,可以用Python中的sqlalchemy包把表格导入到MySQL数据库中:

import  pymysql   import  pandas  as  pd   import  sqlalchemy  as  sqla   得到sqlalchemy.orm  import  sessionmaker   import 时间   import 再保险      #导入数据   时间=data  pd.read_excel (r" E:/1/研究/大三下/自然语言处理/作业表.xlsx")   时间=data  data.head (1)   #数据      时间=db  sqla.create_engine (& # 39; mysql + pymysql://根:* * * * * * @localhost/lsq ? charset=use utf8 # 39;) #连接数据库(密码马赛克一下)   #导入表格到数据库中   data.to_sql (& # 39; shopping_informations& # 39;, db,指数=False, if_exists=& # 39;添加# 39;)

运行结果如下:

使用Python编写一个简易客服机器人

2,在问答过程中可以访问数据库获取结果

利用Python中的pymysql包,先对数据库进行连接并使用光标()方法获取操作游标。然后分别对发货时间,发货地,商品单号和商品状态进行函数定义,执行相关sql语句对数据库信息进行提取:

conn =, pymysql.connect (“localhost",“root",“* * * * * *“,“lsq") # *为密码   时间=cursor  conn.cursor ()      def  start_time(): #发货时间   starttime_sql =,才能“SELECT  START_RIME 得到shopping_informations"   尝试才能:   ,,,cursor.execute (starttime_sql)   ,,,result1 =, cursor.fetchall ()   ,,,print(“亲您所购买的宝贝计划在% s进行发货~预计将会在% s不要着急哟,,%,result1[0])编写此表达式   除了才能:   ,,,print(“哎呀!机器客服这边暂时找不到相关数据呜呜呜~亲可以联系一下人工客服“)   ,,,conn.close ()      def  start_local(): #发货地   startlocal_sql =,才能“SELECT  START_LOCAL 得到shopping_informations"   尝试才能:   ,,,cursor.execute (startlocal_sql)   ,,,result2 =, cursor.fetchone ()   ,,,print(“亲您所购买的宝贝计划从% s发出~不要着急哟,,%,result2 [0])   除了才能:   ,,,print(“哎呀!机器客服这边暂时找不到相关数据呜呜呜~亲可以联系一下人工客服“)   ,,,conn.close ()   ,,   def  ID(): #商品单号   id_sql =,才能“SELECT  ID 得到shopping_informations"   尝试才能:   ,,,cursor.execute (id_sql)   ,,,result3 =, cursor.fetchone ()   ,,,print(“亲您所购买的宝贝单号是% s", %, result3 [0])   除了才能:   ,,,print(“哎呀!机器客服这边暂时找不到相关数据呜呜呜~亲可以联系一下人工客服“)   ,,,conn.close ()      def 状态():#商品状态   state_sql =,才能“SELECT  STATE 得到shopping_informations"   尝试才能:   ,,,cursor.execute (state_sql)   ,,,result4 =, cursor.fetchone ()   ,,,print(“亲您所购买的宝贝现在在% s中~不要着急哟,,%,result4 [0])   除了才能:   ,,,print(“哎呀!机器客服这边暂时找不到相关数据呜呜呜~亲可以联系一下人工客服“)   conn.close才能()

其中,在函数定义里加入了try-except异常捕捉部分,当问句发生错误或者在数据库中无法找到对应数据时,可以让客户联系人工客服。

3,利用正则表达式对问句进行识别

对于客户所输入的问题,用正则表达式对其进行分析识别,选择相应的答案进行回答,当问题超过答案范围,可以让客户联系人工客服:

str1 =,““   def  answer_robot (str1):   if 才能;re.search(" # 39;。*快递(. *)? & # 39;,str1): #涉及到快递公司的问题   ,,,str2 =,“亲!我们店统一默认发百世汇通,按仓择优分配快递,不能指定哟~请谅解!“   elif 才能;re.search(" # 39;。*状态(. *)? & # 39;,str1): #涉及到商品状态的问题   ,,,str2 =,状态()   elif 才能;re.search (" # 39; (\ w) ?(编号|单号|货号]\ w # 39;, str1): #涉及到商品单号的问题   ,,,str2 =, ID ()   elif 才能;re.search (, " # 39; (\ w) ?(哪里|发货地]\ w # 39;, str1): #涉及到商品发货地的问题   ,,,str2 =, start_local ()   elif 才能;re.search (, " # 39; (\ w) ?[时间|时候]\ w # 39;, str1): #涉及到商品发货时间的问题   ,,,str2 =, start_time ()   其他的才能:   ,,,str2 =,“呜呜呜问题太复杂啦!建议亲找人工姐姐哟~“   return 才能str2

使用Python编写一个简易客服机器人