最近写的那个机器人,我想让他更加智能些,比如根据用户回复的内容来进行判断该如何进行回复。
但是要判断用户输入的内容是否符合预期其实还是比较费劲的。
我这里使用jieba 这个 python 库。
安装库
pip3 install jieba
官网的例子可以看下
import jieba
content = "好的,谢谢,我的问题已经解决了"
seg_list = jieba.cut(content, cut_all=False)
key = []
for i in seg_list:
key.append(i)
print(key)
listcontent = ["好","好的","谢谢","可以了","明白","感谢","好评"]
count = int(len(list(set(listcontent).intersection(set(key)))))
print(count)
输出
['好', '的', ',', '谢谢', ',', '我', '的', '问题', '已经', '解决', '了']
我判断下 A 和 B 2个 list 是否有交集大概可以判断用户的问题是什么?但其实并不特别准。
另外关于 python list 比较我这里也收集了些资料
#求交集的两种方式
retA = [i for i in listA if i in listB]
retB = list(set(listA).intersection(set(listB)))
print "retA is: ",retA
print "retB is: ",retB
#求并集
retC = list(set(listA).union(set(listB)))
print "retC1 is: ",retC
#求差集,在B中但不在A中
retD = list(set(listB).difference(set(listA)))
print "retD is: ",retD
retE = [i for i in listB if i not in listA]
print "retE is: ",retE