赞
踩
在自然语言处理领域,文本数据的处理是一项至关重要的任务。而在处理文本数据时,分词是一个必不可少的步骤,它将文本拆分成有意义的词语或短语,为后续的文本分析和挖掘奠定了基础。然而,传统的分词方法往往会将一些并不具备实质信息的词语也一并纳入考量,而这些词语往往被称为停用词。
停用词是指在文本处理过程中被忽略的词语,因为它们通常是高频出现且缺乏实际含义的词汇,如“的”、“了”、“和”等。在构建文本分析模型时,停用词的存在可能会干扰模型的准确性和效率,影响到对文本数据的深入理解和挖掘。
因此,建立一个有效的停用词库并将其应用于文本分析过程中变得至关重要。本文将探讨如何通过建立停用词库来优化分词,从而提升主题模型中的LDA(Latent Dirichlet Allocation)模型的性能。
除停用词在自然语言处理中是一个重要的步骤,它有以下几个好处
深入Spark与LDA:大规模文本主题分析实战 - 掘金 (juejin.cn)
上述博客对景区游客评价文本进行了初步分析和LDA建模,但是因为建模效果并不好,下面我们将从建立停用词词库来优化分词以达到优化模型的角度来展示。
在此之前停用表选择的是nltk的中文停用词表,但主题提取后的效果并不好,还是出现了停用词“一个”,于网上搜索资料在GitHub中找到以下开源库:
https://github.com/goto456/stopwords
于博客中找到以下停用词表,拥有上千条停用词
最全中文停用词表(可直接复制)_停用词库-CSDN博客
将其放在项目中
将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)
重新运行后
更加合理。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。