Я хочу обучить модель Fasttext на Python с помощью библиотеки gensim. Во-первых, я должен токенизировать каждое предложение в его слова, тем самым преобразовывая каждое предложение в список слов. Затем этот список должен быть добавлен к окончательному списку. Поэтому в конце у меня будет вложенный список, содержащий все токенизированные предложения:
word_punctuation_tokenizer = nltk.WordPunctTokenizer()
word_tokenized_corpus = []
for line in open('sentences.txt'):
new = line.strip()
new = word_punctuation_tokenizer.tokenize(new)
if len(new) != 0:
word_tokenized_corpus.append(new)
Затем модель должна быть построена следующим образом:
embedding_size = 60
window_size = 40
min_word = 5
down_sampling = 1e-2
ft_model = FastText(word_tokenized_corpus,
size=embedding_size,
window=window_size,
min_count=min_word,
sample=down_sampling,
sg=1,
iter=100)
Однако количество предложений в word_tokenized_corpus очень велико, и программа не может с этим справиться. Возможно ли, что я обучаю модель, давая ей каждое токенизированное предложение одно за другим, например следующее:
for line in open('sentences.txt'):
new = line.strip()
new = word_punctuation_tokenizer.tokenize(new)
if len(new) != 0:
ft_model = FastText(new,
size=embedding_size,
window=window_size,
min_count=min_word,
sample=down_sampling,
sg=1,
iter=100)
Имеет ли это какое-либо значение для окончательных результатов? Можно ли обучать модель без создания такого большого списка и хранения его в памяти?