本文共 2618 字,大约阅读时间需要 8 分钟。
在实际场景中,购物信息通常存储在数据库中以便在问答时访问。使用Python的sqlalchemy包可以将表格导入到MySQL数据库中。以下是实现步骤:
import pymysqlimport pandas as pdimport sqlalchemy as sqlafrom sqlalchemy.orm import sessionmakerimport timeimport re# 导入数据data = pd.read_excel(r"E:/1/Study/大三下/自然语言处理/作业表.xlsx")data = data.head(1)# 创建数据库连接db = sqla.create_engine('mysql+pymysql://root:******@localhost/lsq?charset=utf8')# 导入数据到数据库data.to_sql('shopping_informations', db, index=False, if_exists='append') 使用pymysql包连接数据库,通过cursor()方法获取操作游标。定义函数分别查询发货时间、发货地、商品单号和商品状态,并处理异常:
conn = pymysql.connect("localhost","root","******","lsq")cursor = conn.cursor()def start_time(): start_time_sql = "SELECT START_TIME FROM shopping_informations" try: cursor.execute(start_time_sql) result1 = cursor.fetchall() print("亲您所购买的宝贝计划在%s进行发货~预计将会在%s不要着急哟" % result1[0]) except: print("哎呀!机器客服这边暂时找不到相关数据呜呜呜~亲可以联系一下人工客服") conn.close()def start_local(): start_local_sql = "SELECT START_LOCAL FROM shopping_informations" try: cursor.execute(start_local_sql) result2 = cursor.fetchone() print("亲您所购买的宝贝计划从%s发出~不要着急哟" % result2[0]) except: print("哎呀!机器客服这边暂时找不到相关数据呜呜呜~亲可以联系一下人工客服") conn.close()def ID(): id_sql = "SELECT ID FROM shopping_informations" try: cursor.execute(id_sql) result3 = cursor.fetchone() print("亲您所购买的宝贝单号是%s" % result3[0]) except: print("哎呀!机器客服这边暂时找不到相关数据呜呜呜~亲可以联系一下人工客服") conn.close()def state(): state_sql = "SELECT STATE FROM shopping_informations" try: cursor.execute(state_sql) result4 = cursor.fetchone() print("亲您所购买的宝贝现在在%s中~不要着急哟" % result4[0]) except: print("哎呀!机器客服这边暂时找不到相关数据呜呜呜~亲可以联系一下人工客服") conn.close() 使用正则表达式分析客户输入,识别问题类型并选择相应答案:
str1 = ""def answer_robot(str1): if re.search(r'.*快递(.*)?', str1): return "亲!我们店统一默认发百世汇通,按仓择优分配快递,不能指定哟~请谅解!" elif re.search(r'.*状态(.*)?', str1): return state() elif re.search(r'(\w)?[编号|单号|货号]\w', str1): return ID() elif re.search(r'(\w)?[哪里|发货地]\w', str1): return start_local() elif re.search(r'(\w)?[时间|时候]\w', str1): return start_time() else: return "呜呜呜问题太复杂啦!建议亲找人工姐姐哟~"
定义主体函数,处理客户输入并每次回答后休眠1秒:
def main(): while True: str1 = input("输入对话:") str3 = answer_robot(str1) time.sleep(1) print(str3) 转载地址:http://ttdkz.baihongyu.com/