языковые модели в пространстве НЛП.Время загрузки языковых моделей для встраивания слов - PullRequest
0 голосов
/ 23 апреля 2019

Я изучаю НЛП с использованием Python и пакета NLP Spacy.

Spacy предлагает 4 языковые модели для английского языка:

1) en_core_web_sm (маленький) 10 МБ

2)en_core_web_md (средний) 91MB 685k ключей, 20k уникальных векторов (300 измерений)

3) en_core_web_lg (большой) 788MB 685k ключей, 685k уникальных векторов (300 измерений)

4) en_vectors_web_lg (большой)631 МБ, включая векторы, 1070971 ключ, 1070971 уникальных векторов (300 измерений)

Я думал, что создание документа класса NLP с использованием более крупной модели (больше МБ) займет больше времени.Но это не так.

Я передаю роман «Дракула» объемом около 200 страниц в конструктор класса, используя 4 модели, и вычисляю время, необходимое для создания класса.Это код и время.

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

Вопрос в том, что для загрузки модели требуется одно и то же время, почему я должен получить модель с меньшим количеством слов?меньший.Первая модель (я думаю, для того, чтобы она была маленькой) не содержит векторов слов.Опять же, зачем мне отказываться от векторов слов, если время создания классов еще больше, чем загрузка последней модели с векторами.

Спасибо за ответ.

...