Назовите Обратную Частотой Частоту Документа (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: [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) матрица из модели сумки слов и массива новых документов.
Загрузите данные в качестве примера. Файл 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
массив строк или массив ячеек из символьных векторов, затем это должен быть вектор-строка, представляющий единый документ, где каждый элемент является словом.
Задайте дополнительные разделенные запятой пары 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'
(значение по умолчанию) | 'unary'
| 'smooth'
| 'max'
| 'probabilistic'
Метод, чтобы установиться коэффициент обратной частоты документа (IDF), заданный как разделенная запятой пара, состоящая из 'IDFWeight'
и одно из следующего:
'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
количество документов в bag
, и NT
количество документов, содержащих каждый термин, который эквивалентен sum(bag.Counts)
.
Пример: 'IDFWeight','smooth'
Типы данных: char
'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
.
bagOfNgrams
| bagOfWords
| encode
| tokenizedDocument
| topkngrams
| topkwords
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.