【LLms】关键词提取

1. 停用词

在文本处理和信息检索领域,停用词(Stop Words)是指在文本中出现频率较高,但通常不包含实际语义信息或对语义理解贡献较小的词汇。这些词汇通常是一些常见的功能词,如冠词、介词、连词、代词、感叹词、助动词等。以下是对停用词的详细介绍:

常见的停用词类型

  • 冠词 :如 “a”“an”“the” 等,主要用于限定名词,但对文本的主题和语义贡献不大。

  • 介词 :如 “in”“on”“at”“by”“with” 等,用于表示词语之间的关系,但在关键词提取等任务中通常可以忽略。

  • 连词 :如 “and”“or”“but”“so”“yet” 等,用于连接词语、句子或段落,但对语义理解影响不大。

  • 代词 :如 “I”“you”“he”“she”“it”“we”“they” 等,用于代替名词,但在文本分析中通常不是关键信息。

  • 感叹词 :如 “oh”“ah”“wow”“ hey” 等,主要用于表达情感,但在正式文本处理中通常不作为关键词。

  • 助动词 :如 “am”“is”“are”“was”“were”“have”“has”“had” 等,用于构成时态、语态等,但对文本的核心内容影响较小。

处理停用词的意义

  • 降低数据维度和计算量 :在大规模文本数据中,停用词的数量可能占到文本总词汇量的很大部分。去除停用词可以显著降低数据的维度和计算量,提高文本处理的效率和性能。

  • 提高模型准确性和泛化能力 :停用词通常不包含实际语义信息,对模型的训练和预测可能产生干扰。去除停用词可以让模型更关注那些具有实际意义的词汇,从而提高模型的准确性和泛化能力。

  • 提升文本分析的可解释性 :在关键词提取、文本分类等任务中,去除停用词可以让提取的关键词或特征更具代表性和可解释性,便于对模型的决策过程进行分析和理解。

示例

以下是一个包含停用词的文本示例,以及去除停用词后的结果:

  • 原始文本 :“The quick brown fox jumps over the lazy dog. The dog is very lazy and does not move.”

  • 去除停用词后 :“quick brown fox jumps lazy dog dog very lazy does move”

从上述示例可以看出,去除停用词后,文本的核心信息更加突出,关键词更加明显,便于后续的文本分析和处理。

在实际应用中,通常可以使用现成的停用词表,如 nltk.corpus.stopwordssklearn.feature_extraction.text.ENGLISH_STOP_WORDS,也可以根据具体任务和文本特点自定义停用词表。

2.  三种关键词提取算法

  • 基于 TF-IDF 算法 :TF-IDF(Term Frequency-Inverse Document Frequency)是一种统计方法,用于评估一个词在文本中的重要性。其核心思想是:如果一个词在文档中出现频率高,在语料库中出现频率低,那这个词就具有很强的区分度,对文档主题有很强的表征作用。在 Python 中,可以使用 sklearn 库中的 TfidfVectorizer 来实现,代码示例:

    • 导入库与预处理 :首先导入 necessary 库,读取文本数据,对文本做预处理,如去除停用词、标点、进行词干提取等,让文本保持相对统一格式。

    • TF-IDF 向量化 :使用 TfidfVectorizer 将文本转换为 TF-IDF 特征矩阵,指定最大特征数量、最小词频等参数,防止维度灾难,聚焦关键特征。

    • 提取关键词 :默认情况下,特征名称即为关键词候选项,获取特征名称列表,按 TFF-ID 权重降序排列,选出权重最高的若干词作最终关键词。

  • 使用 TextRank 算法 :TextRank 是一种基于图的文本排名算法,扩展了 PageRank 算法,用于提取文本中的关键词和关键句子。它把文本中的词 / 句子看作图中的节点,基于词共现、句子间的相似性等建立边与权重,通过迭代计算节点得分,得分高的即是关键词或关键句。在 Python 中,可借助 pytextrank 库来实现,过程如下:

    • 文本预处理 :读取文本,分词、词性标注、去除停用词等操作,为图构建做准备。

    • 构建图结构 :依据预处理后的词 / 句构建图,以词为节点,若两词在固定窗口内共现,就添加一条带权边,权重随共现次数增加而提升。

    • 计算节点得分 :用 TextRank 公式迭代计算每个节点的得分,直到收敛,得分反映词在文本中的重要性,按得分排序,选取得分靠前的作为关键词。

  • 通过 topicrank 方法 :topicrank 是一种基于主题建模的关键词提取方法,主要基于潜在狄利克雷分配(LDA)模型。LDA 是一种文档主题生成模型,假设文档中的每个词都来自某个潜在主题,通过对大量文档进行统计分析,挖掘出潜在主题及其对应的词汇分布。利用这一思想提取关键词,可借助 gensim 库实现,步骤如下:

    • 语料库准备与预处理 :收集包括目标文本在内的大量相关文本组成语料库,对语料库中每个文本分词、去除停用词等。

    • 建立词典与稀疏向量 :根据预处理后的语料库建立词典,将每个词映射为一个整数 ID,然后将每个文档表示为一个词频向量。

    • 训练 LDA 模型 :用 LDA 模型训练语料库,指定主题数量等参数,模型训练时会学习到每个主题的分布词。

    • 提取关键词 :对于目标文本,根据 LDA 模型推断其所属主题,然后从对应主题的词分布中选出概率最高的若干词作为关键词。

