Page 139 - 高中 信息技术 必修1 数据与计算
P. 139

 6.1 认识人工智能







                    进入问题理解模块。FAQ库主要用于提高智能问答系统的效率,其主要技术就是问句相似
                    度计算和候选问句的选择。
                         问句相似度计算通常采用Jaccard相似度系数算法。Jaccard相似度系数表示两集合的交

                    集元素个数与两集合的并集元素个数之比,系数越高,两集合的相似度越高。例如,计算
                    问句A“空调机有什么功能?”与问句B“空调机的功能有哪些?”的Jaccard相似度系数
                    流程如下:
                         (1)运用分词系统处理问句。处理后得到集合A={“空调机”,“有”,“什么”,“功

                    能”,“?”}和集合B={“空调机”,“的”,“功能”,“有”,“哪些”,“?”}。
                         (2)计算集合A和集合B的交集与并集。集合A和集合B的交集={“空调机”,“有”,“功

                    能”,“?”},集合A和集合B的并集={“空调机”,“有”,“什么”,“功能”,“的”,“哪
                                             广东教育出版社
                    些”,“?”}。
                         (3)计算交集元素的数量和并集元素的数量的比值。交集元素的数量为4,并集元素
                    的数量为7,交集元素的数量和并集元素的数量的比值为4÷7≈0.57。因此,将0.57作为问

                    句A和问句B的相似度系数。



                         实 践


                         基于上述的流程,可以用 Python 语言编程实现 Jaccard 相似度系数算法,程序如下:


                           # -*- coding:utf-8 -*-

                           # 计算jaccard系数
                           def jaccard(p,q):
                               c=[val for val in p if val in q]  #求p和q的交集

                               return float(len(c)/(len(p)+len(q)-len(c)))
                           # 注意:在使用之前必须对两个数据集去重
                           a=["空调机","有","什么","功能","?"]
                           b=["空调机","的","功能","有","哪些","?"]

                           print(jaccard(a,b))



                         程序结果:0.5714285714285714。



                         分 析


                         计算下列两个语句的Jaccard相似度系数,并利用Python语言编程求出Jaccard相似度
                    系数。
                         A:我爱祖国的壮丽山河;我爱祖国悠久的历史和璀璨的文化。

                         B:我爱祖国人民的勤劳、智慧与勇敢;我更爱祖国那生生不息、辉煌雄壮的民族魂!


                                                                                                                    131131







            9      ֻੂᅣ JOEE
   134   135   136   137   138   139   140   141   142   143   144