trainWordEmbedding

Обучите встраивание слова

Описание

пример

emb = trainWordEmbedding(filename) обучает встраивание слова с помощью обучающих данных, хранимых в текстовом файле filename. Файл является набором документов, хранивших в UTF-8 с одним документом на строку и словами, разделенными пробелом.

пример

emb = trainWordEmbedding(documents) обучает встраивание слова с помощью documents путем создания временного файла с writeTextDocument, и затем обучает встраивание с помощью временного файла.

пример

emb = trainWordEmbedding(___,Name,Value) задает дополнительные опции с помощью одного или нескольких аргументов пары "имя-значение". Например, 'Dimension',50 задает размерность встраивания слова, чтобы быть 50.

Примеры

свернуть все

Обучите встраивание слова размерности 20 использований текстового файла в качестве примера exampleSonnetsDocuments.txt. Этот файл содержит предварительно обработанные версии сонетов Шекспира с одним сонетом на строку и словами, разделенными пробелом.

filename = "exampleSonnetsDocuments.txt";
emb = trainWordEmbedding(filename)
Training: 100% Loss: 2.70411  Remaining time: 0 hours 0 minutes.
emb = 
  wordEmbedding with properties:

     Dimension: 100
    Vocabulary: [1x502 string]

Просмотрите встраивание слова в текстовый график рассеивания с помощью tsne.

words = emb.Vocabulary;
V = word2vec(emb,words);
XY = tsne(V);
textscatter(XY,words)

Обучите встраивание слова с помощью данных в качестве примера sonnetsPreprocessed.txt. Этот файл содержит предварительно обработанные версии сонетов Шекспира. Файл содержит один сонет на строку со словами, разделенными пробелом. Извлеките текст из sonnetsPreprocessed.txt, разделите текст в документы в символах новой строки, и затем маркируйте документы.

filename = "sonnetsPreprocessed.txt";
str = extractFileText(filename);
textData = split(str,newline);
documents = tokenizedDocument(textData);

Обучите встраивание слова с помощью trainWordEmbedding.

emb = trainWordEmbedding(documents)
Training: 100% Loss: 0        Remaining time: 0 hours 0 minutes.
emb = 
  wordEmbedding with properties:

     Dimension: 100
    Vocabulary: [1x401 string]

Визуализируйте встраивание слова в текстовый график рассеивания с помощью tsne.

words = emb.Vocabulary;
V = word2vec(emb,words);
XY = tsne(V);
textscatter(XY,words)

Загрузите данные в качестве примера. Файл sonnetsPreprocessed.txt содержит предварительно обработанные версии сонетов Шекспира. Файл содержит один сонет на строку со словами, разделенными пробелом. Извлеките текст из sonnetsPreprocessed.txt, разделите текст в документы в символах новой строки, и затем маркируйте документы.

filename = "sonnetsPreprocessed.txt";
str = extractFileText(filename);
textData = split(str,newline);
documents = tokenizedDocument(textData);

Задайте размерность встраивания слова, чтобы быть 50. Чтобы сократить количество слов, отброшенных моделью, установите 'MinCount' к 3. Чтобы обучаться для дольше, определите номер эпох к 10.

emb = trainWordEmbedding(documents, ...
    'Dimension',50, ...
    'MinCount',3, ...
    'NumEpochs',10)
Training: 100% Loss: 0        Remaining time: 0 hours 0 minutes.
emb = 
  wordEmbedding with properties:

     Dimension: 50
    Vocabulary: [1x750 string]

Просмотрите встраивание слова в текстовый график рассеивания с помощью tsne.

words = emb.Vocabulary;
V = word2vec(emb, words);
XY = tsne(V);
textscatter(XY,words)

Входные параметры

свернуть все

Имя файла, заданного как скаляр строки или вектор символов.

Типы данных: string | char

Введите документы, заданные как tokenizedDocument массив.

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Dimension',50 задает размерность встраивания слова, чтобы быть 50.

Размерность встраивания слова, заданного как разделенная запятой пара, состоящая из 'Dimension' и неотрицательное целое число.

Пример: 300

Размер окна контекста, заданного как разделенная запятой пара, состоящая из 'Window' и неотрицательное целое число.

Пример: 10

Модель, заданная как разделенная запятой пара, состоящая из 'Model' и 'skipgram' (пропустите грамм), или 'cbow' (непрерывная сумка слов).

Пример: 'cbow'

Фактор, чтобы определить слово отбрасывает уровень, заданный как разделенная запятой пара, состоящая из 'DiscardFactor' и положительная скалярная величина. Функция отбрасывает слово из входного окна с вероятностью 1-sqrt(t/f) - t/f где f является вероятностью униграммы слова и t DiscardFactor. Обычно, DiscardFactor находится в области значений 1e-3 через 1e-5.

Пример: 0.005

Функция потерь, заданная как разделенная запятой пара, состоящая из 'LossFunction' и 'ns' (отрицательная выборка), 'hs' (иерархический softmax), или 'softmax' (softmax).

Пример: 'hs'

Количество отрицательных выборок для отрицательной функции потерь выборки, заданной как разделенная запятой пара, состоящая из 'NumNegativeSamples' и положительное целое число. Эта опция только допустима когда LossFunction 'ns'.

Пример: 10

Номер эпох для обучения, заданного как разделенная запятой пара, состоящая из 'NumEpochs' и положительное целое число.

Пример: 10

Минимальное количество слов, чтобы включать во встраивание, заданное как разделенная запятой пара, состоящая из 'MinCount' и положительное целое число. Функция отбрасывает слова, которые появляются меньше, чем MinCount времена в обучающих данных из словаря.

Пример: 10

Включительно расположитесь для N-грамм подслова, заданных как разделенная запятой пара, состоящая из 'NGramRange' и вектор двух неотрицательных целых чисел [min max]. Если вы не хотите использовать N-граммы, то установленный 'NGramRange' к [0 0].

Пример: [5 10]

Начальная буква изучает уровень, заданный как разделенная запятой пара, состоящая из 'InitialLearnRate' и положительная скалярная величина.

Пример: 0.01

Уровень для обновления изучить уровня, заданного как разделенная запятой пара, состоящая из 'UpdateRate' и положительное целое число. Изучить уровень уменьшается, чтобы обнулить линейно на шагах каждый N слова, где N является UpdateRate.

Пример: 50

Уровень многословия, заданный как разделенная запятой пара, состоящая из 'Verbose' и одно из следующего:

  • 0 – Не отображайте многословный вывод.

  • 1 – Отобразите информацию о прогрессе.

Пример: 'Verbose',0

Выходные аргументы

свернуть все

Выведите встраивание слова, возвращенное как wordEmbedding объект.

Больше о

свернуть все

Факторы языка

Вход File к trainWordEmbedding функция требует слов, разделенных пробелом.

Для файлов, содержащих неанглийский текст, вы можете должны быть ввести tokenizedDocument массив к trainWordEmbedding.

Создать tokenizedDocument массив из предварительно маркируемого текста, используйте tokenizedDocument функция и набор 'TokenizeMethod' опция к 'none'.

Советы

Учебный алгоритм использует количество потоков, данных функциональным maxNumCompThreads. Чтобы изучить, как изменить количество потоков, используемых MATLAB®, смотрите maxNumCompThreads.

Введенный в R2017b