# TF-IDF 示例
from sklearn.feature_extraction.text import TfidfVectorizer

# 文本数据
corpus = [
    '文本处理是数据挖掘的重要预处理步骤',
    '掌握文本处理技巧可以提升数据挖掘效率',
    '文本处理涉及分词、去噪、特征提取等操作',
]

# 创建 TF-IDF 向量化对象,移除英语停用词,最大特征数 50
tfidf = TfidfVectorizer(stop_words='english', max_features=50)
tfidf_matrix = tfidf.fit_transform(corpus)

# 获取关键词
keywords = tfidf.get_feature_names_out()
print("TF-IDF 提取的关键词:", keywords)
# 输出结果:TF-IDF 提取的关键词: ['步骤' '处理' '技巧' '数据' '提升' '挖掘' '分词' '预处理'...]

# TextRank 示例
import pytextrank
import jieba

# 文本
text = '''\
自然语言处理是人工智能领域的一个重要方向,它让计算机理解和处理人类语言。
分词、词性标注、句法分析是自然语言处理的基础任务,文本表示方法如词袋模型、TF-IDF、词嵌入等影响模型效果。
在众多文本表示方法里,词嵌入能更精准捕捉词义间的关系,被广泛应用。
'''

# 分词
seg_list = jieba.cut(text)
text_cut = ' '.join(seg_list)

# 使用 pytextrank 提取关键词,设置文本窗口为 2,迭代次数为 100
tr = pytextrank.TextRankSSH(debug=True)
tr.get_sentences(text_cut)
tr.set_windows(2)
tr.get_edges()
tr.cal_page_rank(100)

# 输出关键词
for word in tr.get_keywords(10):
    print(word)
# 输出结果:自然语言处理 语言处理 分词 词性标注 句法分析...

# topicrank 示例
from gensim import corpora, models
import jieba

# 文本
text = '''\
自然语言处理是人工智能领域的一个重要方向,它让计算机理解和处理人类语言。
分词、词性标注、句法分析是自然语言处理的基础任务,文本表示方法如词袋模型、TF-IDF、词嵌入等影响模型效果。
在众多文本表示方法里,词嵌入能更精准捕捉词义间的关系,被广泛应用。
'''

# 分词
seg_list = jieba.cut(text)
text_cut = ' '.join(seg_list).split()

# 创建词典和语料
dictionary = corpora.Dictionary([text_cut])
corpus = [dictionary.doc2bow(text_cut)]

# 训练 LDA 模型
lda_model = models.LdaModel(corpus, num_topics=3, id2word=dictionary)

# 提取关键词
for topic in lda_model.show_topics():
    print("topic:", topic)
# 输出结果:topic: 0.0*数据 + 0.0*技术 + 0.0*分析 + 0.0*预测 + 0.0*处理...

