python 中文分词

最近写的那个机器人,我想让他更加智能些,比如根据用户回复的内容来进行判断该如何进行回复。

但是要判断用户输入的内容是否符合预期其实还是比较费劲的。

我这里使用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