首先我们上代码:

from sklearn.feature_extraction.text import CountVectorizer
corpus = [
'UNC played Duke in basketball',
'Duke lost the basketball game',
'I ate a sandwich'
]
vectorizer = CountVectorizer(binary=True,stop_words='english')#设置停用词为英语,这样就会过滤掉
#过滤掉a an the 等不必要的冠词,同时设定英语里的同种词的形式,单复数,过去式等为同样的词语
print(vectorizer.fit_transform(corpus).todense())
print(vectorizer.vocabulary_)

输出:

[[0 1 1 0 0 1 0 1][0 1 1 1 1 0 0 0][1 0 0 0 0 0 1 0]]
{'unc': 7, 'played': 5, 'duke': 2, 'basketball': 1, 'lost': 4, 'game': 3, 'ate': 0, 'sandwich': 6}

 前面三行的矩阵只有0和1两个值,每一个矩阵都有8个0或者1,这里说明了我们的词库当中一共有8个不同的英语词汇,由于之前我们使用了代码:

vectorizer = CountVectorizer(binary=True,stop_words='english')#设置停用词为英语,这样就会过滤掉
#过滤掉a an the 等不必要的冠词,同时设定英语里的同种词的形式,单复数,过去式等为同样的词语

因此我们已经过滤掉了a an tne 这种英语里的冠词,每一个名次的单复数,动词的过去,过去完成时等词,比如说我们的play和played计算机就会默认为是同一个词了,真的神奇。

后面的输出0和1表示了所有词库当中的某一个词是否出现,我们所有的词汇的所对应的数值已经计算出:

{'unc': 7, 'played': 5, 'duke': 2, 'basketball': 1, 'lost': 4, 'game': 3, 'ate': 0, 'sandwich': 6}

 在每一句话当中,出现就记为1,不出现则记为0,这就是上述矩阵的含义了。最后我们通过sklearn库当中的函数来计算这三个句子特征向量的欧式距离,其实就是把我们的矩阵拿来计算,计算的公式如下:

代码如下:

from sklearn.metrics.pairwise import euclidean_distances
counts = vectorizer.fit_transform(corpus).todense()
for x,y in [[0,1],[0,2],[1,2]]:dist = euclidean_distances(counts[x],counts[y])print('文档{}与文档{}的距离{}'.format(x,y,dist))

因此我们有输出:

文档0与文档1的距离[[2.]]
文档0与文档2的距离[[2.44948974]]
文档1与文档2的距离[[2.44948974]]

 说明文档2和文档1、0的相似程度是一样的。

转载于:https://www.cnblogs.com/geeksongs/p/11189136.html

计算多个文档之间的文本相似程度相关推荐

  1. 文档词频矩阵_如何通过词向量技术来计算 2 个文档的相似度?

    作者:吴俣https://www.zhihu.com/question/33952003/answer/135089460 Deep Learning 派系:(1)最简单的就是两个句子分别过一个CNN ...

  2. 【Python】导出docx格式Word文档中的文本、图片和附件等

    [Python]导出docx格式Word文档中的文本.图片和附件等 零.需求 为批量批改学生在机房提交的实验报告,我需要对所有的实验文档内容进行处理.需要批量提取Word文档中的图片和附件以便进一步检 ...

  3. 微软文本检索_如何在Microsoft Word中引用其他文档中的文本

    微软文本检索 You probably have some text that you type often in your Word documents, such as addresses. In ...

  4. 将PDF和Gutenberg文档格式转换为文本:生产中的自然语言处理

    Estimates state that 70%–85% of the world's data is text (unstructured data). Most of the English an ...

  5. Python使用标准库zipfile+re提取docx文档中超链接文本和链接地址

    推荐教材: <Python程序设计实用教程>,ISBN:978-7-5635-6065-3,董付国,北京邮电大学出版社 教材封面: 全国各地新华书店有售 京东购买链接: 配套资源:教学大纲 ...

  6. Word处理控件Aspose.Words功能演示:用Java从Word文档中提取文本

    Aspose.Words For .NET是一种高级Word文档处理API,用于执行各种文档管理和操作任务.API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsof ...

  7. Java版Word开发工具Aspose.Words功能解析:查找和替换Word文档中的文本

    MS Word提供了一种简单的方法来查找和替换文档中的文本.查找和替换文本的一种流行用例之一可能是在文档之间的敏感信息在各个实体之间共享之前,对其进行删除或替换.但是,手动过程可能需要您安装MS Wo ...

  8. 使用pymupdf获取pdf文档中的文本下划线信息(全网唯一解决方案)

    1,问题描述 最近,公司需要对一批pdf文档进行解析,获取其中文字,并再展示到前端页面上.如果单纯地提取文字,其实非常容易,但麻烦的在于保存原有文档中的文本格式,例如加粗.斜体.下划线,以及三者的各种 ...

  9. 控制 Open XML WordprocessingML 文档中的文本

     简介 在 Open XML 字处理文档中处理文本的过程看起来非常简单:文档中包含正文,正文包含段落和表格,表格中包含行和单元格,完全类似于 HTML,不是吗?然后再看,又好像很难.您会看到修订跟 ...

最新文章

  1. 文件查找命令find的使用
  2. 能打又实用,推荐8个超实用【神级】在线工具网站,绝对干货
  3. 谷歌的硬件梦:Pixel手机、ChromeOS平板和Home音箱
  4. TensorFlow模型的签名推荐与快速上线\n
  5. 非阻塞模式与阻塞模式
  6. Android Activity启动模式,回退栈管理!
  7. Android开发学习笔记:Gallery和GridView浅析
  8. 计算机组成原理第4章-指令系统
  9. WordPress路径相关函数总结
  10. stm32F4修改时钟频率,更换为8MHz晶振
  11. b站whats app
  12. matlab cy11,matlab解线性回归方程,y=a0+a1*A+a2*B+a3*C+a4*D+a5*E+a6*F; 数据足够,求a0,a
  13. Monkeyrunner脚本的录制与回放
  14. 如何辨别真假柯达胶卷
  15. 修改高通IPQ4019/4018的flash的分区
  16. 管道爬行机器人内部陀螺仪_管道爬行机器人组成部分
  17. 大数据智能推荐系统原理介绍
  18. 配置ACL隔离交换机的VLAN
  19. Web身份验证(WebAuthn)
  20. 导出DNS服务器上的记录

热门文章

  1. 机器学习:算法模型:决策树
  2. linux 下php多版本安装
  3. android开发中EditText自动获取焦点时隐藏hint的代码
  4. C#中用WMI实现对驱动的查询
  5. Delphi XE2 之 FireMonkey 入门(26) - 数据绑定: TBindingsList: TBindExprItems
  6. 划分用户故事(user-story)的原则
  7. 前端js文件合并三种方式
  8. 主打“云安全” 迅雷系帝恩思登陆新三板
  9. 如何写年终总结(转)
  10. 解决 windows10和ubuntu16.04双系统下时间不对的问题