文本数据挖掘情感分析简单实例
时间: 2023-08-23 12:05:51 浏览: 157
情感分析是文本数据挖掘中的一项重要任务,它可以帮助我们对文本数据进行情感倾向性的判断。下面,我将给你一个简单的情感分析实例,帮助你更好地理解。
首先,我们需要准备一个文本数据集,这里我们以影评数据集为例。该数据集包含了一些电影的评论文本以及对应的情感标签(正面或负面)。
然后,我们需要进行数据预处理,包括分词、去停用词等操作,以便于后续的特征提取和模型训练。这里,我们可以使用 Python 中的 NLTK 库来进行预处理。代码如下:
```python
import nltk
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
# 加载停用词
stop_words = set(stopwords.words('english'))
# 分词和去停用词
def tokenize(text):
tokens = word_tokenize(text.lower())
tokens = [t for t in tokens if t.isalpha()]
tokens = [t for t in tokens if not t in stop_words]
return tokens
# 加载数据集
data = []
with open('reviews.txt', 'r') as f:
for line in f:
text, label = line.strip().split('\t')
tokens = tokenize(text)
data.append((tokens, label))
```
接下来,我们需要对文本数据进行特征提取,常用的方法有词袋模型和 TF-IDF 等。这里我们使用词袋模型来进行特征提取。代码如下:
```python
from sklearn.feature_extraction.text import CountVectorizer
# 构建词袋模型
vectorizer = CountVectorizer(tokenizer=lambda x: x, preprocessor=lambda x: x)
X = vectorizer.fit_transform([d[0] for d in data])
y = [d[1] for d in data]
```
最后,我们可以使用机器学习算法来训练情感分析模型。这里,我们使用朴素贝叶斯算法来训练模型。代码如下:
```python
from sklearn.naive_bayes import MultinomialNB
from sklearn.model_selection import cross_val_score
# 训练模型
clf = MultinomialNB()
scores = cross_val_score(clf, X, y, cv=5)
print('Accuracy:', scores.mean())
```
运行完这段代码后,我们可以得到模型的准确率,即 5 折交叉验证的平均准确率。
以上就是一个简单的文本数据挖掘情感分析实例,希望能够对你有所帮助。
阅读全文