Извлеките сводные данные из документов
[
задает дополнительные опции с помощью одного или нескольких аргументов пары "имя-значение".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
функция. Чтобы возвратить сводные данные withthree документы, установите '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'
не 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
документ сводных данных th согласно 'ScoringMethod'
опция. Баллы сортируются согласно 'OrderBy'
опция.
bleuEvaluationScore
| bm25Similarity
| cosineSimilarity
| lexrankScores
| mmrScores
| rakeKeywords
| rougeEvaluationScore
| textrankKeywords
| textrankScores
| tokenizedDocument
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.