bert_文本聚类_1

在这里插入图片描述

import torch
from transformers import AutoTokenizer, AutoModelForMaskedLM

tokenizer = AutoTokenizer.from_pretrained("bert-base-chinese")

model = AutoModelForMaskedLM.from_pretrained("bert-base-chinese")
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.decomposition import PCA
corpus = []

km = KMeans(n_clusters=2)
pca = PCA(n_components=2)
gb = open('THUOCL_animal.txt',encoding='utf-8').readlines()
w1= gb[:30]#为了方便,每个词库只取了前面30个单词
dct1=tokenizer(w1, return_tensors='pt',padding=True,max_length=6)
t1=model(**dct1)[0][:,0,:]

fb = open('THUOCL_diming.txt',encoding='utf-8').readlines()
w2=fb[:30]
dct2=tokenizer(w2, return_tensors='pt',padding=True,max_length=6)
t2=model(**dct2)[0][:,0,:]
vectors=torch.cat((t1,t2),dim=0)
vectors_ = pca.fit_transform(vectors.detach().numpy())   #降维到二维
y_ = km.fit_predict(vectors_)       #聚类
print(y_)
plt.rcParams['font.sans-serif'] = ['FangSong']
plt.scatter(vectors_[:,0],vectors_[:, 1],c=y_)   #将点画在图上
for i in range(len(corpus)):    #给每个点进行标注
    plt.annotate(s=corpus[i], xy=(vectors_[:, 0][i], vectors_[:, 1][i]),
                 xytext=(vectors_[:, 0][i] + 0.1, vectors_[:, 1][i] + 0.1))
plt.show()
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YingJingh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值