词共现矩阵:
import numpy as np
words = ["I", "like", "enjoy","deep" ,"learnig" , "NLP"," flying","."]
X = np.array([
[0,2,1,0,0,0,0,0],
[2, 0,0,1,0,1,0,0],
[1,0,0,0,0,0,1,0],
[0,1,0,0,1,0,0,0],
[0,0,0,1,0,0,0,1],
[0,1,0,0,0,0,0,1],
[0,0,1,0,0,0,0,1],
[0,0,0,0,1,1,1,0]])
la = np.linalg
U,s, Vh = la.svd(X,full_matrices=False)
# SVD 降维
import matplotlib.pyplot as plt
for i in range( len (words) ) :
plt.text(U[i,0],U[i,1], words [i])
plt.xlim(-0.8,0.2)
plt.ylim(-0.75,0.75)
plt.show()