赞
踩
- import os
-
- import jieba
- # 读取训练数据
- pos_file_list = os.listdir('data/pos')
- neg_file_list = os.listdir('data/neg')
- pos_file_list = [f'data/pos/{x}' for x in pos_file_list]
- neg_file_list = [f'data/neg/{x}' for x in neg_file_list]
- pos_neg_file_list = pos_file_list + neg_file_list
- # 分词
- for file in pos_neg_file_list:
- with open(file, 'r', encoding='utf-8') as f:
- text = f.read().strip() # 去读文件,并去除空格
- text_cut = jieba.cut(text) # 使用jieba进行分词
-
- result = ' '.join(text_cut) # 把分词结果用空格组成字符串
-
- with open('test.txt', 'a', encoding='utf-8') as fw:
- fw.write(result) # 把分好的词写入到新的文件里面
- pass
- pass
- pass
-
准备好分词后的文件,在一般的NLP处理中,会需要去停用词。由于word2vec的算法依赖于上下文文,而上下文有可能就是停用词。因此对于word2vec,我们可以不用去停用词
现在我们可以直接读分词后的文件到内存。这里使用了word2vec提供的LineSentence类来读文件,然后套用word2vec的模型
- from gensim.models import word2vec
- sentences = word2vec.LineSentence('test.txt')
- model = word2vec.Word2Vec(sentences, hs=1, min_count=1, window=3, size=100)
gensim生成的模型有三种:
第一种是 默认的model文件(可以继续 进行tuning)
第二种是bin文件(c风格)
第三种是 txt文件(比较大)
from gensim.models import Word2Vec
- # 第一种
- model = Word2Vec.load(word2vec.model)
- model.save('word2vec.model')
- # 第二种
- model = gensim.models.KeyedVectors.load_word2vec_format('word2vec.bin',binary=True)
- model.wv.save_word2vec_format('word2vec.bin')
- # 第三种
- gensim.models.KeyedVectors.load_word2vec_format('word2vec.txt',binary=False)
- model.wv.save_word2vec_format('word2vec.txt')
参考连接:
使用 gensim 训练词向量_a857553315的博客-CSDN博客
gensim库word2vec使用 - hziwei - 博客园
python实现gensim.word2vec模型训练实例_WxyangID的博客-CSDN博客_python word2vec 模型
Python gensim库使用word2vec 加载和保存模型、在预训练基础上训练自己的预料_sinat_28375239的博客-CSDN博客
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。