利用gensim生成词袋模型(基于频次和基于TF-IDF)

前言

参考文献:胡盼盼编著. 自然语言处理从入门到实战[M]. 中国铁道出版社, 2020.

最近在学习文本表示的一种最简单方式——词袋模型,书中给出了使用gensim生成词袋模型的代码,原代码就来自于这本书,我加了一些注释,方便理解代码。

一、引入库

from gensim.models import TfidfModel
from gensim.corpora import Dictionary
import jieba

二、准备数据

raw_texts = ['你站在桥上看风景','看风景的人在楼上看你',
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
由于TF-IDF模型和LDA模型是两种不同的文本处理模型,它们的表示方式也不同,因此需要将它们组合起来表示文本的特征。 下面是一个示例代码,展示如何使用Python中的gensim库实现TF-IDF模型和LDA模型的组合表示: ``` import gensim from gensim import corpora, models # 构建语料库 documents = [ "This is a sample document.", "Another sample document.", "This is the third sample document.", "And this is the fourth sample document." ] # 将文本转化为词袋表示 texts = [[word for word in document.lower().split()] for document in documents] # 构建词典 dictionary = corpora.Dictionary(texts) # 构建TF-IDF模型 corpus = [dictionary.doc2bow(text) for text in texts] tfidf = models.TfidfModel(corpus) # 构建LDA模型 lda = models.LdaModel(corpus, num_topics=2, id2word=dictionary) # 组合表示 for i in range(len(documents)): document = documents[i] text = texts[i] bow = dictionary.doc2bow(text) tfidf_vec = tfidf[bow] lda_vec = lda[bow] print("Document:", document) print("TF-IDF vector:", tfidf_vec) print("LDA vector:", lda_vec) print("Combined vector:", tfidf_vec + lda_vec) ``` 上述代码中,首先将文本转化为词袋表示,并构建词典。然后使用词典和词袋表示构建TF-IDF模型和LDA模型。最后,将每个文本的词袋表示通过TF-IDF模型和LDA模型转化为向量表示,并将它们组合起来表示为一个文本的特征向量。 需要注意的是,TF-IDF模型和LDA模型的向量表示的维度是不同的,因此在组合表示时需要对它们进行合并。一种常见的方法是将它们拼接成一个长向量。在上述示例代码中,我们简单地将它们相加作为组合表示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值