数据集
部分数据如下:微博id + 内容
3794120055174366 #九阳有礼 无需多滤#九阳免滤豆浆机C668SG耀世首发!智能预约免过滤,贴心配置强到飞起,让你再续温柔一小时!好豆浆,九阳造!经常在苏宁买东西,正品又实惠.相信苏宁!支持苏宁!@俏宝贝筱筱 @可妞儿的小妈咪 @爱情砖家V小K
3794120118102891 #九阳有礼 无需多滤#[新年快乐]九阳免滤豆浆机C668SG耀世首发!智能预约免过滤,贴心配置强到飞起,让你再续温柔一小时![加油啊]@想做二奶 @豆浆需要油条我需要你o @不想要你满嘴的谎言o
3794120209918455 #九阳有礼 无需多滤#九阳免滤豆浆机C668SG耀世首发!智能预约免过滤,贴心配置强到飞起,让你再续温柔一小时!好豆浆,九阳造!经常在苏宁买东西,正品又实惠.相信苏宁!支持苏宁!@爱仔妈咪 @张祥890613 @张夫人1129
3794120248499886 九阳免滤豆浆机C668SG耀世首发,生活也免滤了,活动太给力了,@桐桐宝宝爱妈咪 @专扣岩石 @我是逗逼小倪
链接:数据集及代码
提取码:lk6a
特征抽取
def load_data():
"""
加载微博文章
return id_:所有微博id列表
topics:所有文章列表
"""
f = open("train.txt","rb")
topics = []
id_ = []
#每一行 为一篇文章
#获取所有文章 和 id号
while True:
line = f.readline()
if line:
line = line.decode("utf-8")
w_id,topic = line.split("\t")
id_.append(w_id)
topics.append(topic)
else:
break
id_[0] = id_[0][1:]
print(id_[:10])
return id_,topics
def extract_features(topics):
"""
文档向量化
return X:2dim array,特征集
"""
vectorizer = TfidfVectorizer()
sparse = vectorizer.fit_transform(topics)
return sparse,vectorizer
聚类
#加载数据
id_, topics = load_data()
#抽取特征
X,vectorizer = extract_features(topics)
#训练模型
kmeans = KMeans(n_clusters=20,random_state=3)
y_pred = kmeans.fit_predict(X)
#评估模型
from sklearn.metrics import silhouette_score
score = silhouette_score(X,y_pred)
print("轮廓系数:",score)
找出每簇的中心思想
TFIDF 值越大,越能代表中心思想