trainWordEmbedding

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

Синтаксис

emb = trainWordEmbedding(filename)
emb = trainWordEmbedding(documents)
emb = trainWordEmbedding(___,Name,Value)

Описание

пример

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: 0        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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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