用python写商品评价信息分析
时间: 2023-07-19 16:43:32 浏览: 56
商品评价信息分析可以通过Python中的自然语言处理(NLP)技术来实现。下面是一个基于Python的商品评价信息分析的代码示例:
```
import pandas as pd
import numpy as np
import re
import nltk
from nltk.corpus import stopwords
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.decomposition import LatentDirichletAllocation
# 导入数据
df = pd.read_csv('product_reviews.csv')
# 数据清洗
df.dropna(inplace=True)
df['review'] = df['review'].apply(lambda x: re.sub('[^a-zA-Z]', ' ', x))
df['review'] = df['review'].apply(lambda x: x.lower())
nltk.download('stopwords')
stop_words = set(stopwords.words('english'))
df['review'] = df['review'].apply(lambda x: ' '.join([word for word in x.split() if word not in stop_words]))
# 特征提取
vectorizer = CountVectorizer(max_df=0.95, min_df=2, max_features=1000, ngram_range=(1, 2))
X = vectorizer.fit_transform(df['review'])
# LDA主题建模
lda_model = LatentDirichletAllocation(n_components=5, random_state=42)
lda_model.fit(X)
feature_names = vectorizer.get_feature_names()
# 输出每个主题的关键词
for index, topic in enumerate(lda_model.components_):
top_keywords = [feature_names[i] for i in topic.argsort()[:-10 - 1:-1]]
print(f'Topic {index}: {" ".join(top_keywords)}')
# 输出每个评价对应的主题
topic_values = lda_model.transform(X)
df['topic'] = topic_values.argmax(axis=1)
print(df[['review', 'topic']])
```
以上代码的流程如下:
1. 导入数据,其中每一行表示一个评价。
2. 对评价文本进行清洗,去除数字和标点符号,转换为小写,去除停用词。
3. 使用CountVectorizer提取特征,将文本转换为向量表示。
4. 使用LatentDirichletAllocation进行LDA主题建模,得到每个主题的关键词。
5. 输出每个评价对应的主题。
需要注意的是,这只是一个简单的示例代码,实际应用中可能需要进行更复杂的数据清洗和特征提取,同时LDA主题建模的结果需要进行分析和解释。