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