利用LDA主题模型、Word2Vec词向量模型与TextRank相融合的关键词抽取算法获取火锅店用户评价文本中的关键词的python代码
时间: 2024-02-03 14:15:51 浏览: 143
以下是一个示例代码,展示如何利用LDA主题模型、Word2Vec词向量模型与TextRank相融合的关键词抽取算法获取火锅店用户评价文本中的关键词。
```python
import jieba
import gensim
from gensim.models import LdaModel
from gensim import corpora
from textrank4zh import TextRank4Keyword
# 加载停用词表
stopwords = []
with open('stopwords.txt', 'r', encoding='utf-8') as f:
for line in f:
stopwords.append(line.strip())
# 加载LDA模型
lda_model = LdaModel.load('lda_model.model')
# 加载Word2Vec模型
w2v_model = gensim.models.Word2Vec.load('w2v_model.model')
# 加载TextRank模型
tr4kw = TextRank4Keyword()
# 处理文本
text = '这家火锅店的羊肉很好吃,服务也不错,环境很舒适。但是价格有点贵,希望能优惠一下。'
# 分词
seg_list = jieba.cut(text)
# 过滤停用词
seg_list = [word for word in seg_list if word not in stopwords]
# 获取关键词
keywords = []
# 利用LDA模型获取关键词
bow = lda_model.id2word.doc2bow(seg_list)
topic_list = lda_model.get_document_topics(bow)
for topic in topic_list:
topic_words = lda_model.show_topic(topic[0])
for word in topic_words:
keywords.append(word[0])
# 利用Word2Vec模型获取关键词
for word in seg_list:
try:
similar_words = w2v_model.wv.most_similar(word, topn=3)
for similar_word in similar_words:
keywords.append(similar_word[0])
except KeyError:
pass
# 利用TextRank模型获取关键词
tr4kw.analyze(text, lower=True, window=2)
keywords += tr4kw.get_keywords(10, word_min_len=2)
# 去重
keywords = list(set(keywords))
print(keywords)
```
这个示例代码中,我们首先加载了停用词表、LDA模型、Word2Vec模型和TextRank模型。然后,我们对输入的文本进行分词,并过滤掉停用词。接着,我们利用LDA模型、Word2Vec模型和TextRank模型分别获取关键词,并将它们合并起来去重。最后,我们打印出获取到的关键词。
阅读全文