#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 从词向量模型中提取文本特征向量
import warnings
warnings.filterwarnings(action='ignore', category=UserWarning, module='gensim') # 忽略警告
import numpy as np
import pandas as pd
from gensim.models import word2vec
# 返回特征词向量
def getWordVecs(wordList, model):
vecs = []
for word in wordList:
word = word.replace('\n', '')
# print word
try:
vecs.append(model[word])
except KeyError:
continue
return np.array(vecs, dtype='float') # 返回一个二维numpy数组
# 构建文档词向量
def buildVecs(filename, model):
fileVecs = []
contents = pd.read_table(filename, header=None, index_col=None)
for line in contents[0]:
wordList = line.split(' ')
vecs = getWordVecs(wordList, model)
if len(vecs) > 0:
vecsArray = sum(np.array(vecs)) / len(vecs) # mean 等价于np.average(vecs)
fileVecs.append(vecsArray)
return fileVecs
if __name__ == '__main__':
#加载word2vec模型
model = word2vec.Word2Vec.load(r'F:\t\test\wiki_corpus.model')
posInput = buildVecs(r'F:\t\test\pos_jieba.csv', model)
negInput = buildVecs(r'F:\t\test\neg_jieba.csv', model)
# use 1 for positive sentiment, 0 for negative
Y = np.concatenate((np.ones(len(posInput)), np.zeros(len(negInput))))
X = posInput[:]
for neg in negInput:
X.append(neg)
X = np.array(X)
# write in file
df_x = pd.DataFrame(X)
df_y = pd.DataFrame(Y)
data = pd.concat([df_y, df_x], axis=1)
# print data
data.to_csv(r'F:\t\test\2000_data.csv')
word2vec提取特征向量
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- Spark MLlib 提供三种文本特征提取方法,分别为TF-IDF、Word2Vec以及CountVectori...
- Spark MLlib机器学习开发指南(5)--特征提取,转换,选择--Word2Vec 翻译自Word2Vec,...
- TF-IDF TF-IDF:是一种加权技术。采用一种统计方法,根据字词在文本中出现的次数和在整个语料中出现的文档频...