最近使用word2vec对文本进行向量化表示,然后模仿基于CNN的图像分类实现文本分类。既然是模仿图像,那就应该可以将文本用图像可视化一下,看看量化后的文本是什么样子。
python处理图像的基本模块是Image库,由于实验中使用的是python3,需要安装的图像处理库为Pillow (pip install Pillow / conda install Pillow)。词向量模型使用的是gensim的word2vec工具,具体操作见这里。
#-*-coding=utf-8-*-
from gensim import models
import numpy as np
from PIL import Image
text_width = 10
#load word2vec model
word_vector_size =25
base_model_path = './word_vector_'
modelpath = base_model_path+str(word_vector_size)
emotion_model = models.Word2Vec.load(modelpath) #加载词向量模型
#得到字符向量
def getCharVec(char):
vector = np.zeros(word_vector_size)
if char in emotion_model:
vector[0:word_vector_size] = emotion_model[char]
else: #若词汇不在词向量模型中则按正态分布随机初始化
loc,scale = 0,0.5 #均值和标准差
vector[0:word_vector_size] = np.random.normal(