通过word2vector建立语料模型model后,想要得出所有model的词以及对应向量坐标。我想要的效果是对应的词后面有对应的20个向量代表的坐标,可以轻松写入dict,但是几千个语料词需要通过Excel看,因此可以将数据全部导入csv格式:
首先,需要在model中一个词遍历全部向量,因为单单model[‘word’]得到的向量往往会在python中显示不全,以…代表了,所以要去掉省略号的话,需要将每一个word的向量再遍历。
def vec(x,model):#x是model中的每一个维度或者就叫语料的词
p=model[x] #p是每一个维度/词的向量坐标
st=[{x}] #将词x变成一个整体的list
for i in p:
#遍历x的所有向量,并且添加在x词后,成一个list
st.append(i)
return st
刚开始菜鸟如我,字符串x想要变成一个list后面以便append数组,结果发现字符串如果要变成list会导致一个词如:‘北京’,变成list=[‘北‘,’京’]。所以菜鸟这般地打算先把str变成一个tuple,然后再整体list。
最后,得到的这个st就是有单词,后面加向量的数据表。然后将之保存为csv,代码如下:
v=[]
Di=[]
for x in word:
y=vec(x,model)
Di.append(y) #得到所有词以及对应的所有向量
with open('测试数据.csv','w') as cf:
cW=csv.writer(cf,delimiter=',')
for x in Di:
cW.writerow(x)
cf.close
嗯,这次主要就是发现字符串不分割的情况,可以通过tuple转list实现;另外,就是list保存为csv其实用的是csv.writer。吖,废话太多。。