添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
发呆的花生  ·  GDB error: not in ...·  3 月前    · 
成熟的橡皮擦  ·  新闻中心-未势能源·  5 月前    · 
淡定的柠檬  ·  python – 学习博客·  1 年前    · 
文本分析|网络舆情之聚类分析

文本分析|网络舆情之聚类分析

1 个月前

前面有两篇文章分别是关于文本处理中的 词频 情感 分析,本篇文章进一步深入分析,主要是文本聚类分析。

数据集还是用之前商城网购评论的 数据集 ,利用DBSCAN算法,聚类分析客户评论内容,把杂乱无章的评论分门别类。

一、导入数据

#导入基础包
import pandas as pd
import numpy as np
import os 
import jieba
#读取数据集
df = pd.read_csv('C:/Users/dwh/Downloads/评论数据.csv')
df.head(10)

二、分词处理

这里仍利用jieba对评论文本进行分字处理。

#对评论分词处理
data = df['content'].apply(lambda x:' '.join(jieba.lcut(x)) )
data.head(10)

可以看出评论文本内容,已经被拆分为词语。

# 利用TF-IDF,文本向量转化
from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer = TfidfVectorizer(analyzer='word', 
                             token_pattern=r"(?u)\b\w+\b",     
                             min_df = 5, 
                             max_features=100000,
                             ngram_range=(1,2))
vec_word = vectorizer.fit(data)
#查看词典
vec_word.vocabulary_

TF-IDF 算法通过分配权重来反映每个词的重要程度,根据权重对一篇文本中的所有词语从高到低进行排序,权重越高说明重要性越高,排在前几位的词就可以作为文本的关键词,所以 TF-IDF 算法可以用来提取关键词。

三、聚类分析

这里主要利用DBSCAN算法,它是一个比较有代表性的基于密度的聚类算法。这类密度聚类算法一般假定类别可以通过样本分布的紧密程度决定,同一类别的样本,他们之间紧密相连,在该类别任意样本周围不远处一定有同类别的样本存在。

# 利用DBSCAN算法训练模型
from sklearn.cluster import DBSCAN
tfidf_matrix= vec_word.transform(data)
cluster = DBSCAN(eps=0.90, min_samples=5).fit(tfidf_matrix)
#查看群组个数
len(pd.Series(cluster.labels_).value_counts())

可以看出,模型把评论分为16个群组。

#查看每个群组样本数量
pd.Series(cluster.labels_).value_counts()
# 聚类标签合并到原始数据上
df['labels_'] = cluster.labels_
#查看各评论对应标签
df[['_id', 'content', 'labels_']]
#抽样查看某类标签下评论内容
#查看标签1