trainWordEmbedding

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

Описание

пример

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

пример

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

пример

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

Примеры

свернуть все

Обучите встраивание слова размерности 100 использований текстового файла в качестве примера 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: ["and"    "the"    "to"    "my"    "of"    "i"    ...    ]

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

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

Figure contains an axes object. The axes object contains an object of type textscatter.

Обучите встраивание слова с помощью данных в качестве примера 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: ["thy"    "thou"    "love"    "thee"    "doth"    ...    ]

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

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

Figure contains an axes object. The axes object contains an object of type textscatter.

Загрузите данные в качестве примера. Файл 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: ["thy"    "thou"    "love"    "thee"    "doth"    ...    ]

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

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

Figure contains an axes object. The axes object contains an object of type textscatter.

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

свернуть все

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

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

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

Аргументы name-value

Задайте дополнительные разделенные запятой пары 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