利用LDA主题模型、Word2Vec词向量模型与TextRank相融合的关键词抽取算法获取火锅店用户评价文本的python代码
时间: 2024-02-03 10:15:42 浏览: 78
基于lDA模型的主题词抽取
以下是一个简单的示例代码,利用LDA主题模型、Word2Vec词向量模型与TextRank相融合的关键词抽取算法获取火锅店用户评价文本的python代码:
```python
import jieba
import gensim
import numpy as np
from gensim import corpora, models
from textrank4zh import TextRank4Keyword
# 读入数据
with open('data.txt', 'r', encoding='utf-8') as f:
data = f.read()
# 分词
words = jieba.lcut(data)
# LDA主题模型
dictionary = corpora.Dictionary([words])
corpus = [dictionary.doc2bow(words)]
lda_model = models.ldamodel.LdaModel(corpus, num_topics=5, id2word=dictionary)
# Word2Vec词向量模型
w2v_model = gensim.models.Word2Vec([words], size=100, window=5, min_count=1)
# TextRank关键词提取
tr4w = TextRank4Keyword()
tr4w.analyze(text=data, lower=True, window=2)
tr_keywords = [item.word for item in tr4w.get_keywords(num=10, word_min_len=2)]
# 组合三种方法的关键词
lda_keywords = [dictionary[i] for i in np.argsort(lda_model[corpus][0])[-10:]]
w2v_keywords = [item[0] for item in w2v_model.wv.similar_by_word('火锅', topn=10)]
keywords = set(tr_keywords + lda_keywords + w2v_keywords)
print(keywords)
```
以上代码的主要思路是:
1. 将用户评价文本进行分词,得到词汇列表。
2. 利用LDA主题模型,从词汇列表中提取出主题相关的关键词。
3. 利用Word2Vec词向量模型,从词汇列表中找到与“火锅”相关的关键词。
4. 利用TextRank关键词提取算法,从整个评价文本中提取出最重要的关键词。
5. 将三种方法提取出的关键词合并,去重后输出。
阅读全文