Назовите Обратную Частотой Частоту Документа (tf-idf) матрицей
задает дополнительные опции с помощью одного или нескольких аргументов пары "имя-значение".M = tfidf(___,Name,Value)
Создайте Частоту Документа Инверсии Частоты Термина (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: ["fairest" "creatures" "desire" ... ]
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) матрица из модели сумки слов и массива новых документов.
Загрузите данные в качестве примера. Файл 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: ["fairest" "creatures" "desire" ... ]
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: ["fairest" "creatures" "desire" ... ]
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
Типы данных: логический
DocumentsIn — Ориентация выходных документов'rows' (значение по умолчанию) | 'columns'Ориентация выходных документов в матрице подсчета частот в виде разделенной запятой пары, состоящей из 'DocumentsIn' и одно из следующего:
'rows' – Возвратите матрицу подсчета частот со строками, соответствующими документам.
'columns' – Возвратите транспонированную матрицу подсчета частот со столбцами, соответствующими документам.
Типы данных: char
ForceCellOutput — Индикатор для принуждения выхода, который будет возвращен как массив ячеекfalse (значение по умолчанию) | trueИндикатор для принуждения выхода, который будет возвращен как массив ячеек в виде запятой разделенная пара, состоящая из 'ForceCellOutput' и true или false.
Типы данных: логический
M — Выведите матрицу Частоты Документа Инверсии Частоты ТерминаВыведите матрицу Частоты Документа Инверсии Частоты Термина в виде разреженной матрицы или массива ячеек разреженных матриц.
Если bag нескалярный массив или 'ForceCellOutput' true, затем функция возвращает выходные параметры как массив ячеек разреженных матриц. Каждым элементом в массиве ячеек является tf-idf матрица, вычисленная от соответствующего элемента bag.
[1] Барриос, Федерико, Федерико Лопес, Луис Аргерих и Роза Уокэнчозер. "Изменения Функции Подобия TextRank для Автоматизированного Резюмирования". arXiv предварительно распечатывают arXiv:1602.03606 (2016).
bagOfWords | bagOfNgrams | topkwords | topkngrams | encode | tokenizedDocument
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.