利用TSNE将word2vec词向量降维并显示

import numpy as np
from sklearn.manifold import TSNE
import matplotlib.pyplot as plt
import gensim
import matplotlib as mpl

# 若要显示中文字体则取消注释下面两行
# mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定中文字体
# mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题

def plot_with_labels(low_dim_embs, labels, filename):   # 绘制词向量图
    assert low_dim_embs.shape[0] >= len(labels), 'More labels than embeddings'
    print('绘制词向量中......')
    plt.figure(figsize=(10, 10))  # in inches
    for i, label in enumerate(labels):
        x, y = low_dim_embs[i, :]
        plt.scatter(x, y)	# 画点,对应low_dim_embs中每个词向量
        plt.
在训练中文词向量进行可视化的过程中,可以按照以下步骤进行操作: 1. 准备数据:首先,需要准备一个包含大量中文文本的语料库作为训练数据。可以使用已有的中文语料库,或者自己收集相关的中文文本数据。 2. 数据预处理:对于中文文本数据,需要进行一些预处理操作,例如分词、去除停用词、去除标点符号等。可以使用分词工具(如jieba)来进行中文分词,根据需要进行其他预处理操作。 3. 训练词向量模型:使用Word2Vec算法对预处理后的中文文本数据进行训练,得到词向量模型。可以使用Python中的gensim库来实现Word2Vec算法的训练。 4. 可视化词向量:将训练得到的词向量进行可视化,可以使用t-SNE算法将高词向量到二或三空间,使用可视化工具(如matplotlib)进行展示。 下面是一个示例代码,演示了如何使用Word2Vec训练中文词向量进行可视化: ```python import jieba from gensim.models import Word2Vec from sklearn.manifold import TSNE import matplotlib.pyplot as plt # 准备数据 corpus = [ "我喜欢吃苹果", "苹果是一种水果", "我喜欢吃香蕉", "香蕉是一种水果", "我喜欢吃橘子", "橘子是一种水果" ] # 数据预处理 sentences = [list(jieba.cut(sentence)) for sentence in corpus] # 训练词向量模型 model = Word2Vec(sentences, size=100, window=5, min_count=1, workers=4) # 可视化词向量 words = model.wv.index2word[:10] # 取前10个词 word_vectors = model.wv[words] tsne = TSNE(n_components=2) word_vectors_tsne = tsne.fit_transform(word_vectors) plt.figure(figsize=(10, 6)) for i, word in enumerate(words): x, y = word_vectors_tsne[i] plt.scatter(x, y) plt.annotate(word, xy=(x, y), xytext=(5, 2), textcoords='offset points', ha='right', va='bottom') plt.show() ``` 这段代码首先准备了一个包含若干中文句子的语料库,然后使用jieba进行分词,接着使用Word2Vec算法训练词向量模型。最后,使用t-SNE算法将词向量到二空间,使用matplotlib进行可视化展示。
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值