NLP spacy中的语言模型。词嵌入语言模型的加载时间

时间:2019-04-23 17:33:43

标签: python model nlp spacy vector-space

我正在使用python和NLP软件包Spacy学习NLP。

Spacy提供了4种英语语言模型:

1)en_core_web_sm(小)10MB

2)en_core_web_md(中)91MB 685k密钥,20k唯一矢量(300个维度)

3)en_core_web_lg(大)788MB 685k密钥,685k唯一矢量(300个维度)

4)en_vectors_web_lg(大)631MB,包括矢量,1070971键,1070971个唯一矢量(300个维度)

我认为使用更大的模型(更多的MB)创建NLP类文档会花费更长的时间。但是事实并非如此。

我正在使用这4个模型将大约200页的小说“ Dracula”传递给类构造函数,并计算创建类所花费的时间。这是代码和时间。

import spacy
start=time.time()

nlp_en =spacy.load('en')
doc_en = nlp_en(dracula_book)
end1 = time.time()
time1=end1-start
print('time to load  en  ',time1)

nlp_en_sm = spacy.load('en_core_web_sm')
doc_en_sm = nlp_en_sm(dracula_book)
end2 = time.time()
time2=end2-end1
print('time to load  en_core_web_sm  ',time2)

nlp_en_md = spacy.load('en_core_web_md')
doc_en_md = nlp_en_md(dracula_book)
end3= time.time()
time3=end3-end2
print('time to load  en_core_web_md  ',time3)

nlp_en_lg = spacy.load('en_core_web_lg')
doc_en_lg = nlp_en_lg(dracula_book)
end4= time.time()
time4=end4-end3
print('time to load en_core_web_lg ',time4)

nlp_en_vecs =spacy.load('en_vectors_web_lg')
doc_en_vecs = nlp_en_vecs(dracula_book)
end5= time.time()
time5=end5-end4
print('time to load  en_vectors_web_lg  ',time5)

代码基本上会加载一个模型,并将文本传递给类。

时间结果如下(以秒为单位):

在类en 31.46中加载文档的时间

在类en_core_web_sm 32.88中加载文档的时间

在类en_core_web_md 53.25中加载文档的时间

在类en_core_web_lg 45.04中加载文档的时间

在类en_vectors_web_lg 16.61中加载文档的时间

问题是,如果模型需要花费相同的时间来加载,为什么我要得到一个单词少的模型?一个较小的。 第一个模型(我想是为了使其更小)没有提供词向量。同样,如果创建类的运行时间比加载矢量附带的最后一个模型的运行时间还要长,那么为什么还要放弃矢量这个词呢?

感谢您的回答。

0 个答案:

没有答案