【word2vec】最简单的词向量训练【词向量】

词向量训练

  • 词向量训练是nlp工作的必经之路,现在网上很多的文章都是手搓,感觉性能差的同时还麻烦,特别是不在word2vec这个方面钻研的话,我觉得大可不必手搓。
  • 技术:使用gensim中的Word2Vec足足够够了。
  • 数据:数据使用的是已经数据清洗+分词过的评论数据。
  • 简单数据处理技术:https://blog.csdn.net/GS2333/article/details/127155362

【word2vec】最简单的词向量训练【词向量】_第1张图片

代码

  • 读进来
  • 练一下
  • 存起来
def word2vec_train(text,voc_dim):
    min_out = 2  
    window_size = 4  
    cpu_count = multiprocessing.cpu_count() # cpu计数
    model = Word2Vec(vector_size=voc_dim,
                     min_count=min_out,
                     window=window_size,
                     workers=cpu_count,
                     epochs=70)
    model.build_vocab(text) # 构建语料库
    model.train(text, total_examples=model.corpus_count, epochs=70) # 训练词向量
    model.wv.save_word2vec_format('../0.model/myvector-7.vector', binary=False) # 保存 

data_path = "../0.data/train-7.csv"
data = pd.read_csv(data_path)
test_path = "../0.data/val-7.csv"
test_data = pd.read_csv(test_path)
text = []
# 这里犯傻了,先划分的数据集 忘了练词向量了
for line in data['text'].tolist():
    for word in line.split():
        text.append(word)

for line in test_data['text'].tolist():
    for word in line.split():
        text.append(word)
text = list(set(text))
embedding_dim = 128
word2vec_train(text, embedding_dim)

结束!

你可能感兴趣的:(NLP入门,word2vec,自然语言处理,机器学习)