我有一个正在构建的Word2Vec模型,我在那里有一个大约3万个单词的vocab_list。我有一个约150k的句子列表(sentence_list)。我正在尝试从vocab_list中未包含的句子中删除标记(单词)。任务似乎很简单,但是使用下面的代码嵌套循环和重新分配内存很慢。此任务耗时约。运行1小时,所以我不想重复。
有没有更干净的方法来尝试这种方法?
import numpy as np
from datetime import datetime
start=datetime.now()
timing=[]
result=[]
counter=0
for sent in sentences_list:
counter+=1
if counter %1000==0 or counter==1:
print(counter, 'row of', len(sentences_list), ' Elapsed time: ', datetime.now()-start)
timing.append([counter, datetime.now()-start])
final_tokens=[]
for token in sent:
if token in vocab_list:
final_tokens.append(token)
#if len(final_tokens)>0:
result.append(final_tokens)
print(counter, 'row of', len(sentences_list),' Elapsed time: ', datetime.now()-start)
timing.append([counter, datetime.now()-start])
sentences=result
del result
timing=pd.DataFrame(timing, columns=['Counter', 'Elapsed_Time'])