首先需要具备gensim包,然后需要一个语料库用来训练,这里用到的是skip-gram或CBOW方法,具体细节可以去查查相关资料,这两种方法大致上就是把意思相近的词映射到词空间中相近的位置。
语料库test8下载地址:
http://mattmahoney.net/dc/text8.zip
这个语料库是从http://blog.csdn.net/m0_37681914/article/details/73861441这篇文章中找到的。
检查语料是否需要做预处理:
将数据下载好了解压出来,在做词向量之前我们需要了解数据的存储结构,判断它是否满足gensim包里word2vec函数对输入数据的形式要求。word2vec函数的输入最好是一整篇文字,不含标点符号以及换行符。那么我们应该检查test8数据是否符合。然而双击打开test8是行不通的,因为文件过大。那么就需要我们用程序打开它。代码如下:
with open('/text8','r',encoding='utf-8') as file:
for line in file.readlines():
print(line)
程序会返回警告,内存不够,打印不出来。明显是因为有一行内容太多导致的。可以进行如下验证:
with open('/text8','r',encoding='utf-8') as file:
for line in file.readlines():
print(len(line))
输出只有一个值,表示数据只有一行,且显示这一行有100000000个字符长度。由于文件内数据结构一致&#