Извлечение сводки из документов
[ указывает дополнительные параметры, использующие один или несколько аргументов пары имя-значение.summary,scores] = extractSummary(documents,Name,Value)
Создание массива маркированных документов.
str = [
"The quick brown fox jumped over the lazy dog."
"The fox jumped over the dog."
"The lazy dog saw a fox jumping."
"There seem to be animals jumping other animals."
"There are quick animals and lazy animals"];
documents = tokenizedDocument(str);Извлечение сводки документов с помощью extractSummary функция. Функция по умолчанию выбирает 1/10 входных документов с округлением.
summary = extractSummary(documents)
summary = tokenizedDocument: 10 tokens: The quick brown fox jumped over the lazy dog .
Чтобы указать большую сводку, используйте 'SummarySize' вариант. Извлеките сводку из трех документов.
summary = extractSummary(documents,'SummarySize',3)summary =
3x1 tokenizedDocument:
10 tokens: The quick brown fox jumped over the lazy dog .
7 tokens: The fox jumped over the dog .
9 tokens: There seem to be animals jumping other animals .
Создание массива маркированных документов.
str = [
"The quick brown fox jumped over the lazy dog."
"The fox jumped over the dog."
"The lazy dog saw a fox jumping."
"There seem to be animals jumping over other animals."
"There are quick animals and lazy animals"];
documents = tokenizedDocument(str);Извлеките сводку из трех документов. Второй выход scores содержит итоговые оценки важности документа.
[summary,scores] = extractSummary(documents,'SummarySize',3)summary =
3x1 tokenizedDocument:
10 tokens: The quick brown fox jumped over the lazy dog .
10 tokens: There seem to be animals jumping over other animals .
7 tokens: The fox jumped over the dog .
scores = 3×1
0.2426
0.2174
0.1911
Визуализируйте баллы на гистограмме.
figure bar(scores) xlabel("Summary Document") ylabel("Score") title("Summary Document Importance")

Чтобы суммировать один документ, разделите его на ряд предложений и используйте extractSummary функция.
Создайте строковый скаляр, содержащий документ.
str = ... "There is a quick fox. The fox is brown. There is a dog which " + ... "is lazy. The dog is very lazy. The fox jumped over the dog. " + ... "The quick brown fox jumped over the lazy dog.";
Разбейте строку на предложения с помощью splitSentences функция.
str = splitSentences(str)
str = 6x1 string
"There is a quick fox."
"The fox is brown."
"There is a dog which is lazy."
"The dog is very lazy."
"The fox jumped over the dog."
"The quick brown fox jumped over the lazy dog."
Создание маркированного массива документов, содержащего предложения.
documents = tokenizedDocument(str)
documents =
6x1 tokenizedDocument:
6 tokens: There is a quick fox .
5 tokens: The fox is brown .
8 tokens: There is a dog which is lazy .
6 tokens: The dog is very lazy .
7 tokens: The fox jumped over the dog .
10 tokens: The quick brown fox jumped over the lazy dog .
Извлечь сводку из предложений с помощью extractSummary функция. Чтобы вернуть сводку с тремя документами, установите 'SummarySize' 3. Чтобы сводные документы отображались в том же порядке, что и входные документы, установите 'OrderBy' опция для 'position'.
summary = extractSummary(documents,'SummarySize',3,'OrderBy','position')
summary =
3x1 tokenizedDocument:
6 tokens: There is a quick fox .
7 tokens: The fox jumped over the dog .
10 tokens: The quick brown fox jumped over the lazy dog .
Чтобы преобразовать предложения в один документ, преобразуйте документы в строку с помощью joinWords и присоединить предложения с помощью join функция.
sentences = joinWords(summary); summaryStr = join(sentences)
summaryStr = "There is a quick fox . The fox jumped over the dog . The quick brown fox jumped over the lazy dog ."
Чтобы удалить окружающие знаки препинания, используйте replace функция.
punctuationRight = ["." "," "’" ")" ":" "?" "!"]; summaryStr = replace(summaryStr," " + punctuationRight,punctuationRight); punctuationLeft = ["(" "‘"]; summaryStr = replace(summaryStr,punctuationLeft + " ",punctuationLeft)
summaryStr = "There is a quick fox. The fox jumped over the dog. The quick brown fox jumped over the lazy dog."
documents - Исходные документыtokenizedDocument множествоИсходные документы, указанные как tokenizedDocument массив.
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
extractSummary(documents,'ScoringMethod','lexrank') извлекает сводку из documents и устанавливает для параметра метода оценки значение 'lexrank'.'ScoringMethod' - Метод подсчета баллов'textrank' (по умолчанию) | 'lexrank' | 'mmr'Метод оценки, используемый для экстрактивного уплотнения, указанный как пара, разделенная запятыми, состоящая из 'ScoringMethod' и одно из следующих:
'textrank' - использовать алгоритм TextRank.
'lexrank' - использовать алгоритм LexRank.
'mmr' - использовать алгоритм MMR.
'Query' - Запрос документа для оценки MMRtokenizedDocument скалярный | строковый массив | массив ячеек символьных векторовЗапрос документа для оценки MMR, указанного как пара, разделенная запятыми, состоящая из 'Query' и tokenizedDocument скаляр, строковый массив слов или клеточный массив символьных векторов. Если 'Query' не a tokenizedDocument скаляр, то это должен быть вектор строки, представляющий один документ, где каждый элемент является словом.
Этот параметр действует только в том случае, если 'ScoringMethod' является 'mmr'.
'SummarySize' - Размер сводкиInfРазмер сводки, определяемый как разделенная запятыми пара, состоящая из 'SummarySize' и одно из следующих:
Скаляр в диапазоне (0,1) - извлечение указанной доли входных документов, округление. В этом случае количество итоговых документов ceil(SummarySize*numDocuments), где numDocuments - количество входных документов.
Положительное целое число - извлечение сводки с указанным количеством документов. Если SummarySize больше или равно количеству входных документов, затем функция возвращает входные документы, отсортированные в соответствии с 'OrderBy' вариант.
Inf - Возврат входных документов, отсортированных по 'OrderBy' вариант.
Типы данных: double
'OrderBy' - Порядок документов в сводке'score' (по умолчанию) | 'position'Порядок документов в сводке, указанный как разделенная запятыми пара, состоящая из 'OrderBy' и одно из следующих:
'score' - Заказать документы по их баллу согласно 'ScoringMethod' вариант.
'position' - Ведение заказа на документ из ввода.
summary - Извлеченная сводкаtokenizedDocument множествоИзвлеченная сводка, возвращенная как tokenizedDocument массив. Сводка является подмножеством documentsи сортируется в соответствии с 'OrderBy' вариант.
scores - Итоговые оценки документовИтоговые баллы документа, возвращенные в виде вектора, где scores(i) является результатом jТретий краткий документ в соответствии с 'ScoringMethod' вариант. Баллы сортируются в соответствии с 'OrderBy' вариант.
bleuEvaluationScore | bm25Similarity | cosineSimilarity | lexrankScores | mmrScores | rakeKeywords | rougeEvaluationScore | textrankKeywords | textrankScores | tokenizedDocument
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.