Python 文本相似度和聚类
文本数据是非结构化的和高噪声的。在执行文本分类时,拥有标记合理的训练数据和有监督学习大有裨益。但是,文档聚类是一个无监督的学习过程,将尝试通过让机器学习各种各样的文本文档及其特征、相似度以及它们之间的差异,来讲文本 文档分割和分类为单独的类别。这使得文档聚类更具挑战性,也更有意思。考虑一个设计各种不同的概念和想法的文档语料库。人类以这样的方式将它们联系在一起,即使用过去学习的各种知识,并应用它们来区分不同的文档。例如,相对于句子 “Python is an excellent programming language (Python 是一种优秀的变成语言)”,句子 “The fox is smarter than the dog (狐狸比狗更聪明)” 和 “The fox is faster than the dog (狐狸比狗要快)” 更为相似。可以轻松并直观地找出 Python、fox(狐狸)、dog(狗)、programming (编程) 等特定的关键短语,这有助于确定哪些句子或文档更相似。那么,可以通过编程来实现以上过程么?下面重点介绍与文本相似度、距离度量和无监督 ML 算法相关的几个概念,以回答以下问题:
如何度量文档之间的相似度?
如何使用距离测量值来找出最相关的文档?
什么时候距离测量值称为度量?
如何聚类或组合类似的文档?
可以可视化文档聚类么?
尽管焦距于回答以上问题,还是要先介绍决绝这些问题所需的各种技巧的基础概念和信息。还将使用一些实例来说明与文本相似度、距离度量和文档聚类相关的概念外,在这些技术中,许多都可以与以前学习的一些技术相结合,反之亦然。例如,采用距离度量的文本相似度概念也可以用于构建文档聚类。还可以使用主题模型中的特征来衡量文本相似度。此外,聚类通常是培养你对于数据可能的分组或分类的,甚至是可视化聚类的一个很好的切入点。聚类可以插入其他系统(如有监督的分类系统)中,还可以将几种技术结合在一起,并构建加权分类器。这些可能性是无止境的。