Матрица Term Frequency-Inverse Document Frequency (tf-idf)
указывает дополнительные параметры, использующие один или несколько аргументов пары имя-значение.M = tfidf(___,Name,Value)
Создайте матрицу Term Frequency-Inverse Document Frequency (tf-idf) из модели пакета слов.
Загрузите данные примера. Файл sonnetsPreprocessed.txt содержит предварительно обработанные версии сонетов Шекспира. Файл содержит один сонет на строку со словами, разделенными пробелом. Извлечь текст из sonnetsPreprocessed.txtразделите текст на документы с новыми символами, а затем пометьте документы.
filename = "sonnetsPreprocessed.txt";
str = extractFileText(filename);
textData = split(str,newline);
documents = tokenizedDocument(textData);Создание модели сумки слов с помощью bagOfWords.
bag = bagOfWords(documents)
bag =
bagOfWords with properties:
Counts: [154x3092 double]
Vocabulary: [1x3092 string]
NumWords: 3092
NumDocuments: 154
Создайте матрицу tf-idf. Просмотрите первые 10 строк и столбцов.
M = tfidf(bag); full(M(1:10,1:10))
ans = 10×10
3.6507 4.3438 2.7344 3.6507 4.3438 2.2644 3.2452 3.8918 2.4720 2.5520
0 0 0 0 0 4.5287 0 0 0 0
0 0 0 0 0 0 0 0 0 2.5520
0 0 0 0 0 2.2644 0 0 0 0
0 0 0 0 0 2.2644 0 0 0 0
0 0 0 0 0 2.2644 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 2.2644 0 0 0 2.5520
0 0 2.7344 0 0 0 0 0 0 0
Создайте матрицу Term Frequency-Inverse Document Frequency (tf-idf) из модели пакета слов и массива новых документов.
Загрузите данные примера. Файл sonnetsPreprocessed.txt содержит предварительно обработанные версии сонетов Шекспира. Файл содержит один сонет на строку со словами, разделенными пробелом. Извлечь текст из sonnetsPreprocessed.txtразделите текст на документы с новыми символами, а затем пометьте документы.
filename = "sonnetsPreprocessed.txt";
str = extractFileText(filename);
textData = split(str,newline);
documents = tokenizedDocument(textData);Создайте модель пакета слов из документов.
bag = bagOfWords(documents)
bag =
bagOfWords with properties:
Counts: [154x3092 double]
Vocabulary: [1x3092 string]
NumWords: 3092
NumDocuments: 154
Создание матрицы tf-idf для массива новых документов с использованием коэффициента частоты обратного документа (IDF), вычисленного из bag.
newDocuments = tokenizedDocument([
"what's in a name? a rose by any other name would smell as sweet."
"if music be the food of love, play on."]);
M = tfidf(bag,newDocuments)M = (1,7) 3.2452 (1,36) 1.2303 (2,197) 3.4275 (2,313) 3.6507 (2,387) 0.6061 (1,1205) 4.7958 (1,1835) 3.6507 (2,1917) 5.0370
Загрузите данные примера. Файл sonnetsPreprocessed.txt содержит предварительно обработанные версии сонетов Шекспира. Файл содержит один сонет на строку со словами, разделенными пробелом. Извлечь текст из sonnetsPreprocessed.txtразделите текст на документы с новыми символами, а затем пометьте документы.
filename = "sonnetsPreprocessed.txt";
str = extractFileText(filename);
textData = split(str,newline);
documents = tokenizedDocument(textData);Создание модели сумки слов с помощью bagOfWords.
bag = bagOfWords(documents)
bag =
bagOfWords with properties:
Counts: [154x3092 double]
Vocabulary: [1x3092 string]
NumWords: 3092
NumDocuments: 154
Создайте матрицу tf-idf. Просмотрите первые 10 строк и столбцов.
M = tfidf(bag); full(M(1:10,1:10))
ans = 10×10
3.6507 4.3438 2.7344 3.6507 4.3438 2.2644 3.2452 3.8918 2.4720 2.5520
0 0 0 0 0 4.5287 0 0 0 0
0 0 0 0 0 0 0 0 0 2.5520
0 0 0 0 0 2.2644 0 0 0 0
0 0 0 0 0 2.2644 0 0 0 0
0 0 0 0 0 2.2644 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 2.2644 0 0 0 2.5520
0 0 2.7344 0 0 0 0 0 0 0
Можно изменить вклад коэффициентов TF и IDF в матрицу tf-idf, указав весовые формулы TF и IDF.
Чтобы игнорировать, сколько раз слово появляется в документе, используйте двоичный параметр 'TFWeight'. Создание матрицы tf-idf и набор 'TFWeight' кому 'binary'. Просмотрите первые 10 строк и столбцов.
M = tfidf(bag,'TFWeight','binary'); full(M(1:10,1:10))
ans = 10×10
3.6507 4.3438 2.7344 3.6507 4.3438 2.2644 3.2452 1.9459 2.4720 2.5520
0 0 0 0 0 2.2644 0 0 0 0
0 0 0 0 0 0 0 0 0 2.5520
0 0 0 0 0 2.2644 0 0 0 0
0 0 0 0 0 2.2644 0 0 0 0
0 0 0 0 0 2.2644 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 2.2644 0 0 0 2.5520
0 0 2.7344 0 0 0 0 0 0 0
bag - Модель входного мешка слов или мешка n-граммовbagOfWords объект | bagOfNgrams объектВходная модель сумки слов или сумки n граммов, указанная как bagOfWords объект или bagOfNgrams объект.
documents - Исходные документыtokenizedDocument массив | строковый массив слов | массив ячеек векторов символовИсходные документы, указанные как tokenizedDocument массив, строковый массив слов или массив ячеек символьных векторов. Если documents не является tokenizedDocument массив, то это должен быть вектор строки, представляющий один документ, где каждый элемент является словом. Чтобы указать несколько документов, используйте tokenizedDocument массив.
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
'Normalized',true определяет нормализацию счетчиков частот.'TFWeight' - Метод задания частотного коэффициента члена'raw' (по умолчанию) | 'binary' | 'log'Метод установки коэффициента частоты членов (TF), определяемый как разделенная запятыми пара, состоящая из 'TFWeight' и одно из следующих:
'raw' - Установите коэффициент TF в неизмененное число терминов.
'binary' - Задайте коэффициент TF для матрицы единиц и нулей, где единицы указывают, находится ли термин в документе.
'log' - Установить коэффициент TF в 1 + log(bag.Counts).
Пример: 'TFWeight','binary'
Типы данных: char
'IDFWeight' - Метод вычисления коэффициента частоты обратного документа'normal' (по умолчанию) | 'textrank' | 'classic-bm25' | 'unary' | 'smooth' | 'max' | 'probabilistic'Метод вычисления коэффициента частоты обратного документа, определяемый как разделенная запятыми пара, состоящая из 'IDFWeight' и одно из следующих:
'textrank' - Используйте взвешивание TextRank IDF [1]. Для каждого термина установите коэффициент IDF равным
log((N-NT+0.5)/(NT+0.5)) если термин встречается более чем в половине документов, где N - количество документов во входных данных и NT - количество документов во входных данных, содержащих каждый термин.
IDFCorrection*avgIDF если термин встречается в половине документов или f, где avgIDF - среднее значение IDF для всех маркеров.
'classic-bm25' - Для каждого термина установите коэффициент IDF равным log((N-NT+0.5)/(NT+0.5)).
'normal' - Для каждого термина установите коэффициент IDF равным log(N/NT).
'unary' - для каждого члена установите коэффициент IDF равным 1.
'smooth' - Для каждого термина установите коэффициент IDF равным log(1+N/NT).
'max' - Для каждого термина установите коэффициент IDF равным log(1+max(NT)/NT).
'probabilistic' - Для каждого термина установите коэффициент IDF равным log((N-NT)/NT).
где N - количество документов во входных данных и NT - количество документов во входных данных, содержащих каждый термин.
Пример: 'IDFWeight','smooth'
Типы данных: char
'IDFCorrection' - Коэффициент коррекции частоты обратного документаКоэффициент коррекции частоты обратного документа, указанный как разделенная запятыми пара, состоящая из 'IDFCorrection' и неотрицательный скаляр.
Этот параметр применяется только в том случае, если 'IDFWeight' является 'textrank'.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
'Normalized' - Возможность нормализовать подсчет терминовfalse (по умолчанию) | trueОпция для нормализации числа членов, указанная как пара, разделенная запятыми, состоящая из 'Normalized' и true или false. Если true, то функция нормализует каждый вектор числа членов в евклидовой норме.
Пример: 'Normalized',true
Типы данных: logical
'DocumentsIn' - Ориентация выходных документов'rows' (по умолчанию) | 'columns'Ориентация выходных документов в матрице подсчета частот, указанной как пара, разделенная запятыми, состоящая из 'DocumentsIn' и одно из следующих:
'rows' - Возвращает матрицу счетчиков частоты со строками, соответствующими документам.
'columns' - Возвращает транспонированную матрицу счетчиков частоты со столбцами, соответствующими документам.
Типы данных: char
'ForceCellOutput' - Индикатор принудительного возврата выходного сигнала в виде массива ячеекfalse (по умолчанию) | trueИндикатор принудительного возврата выходного сигнала в виде массива ячеек, заданного как пара, разделенная запятыми, состоящая из 'ForceCellOutput' и true или false.
Типы данных: logical
M - Выходная матрица частота-обратная частота документаВыходная матрица Term Frequency-Inverse Document Frequency, заданная как разреженная матрица или массив ячеек разреженных матриц.
Если bag является нескалярным массивом или 'ForceCellOutput' является trueзатем функция возвращает выходные данные в виде массива ячеек разреженных матриц. Каждый элемент в массиве ячеек представляет собой матрицу tf-idf, вычисленную из соответствующего элемента bag.
[1] Барриос, Федерико, Федерико Лопес, Луис Аргерих и Роза Ваченчаузер. «Вариации функции подобия TextRank для автоматизированного суммирования». arXiv preprint arXiv:1602.03606 (2016).
bagOfNgrams | bagOfWords | encode | tokenizedDocument | topkngrams | topkwords
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.