潜在语义分析

2025年3月17日 | 阅读 8 分钟

LSA通过应用统计方法来确定文档中词语之间的关系。LSA解决了以下几类问题

例如,即使“mobile”、“phone”和“telephone”这几个词的意思相似,如果我们问“The cell phone has been ringing”,那么只有包含“cell phone”这个词的论文才会被返回;而那些包含“mobile”、“phone”和“telephone”这几个词的论文则不会被返回。

LSA的假设

  • 在相同语境下具有相同含义的词语是相似的。
  • 所选词语的歧义性掩盖了材料的潜在语义结构。

奇异值分解

这种统计技术用于揭示散布在文档中的词语的潜在或隐藏的语义结构。

C = 文档集合。

d = 文档数量。

n = 整个集合中唯一词语的数量。

M = d X n

SVD将M矩阵(即词语-文档矩阵)分解为三个矩阵,如下所示:

其中

U = 不同语境下的词语分布

∑ = 语境之间关联的对角矩阵

VT = 不同文档中的语境分布

Latent Semantic Analysis

能够截断我们可能不需要的某些语境,这是SVD的一个非常重要的方面。∑矩阵中的对角值能让我们了解语境的重要性,按降序排列。我们可以通过使用这些值来降低维度。因此,我们也可以将其用作降维策略。

如果我们选择∑矩阵中k个最大的对角值,我们会得到

其中

Mk = M的近似矩阵

Uk、∑k和VTk分别是仅包含U、∑和VT中k个语境的矩阵。

Latent Semantic Analysis

什么是潜在语义分析(LSA)?

在探索LSA的概念之前,让我们花点时间直观地理解这个概念。我们在写作中使用的词语并非从词汇表中随机选择的。相反,我们考虑一个主题(或问题),然后选择能够帮助我们以更有意义的方式向他人传达思想的词语。通常,这个主题或议题被视为一个潜在的维度。

潜在语义分析(LSA)将非结构化的文本集合转换为结构化数据。在我们深入研究LSA的概念之前,让我们花点时间直观地理解这个概念。我们在写作时并非从词汇表中随机选择词语。

相反,我们考虑一个主题(或问题),然后选择更容易向他人解释观点的词语。这个主题或议题通常被认为是潜在的维度。

用于语义潜在分析的Python程序

本次课程我们将使用BBC新闻数据,您可以在此处下载。该数据集包含与五个不同类别相关的原始文本:科技、体育、政治、娱乐和商业。读取来自原始文本文件的数是我们首先要做的任务。

输出

 ['business,' 'entertainment,' 'README.TXT,' 'sport,' 'tech,' 'politics']

报告指示存在一个名为“README.TXT”的文件,应该将其删除。所有其他组件都由相应的文件夹构成。每个主题的原始文本文件都包含在以其各自主题命名的文件夹中。数据框将使用以下代码创建。


Latent Semantic Analysis

在进一步分析新闻列中的文本之前,需要对其进行预处理。预处理将包括以下操作:

大小写转换

删除任何特殊字符或数字

使用RE包可以轻松完成此处理。可以使用一个方便的函数来完成预处理,该函数将返回每段文本的新闻标题以及实际新闻内容,因为数据包含新闻标题。以下是代码

“标题”或“新闻”列可以进行潜在语义分析(LSA)。由于“新闻”列包含更多文本,我们将使用它进行分析。由于它本质上是截断的SVD,我们可以使用LSA进行文档级分析,如文档聚类、文档分类等。或者,我们可以使用LSA来构建词向量进行词级分析。

文本摘要、信息检索和文档分类等任务是LSA最常用的领域。

以下是潜在语义分析的主要步骤:

  • 文本表示:第一个步骤是将文本数据直接插入数学表示中。通常,为此,人们会创建一个词语-文档矩阵,其中词语(单词)由行表示,文档由列表示。矩阵中的条目表示每个词语在每个文档中的频率。
  • 奇异值分解(SVD):通过将一个矩阵分解为三个不同的矩阵,这种线性代数方法可以提取矩阵的隐藏语义结构。概念-文档矩阵、奇异值矩阵和词语-概念矩阵是LSA中词语-记录矩阵的三个组成部分。
  • 降维:通过使用SVD产生的单个费用矩阵来降低原始词语-文件矩阵的维度。通过仅保留前k个奇异值和相关向量来降低维度。为了将噪声与数据分离并识别最重要的模式,此阶段至关重要。
  • 语义空间:文档的潜在语义结构由降维空间表示。在这个语义空间中,每个词语和文档现在都表示为向量。在这个空间中,相关的词语和文档彼此靠近。
  • 文档检索和相似性:可以使用LSA来确定查询与文档之间以及文档与文档之间的相似性。这使得通过分析其语义内容来执行诸如检索文档和定位相关文档之类的操作成为可能。

