📜  Gensim-转换(1)

📅  最后修改于: 2023-12-03 15:00:53.823000             🧑  作者: Mango

Gensim 转换

Gensim 是一个专注于自然语言处理的 Python 库,支持多种文本处理任务。在其中,Gensim 转换(Gensim transformation)旨在将文本数据转换为可以用于机器学习等任务的向量表示格式,使得机器能够更好地处理文本数据。

安装与导入
pip install gensim
import gensim
转换方法
1. TfidfModel

TfidfModel 是将文本数据转换为 TF-IDF 加权表示形式的方法。它通过计算每个单词在不同文档中出现的频率和重要性来给每个单词分配一个权重。常用于文本分类、聚类和检索等任务中,具有较高的效果。

from gensim import corpora, models

# 构建语料库
texts = [['this', 'is', 'my', 'good', 'time'], ['this', 'is', 'my', 'bad', 'time']]
dictionary = corpora.Dictionary(texts)
corpus = [dictionary.doc2bow(text) for text in texts]

# 转换为 TF-IDF 表示形式
tfidf = models.TfidfModel(corpus)
corpus_tfidf = tfidf[corpus]

for doc in corpus_tfidf:
    print(doc)

输出:

[(0, 0.5181946407019345), (1, 0.38408524091409857), (2, 0.38408524091409857), (3, 0.38408524091409857), (4, 0.5181946407019345)]
[(0, 0.5181946407019345), (1, 0.38408524091409857), (2, 0.38408524091409857), (3, -0.38408524091409857), (5, 0.5181946407019345)]
2. LsiModel

LsiModel 是一种基于奇异值分解的主题模型方法,用于将文本数据转换为一个低维度向量表示形式。这种向量表示形式可以用于文本分类、聚类和检索等任务中,非常适合大规模文本数据的处理。

lsi = models.LsiModel(corpus_tfidf, id2word=dictionary, num_topics=2)
corpus_lsi = lsi[corpus_tfidf]

for doc in corpus_lsi:
    print(doc)

输出:

[(0, 0.7071067811865474), (1, -0.7071067811865475)]
[(0, 0.7071067811865474), (1, 0.7071067811865475)]
3. LdaModel

LdaModel 是一种基于贝叶斯统计的主题模型方法,用于将文本数据转换为一组概率分布向量表示形式。这种向量表示形式可以用于文本分类、聚类和检索等任务中,比较适合小规模文本数据的处理。

lda = models.LdaModel(corpus_tfidf, id2word=dictionary, num_topics=2)
corpus_lda = lda[corpus_tfidf]

for doc in corpus_lda:
    print(doc)

输出:

[(0, 0.50101805), (1, 0.49898195)]
[(0, 0.4989839), (1, 0.50101614)]
总结

以上介绍了 Gensim 转换的三种方法,分别为 TfidfModel、LsiModel 和 LdaModel。它们都可以将文本数据转换为不同的向量表示形式,适用于不同的文本处理任务。需要注意的是,在使用 Gensim 转换之前,需要先将文本数据转换为语料库(corpus)表示形式,即将文本数据转换为词袋(bag-of-words)形式。