3. TfidfVectorizerstop_words 参数

TfidfVectorizerstop_words 参数只接受以下几种类型的值:

  • 'english':表示使用英文的停用词表。

  • 一个 list:表示你自定义的停用词列表。

  • None:表示不使用停用词表。

而你传入的是 'chinese',这不是一个有效的值,因此会抛出 InvalidParameterError 错误。

解决方法

如果你想使用中文停用词表,你需要手动加载一个中文停用词列表,并将其作为 stop_words 参数的值。以下是一个示例代码,展示如何加载自定义的停用词表:

from sklearn.feature_extraction.text import TfidfVectorizer

# 自定义中文停用词表
stop_words = ['的', '了', '是', '在', '和', '就', '也', '都', '不', '以', '中', '上', '下', '左', '右', '里', '着', '对', '有', '为', '到', '我', '你', '他', '她', '它', '这', '那', '更', '还', '与', '及', '而', '但', '或者', '不过', '然后', '所以', '但是', '可是', '并且', '因此', '其实', '如果', '是否', '怎么', '什么', '真是', '真是的', '了', '吗', '呢', '吧', '啊', '呀', '哇', '哦', '呗', '啦', '呗', '嘛', '喽', '哟', '哟', '哇塞', '哇哦', '哈哈', '嘿', '哟呵', '哎呀', '哎哟', '哎呦', '哎呀呀', '哎哟哟', '哎呀哎哟', '哎哟哎呀', '哎呀哎', '哎哟哎', '哎哎呀', '哎哎哟', '哎呀喂', '哎哟喂', '哎喂', '哎', '咦', '咦咦', '咦咦咦', '咦哟', '咦哟咦', '咦哟哟', '咦哟哟哟', '咦哟哟哟哟', '咦哟哟哟哟哟', '咦哟哟哟哟哟哟', '咦哟哟哟哟哟哟哟', '咦哟哟哟哟哟哟哟哟', '咦哟哟哟哟哟哟哟哟哟', '咦哟哟哟哟哟哟哟哟哟哟', '咦哟哟哟哟哟哟哟哟哟哟哟', '咦哟哟哟哟哟哟哟哟哟哟哟哟', '咦哟哟哟哟哟哟哟哟哟哟哟哟哟', '咦哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '咦哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '咦哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '咦哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '咦哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '咦哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '咦哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '咦哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '咦哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '咦哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '咦哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '咦哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟', '嘿哟嘿', '嘿哟哟', '嘿哟嘿哟', '嘿哟哟嘿', '嘿哟哟嘿哟', '嘿哟哟哟', '嘿哟哟哟嘿', '嘿哟哟哟嘿哟', '嘿哟哟哟哟', '嘿哟哟哟哟嘿', '嘿哟哟哟哟嘿哟', '嘿哟哟哟哟哟', '嘿哟哟哟哟哟嘿', '嘿哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟', '嘿哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟嘿哟', '嘿哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟']

# 文本数据
corpus = [
    '文本处理是数据挖掘的重要预处理步骤',
    '掌握文本处理技巧可以提升数据挖掘效率',
    '文本处理涉及分词、去噪、特征提取等操作',
]

# 创建 TfidfVectorizer 对象,使用自定义的中文停用词表
tfidf = TfidfVectorizer(stop_words=stop_words, max_features=50)
tfidf_matrix = tfidf.fit_transform(corpus)

# 获取关键词
keywords = tfidf.get_feature_names_out()
print("TF-IDF 提取的关键词:", keywords)

在这个示例中,我们手动定义了一个中文停用词列表,并将其传递给 TVectorizerfidfstop_words 参数。这样就可以使用中文停用词表来处理中文文本数据了。

如果你有一个包含中文停用词的文件,也可以通过读取文件内容来加载停用词列表。例如:

# 读取中文停用词文件
with open('chinese_stop_words.txt', 'r', encoding='utf-8') as f:
    stop_words = [line.strip() for line in f.readlines()]

# 创建 TfidfVectorizer 对象,使用自定义的中文停用词表
tfidf = TfidfVectorizer(stop_words=stop_words, max_features=50)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值