LSA的应用包括主题建模、文档分组、信息检索等自然语言处理领域。它未能完全掌握语言意义的复杂性,以及在需要深刻理解语境和语义的任务中可能表现不佳是其两个主要局限性。

当然,让我们更仔细地看看几个重要的潜在语义分析(LSA)组成部分。

1. 数学表示

  • 词语-文档矩阵:在词语-记录矩阵中,每一行代表语料库中找到的一个唯一词语,每一列代表一个文档。矩阵元素可以找到词语的频率或其他量化词语在文档中重要性的数值指标。
  • 稀疏矩阵:由于大多数文档只包含整个词汇表的一小部分,因此词语-文档矩阵通常是稀疏的(包含大部分零值)。对于某些算法来说,这种稀疏性可能会成为问题,而LSA有助于解决它。

2. 奇异值分解(SVD)

  • 概念和维度:SVD派生出的矩阵表示概念及其联系。具有较大奇异值的维度捕获了更重要的信息。
  • 降维:通过减少维度(仅使用前k个奇异值和向量),可以简化模型,同时保留重要的语义信息。

3. 语义空间

  • 向量表示:在降维过程之后,词语和文档在降维空间中表示为向量。这些向量捕获了词语和文档之间的语义联系。
  • 相似性度量:可以使用诸如余弦相似度之类的向量相似性度量来计算词语和文档的相似程度。在这个语义空间中,含义相关的词语或文档将具有相近的向量。

4. LSA的应用

  • 信息检索:通过捕获词语和文档之间的语义联系,LSA可用于提高信息检索系统的效率。
  • 文档聚类:通过使用LSA根据文档的潜在语义内容创建聚类,可以对相关文档进行分组。
  • 主题建模:潜在主题分析(LSA)可用于在文本集中查找潜在主题。然而,它比一些当前的topic modeling方法不太复杂。

5. 局限性

  • 可解释性差:尽管LSA能够捕获语义关联,但人们可能难以理解生成的向量。
  • 词袋模型限制:LSA使用的词袋模型忽略了词序和上下文。这可能会使完全传达自然语言的含义变得更加困难。

6. 补充和增强

  • 非负矩阵分解(NMF):在处理非负数据(如词频)时,NMF是比标准统计分布(SVD)更具可解释性的替代方案。
  • 词嵌入:捕获更丰富的语义联系和上下文信息的现代方法已变得流行,例如基于Transformer的模型和词嵌入(例如,Word2Vec、GloVe)。

7. 词嵌入与LSA

  • 上下文信息:LSA依赖全局统计,而词嵌入则考虑周围的词语来捕获上下文信息。
  • 数据要求:词嵌入可以在大量无标签数据上进行训练,而LSA需要一个词语-文档矩阵。
  • 可解释性:词嵌入的可解释性不如LSA,LSA提供了更直接的数学解释。

结论

总之,生成的语义空间使得将词语和文档表示为向量成为可能,这使得诸如主题建模、文档聚类和信息检索等项目的工作更加容易。

LSA已被广泛使用,并在提高各种文本相关任务的性能方面取得了成功。它依赖于忽略上下文和词语顺序的词袋模型,以及其无法实现生成向量的缺点。

随着时间的推移,越来越复杂的技术,如词嵌入和基于Transformer的模型越来越受欢迎。这些技术提供了更详细的上下文和语义联系的表示。尽管有这些发展,在需要对潜在语义结构进行更简单、更直观的描述的情况下,LSA仍然是一个有用的工具。

总而言之,尽管LSA为自然语言处理的发展做出了重大贡献,但如今,从业者和研究人员可以使用更多样化的技术和模型,每种技术和模型都有其独特的优点和缺点。哪种技术是最好的,取决于手头工作的具体要求以及正在分析的数据类型。