引言:

在自然言语处理领域,文本数据的处理是一项至关重要的使命。而在处理文本数据时,分词是一个必不可少的步骤,它将文本拆分成有意义的词语或短语,为后续的文本剖析和发掘奠定了基础。然而,传统的分词办法往往会将一些并不具备本质信息的词语也一并纳入考量,而这些词语往往被称为停用词。

停用词是指在文本处理过程中被忽略的词语,由于它们通常是高频呈现且缺少实际意义的词汇,如“的”、“了”、“和”等。在构建文本剖析模型时,停用词的存在或许会搅扰模型的准确性和功率,影响到对文本数据的深化理解和发掘。

因而,树立一个有用的停用词库并将其应用于文本剖析过程中变得至关重要。本文将讨论如何经过树立停用词库来优化分词,从而提升主题模型中的LDA(Latent Dirichlet Allocation)模型的性能。

除掉停用词的优点

除停用词在自然言语处理中是一个重要的步骤,它有以下几个优点

  1. 提高处理功率:停用词通常是频频呈现的功能词或无实际意义的词语,例如介词、连词、冠词、代词等。这些词汇对于文本的意义剖析没有太大奉献,且会占据很多的存储空间和核算资源。因而,除掉停用词能够简化文本数据并提高处理功率。
  2. 削减噪声:除掉停用词能够削减文本中的噪声,使得后续的文本剖析愈加准确和有用。
  3. 突出要害信息:经过除掉停用词,能够使得文本中的要害词愈加突出,有助于提取和理解文本的主题和要害信息。

需求留意的当地

  1. 避免过度除掉:过度除掉停用词或许会导致一些重要的语境信息丢失。例如,在情感剖析中,一些常见的停用词如 “not”、“no” 等或许被保留,由于它们能够改变句子的情感倾向。
  2. 灵活处理:在某些特定的使命中,或许需求保留一些特定的停用词。例如,在问答系统中,一些常见的停用词如 “what”、“when”、“where” 等或许被保留,由于它们能够提供关于问题的重要上下文。
  3. 根据使命需求挑选停用词表:不同的使命或许需求不同的停用词表。在挑选停用词表时,需求综合考虑言语的特点、使命的领域和方针等因素。

实例

深化Spark与LDA:大规模文本主题剖析实战 – (juejin.cn)

上述博客对景区游客点评文本进行了初步剖析和LDA建模,可是由于建模效果并不好,下面咱们将从树立停用词词库来优化分词以达到优化模型的视点来展示。

在此之前停用表挑选的是nltk的中文停用词表,但主题提取后的效果并不好,仍是呈现了停用词“一个”,于网上查找材料在GitHub中找到以下开源库: github.com/goto456/sto…

停用词终究有何妙用:优化分词、精进LDA模型
于博客中找到以下停用词表,具有上千条停用词 最全中文停用词表(可直接仿制)_停用词库-CSDN博客 将其放在项目中

停用词终究有何妙用:优化分词、精进LDA模型

停用词终究有何妙用:优化分词、精进LDA模型
将nltk替换为本地的停用词表

# stop_words = set(stopwords.words('chinese'))
# 使用本地停用词表替换nltk的停用词表
with open('/opt/code/tour/stop_words_Chinese', 'r', encoding='utf-8') as f:
    stop_words = set(f.read().splitlines())
broadcastVar = spark.sparkContext.broadcast(stop_words)

重新运行后

停用词终究有何妙用:优化分词、精进LDA模型
愈加合理。