python高维向量的可视化_词向量可视化--[tensorflow , python]

#!/usr/bin/env python

# -*- coding: utf-8 -*-

"""

----------------------------------

Version : ??

File Name : visual_vec.py

Description :

Author : xijun1

Email :

Date : 2018/12/25

-----------------------------------

Change Activiy : 2018/12/25

-----------------------------------

"""

__author__ = 'xijun1'

from tqdm import tqdm

import numpy as np

import tensorflow as tf

from tensorflow.contrib.tensorboard.plugins import projector

import os

import codecs

words, embeddings = [], []

log_path = 'model'

with codecs.open('/Users/xxx/github/python_demo/vec.txt', 'r') as f:

header = f.readline()

vocab_size, vector_size = map(int, header.split())

for line in tqdm(range(vocab_size)):

word_list = f.readline().split(' ')

word = word_list[0]

vector = word_list[1:-1]

if word == "":

continue

words.append(word)

embeddings.append(np.array(vector))

assert len(words) == len(embeddings)

print(len(words))

with tf.Session() as sess:

X = tf.Variable([0.0], name='embedding')

place = tf.placeholder(tf.float32, shape=[len(words), vector_size])

set_x = tf.assign(X, place, validate_shape=False)

sess.run(tf.global_variables_initializer())

sess.run(set_x, feed_dict={place: embeddings})

with codecs.open(log_path + '/metadata.tsv', 'w') as f:

for word in tqdm(words):

f.write(word + '\n')

# with summary

summary_writer = tf.summary.FileWriter(log_path, sess.graph)

config = projector.ProjectorConfig()

embedding_conf = config.embeddings.add()

embedding_conf.tensor_name = 'embedding:0'

embedding_conf.metadata_path = os.path.join('metadata.tsv')

projector.visualize_embeddings(summary_writer, config)

# save

saver = tf.train.Saver()

saver.save(sess, os.path.join(log_path, "model.ckpt"))

#结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值