腾讯AI Lab词向量仅词向量的文本文件就达到16G,每次读入时间过长,查找资料有大佬提供高效读入的方法https://blog.csdn.net/sinat_26917383/article/details/83999966#commentBox,但是需要对腾讯词向量清洗一下,本文算是稍稍补充一下清洗数字的过程,先上代码:
#! *-- coding:utf-8 --*
from gensim.models import KeyedVectors
from tqdm import tqdm
n = 0
with open('file.txt', 'a',encoding='utf-8', errors='ignore') as w_f:
with open('F:\Tencent_AILab_ChineseEmbedding.txt', 'r',encoding='utf-8', errors='ignore')as f:
for i in tqdm(range(8824330)): #似乎不同时期下载的词向量range并不一样
data = f.readline()
a = data.split()
if i == 0:
w_f.write('8748463 200\n') #行数的写入也有可能不同
if len(a) == 201:
if not a[0].isdigit():
n=n+1
w_f.write(data)
print(n) #输出清洗后的range
#model =KeyedVectors.load_word2vec_format('file.txt', binary=False,unicode_errors='ignore')
清洗之后,按照高效读取的方法,查询大概两分钟左右。