从京东收集商品的评论语料,进行情感类别标注,并抽取情感词汇 python代码
时间: 2024-04-18 17:33:11 浏览: 110
Python 实现电商评论数据的情感分析 Python源码
要从京东收集的商品评论语料中进行情感类别标注并抽取情感词汇,你可以使用Python中的一些自然语言处理工具和库。下面是一个示例代码,使用NLTK库进行情感类别标注和情感词汇抽取:
```python
import nltk
import pandas as pd
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
from nltk.sentiment import SentimentIntensityAnalyzer
# 下载必要的NLTK数据
nltk.download('vader_lexicon')
nltk.download('stopwords')
nltk.download('punkt')
def extract_sentiment_words(text):
# 初始化情感强度分析器
sid = SentimentIntensityAnalyzer()
# 分词并移除停用词
stop_words = set(stopwords.words('chinese'))
word_tokens = word_tokenize(text)
filtered_tokens = [w for w in word_tokens if not w in stop_words]
# 对每个单词进行情感分析,并抽取情感词汇
sentiment_words = []
for word in filtered_tokens:
sentiment_score = sid.polarity_scores(word)
if sentiment_score['compound'] != 0.0: # 根据情感强度判断是否为情感词汇
sentiment_words.append(word)
return sentiment_words
# 读取评论数据
df = pd.read_csv('comments.csv')
# 添加情感类别列
df['sentiment'] = ''
# 对每条评论进行情感类别标注和情感词汇抽取
for index, row in df.iterrows():
comment = row['comment']
sentiment_words = extract_sentiment_words(comment)
df.at[index, 'sentiment'] = 'positive' if len(sentiment_words) > 0 else 'negative'
# 保存带有情感类别的评论数据
df.to_csv('comments_with_sentiment.csv', index=False)
```
请注意,这段代码假设你已经将京东的商品评论数据保存在名为`comments.csv`的CSV文件中,并且该文件包含一个名为`comment`的列来存储评论文本。代码将使用NLTK库中的`SentimentIntensityAnalyzer`进行情感分析,使用`stopwords`库移除停用词,使用`word_tokenize`函数进行分词。最后,代码将添加一个名为`sentiment`的列来存储情感类别,并将带有情感类别的评论数据保存在名为`comments_with_sentiment.csv`的CSV文件中。
你可以根据需要修改代码以适应你的具体任务和数据。
阅读全文