根据词袋模型使用Python实现一个简单的分析句子对相似度的软件

使用词袋模型实现一个简单的分析句子对相似度的软件

1. 实验内容

本次实验使用词袋(bag of words)技术,利用词袋模型进行编程并计算了不少于10组句子对的相似度,同时设计了图形界面,可以在界面输入句子对,然后点击按钮便可计算句子对的相似度。

项目地址

项目地址

下载文件后,在终端输入即可运行。

2. 使用技术描述

2.1 基本介绍

词袋Bag-of-words(BOW)模型是n-gram语法模型的特例1元模型,是自然语言处理和信息检索领域一种常用的文档表示方法,词袋模型忽略了文档中文本的语法、语序和语意等要素,将文本看作是一个无序的词汇的集合,每个单词的出现都是独立的。词袋模型较为简单方便易用,在垃圾邮件过滤等领域有着很好的应用。

根据词袋模型使用Python实现一个简单的分析句子对相似度的软件

对于两个句子:
I like basketball, I like football.
I like running, I love exercising.

合并后句子对为:
[‘I like basketball, I like football.’, ‘I like running, I love exercising.’]
对句子进行分词,分成两个单词列表:
[[‘I’, ‘like’, ‘basketball’, ‘,’, ‘I’, ‘like’, ‘football’, ‘.’], [‘I’, ‘like’, ‘running’, ‘,’, ‘I’, ‘love’, ‘exercising’, ‘.’]]

3.2 对两个句子的单词列表进行分词获取词袋

根据词袋模型使用Python实现一个简单的分析句子对相似度的软件

对于词袋{‘love’, ‘like’, ‘I’, ‘running’, ‘football’, ‘exercising’, ‘basketball’},获取字典:

{‘love’: 0, ‘like’: 1, ‘I’: 2, ‘running’: 3, ‘football’: 4, ‘exercising’: 5, ‘basketball’: 6}

3.4 根据词语出现频率TF值,处理单词列表和字典获取词袋模型向量

根据词袋模型使用Python实现一个简单的分析句子对相似度的软件

句子1的词袋模型TF向量v1:[0, 2, 2, 0, 1, 0, 1]
句子2的词袋模型TF向量v2:[1, 1, 2, 1, 0, 1, 0]
v1、v2的数量积v1·v2= 0*1+2*1+2*2+0*1+1*0+0*1+1*0=6
v1的长度|v1| = 2 2 + 1 2 + 2 2 + 1 2 sqrt{2^2 + 1^2 + 2^2 + 1^2} 22+12+22+12 /span> = 10 sqrt{10} 10 /span>
v2的长度|v2| = 1 2 + 2 2 + 1 2 + 1 2 + 1 2 sqrt{1^2 + 2^2 + 1^2 + 1^2 + 1^2} 12+22+12+12+12 来源:StuGeek

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年4月16日
下一篇 2022年4月16日

相关推荐