from numpy import linalg as la from numpy import mat import matplotlib import matplotlib.pyplot as plt #共现矩阵 x=[[0,1,0,2,0,0], [1,0,1,0,0,0], [0,1,0,0,0,0], [2,0,0,0,1,1], [0,0,0,1,0,0], [0,0,0,1,0,0]] #通过SVD实现分解,使用U来表征向量。 u,sigma,vt=la.svd(mat(x)) print(u) #词的列表 x_word=[u'我',u'喜欢',u'大数据',u'爱',u'运动',u'摄影'] #画图 通过u的矩阵(前两列分别做 x y轴) 贴上word的标签 #把矩阵转换为list u_list=u.tolist() #print(u_list) #中文字符展示 matplotlib.rcParams['font.sans-serif'] = ['SimHei'] matplotlib.rcParams['font.family'] = 'sans-serif' #设置x轴 y轴的范围 plt.axis([min(u_list[:1][0])-1,max(u_list[:1][0])+1,min(u_list[:2][1])-1,max(u_list[:2][1])+1]) for x,y,word in zip(u_list[:1][0],u_list[:2][1],x_word): plt.text(x+0.3,y+0.3,word,fontsize=10.5) p