Извлечение ключевых слов с помощью TextRank
извлекает ключевые слова и соответствующие счета с помощью TextRank. Функция поддерживает английский, японский, немецкий и корейский текст. Для других языков попробуйте использовать tbl
= textrankKeywords(documents
)rakeKeywords
вместо этого функция.
задает дополнительные опции, используя один или несколько аргументы пары "имя-значение".tbl
= textrankKeywords(documents
,Name,Value
)
Создайте массив токенизированного документа, содержащий текстовые данные.
textData = [ "MATLAB provides really useful tools for engineers. Scientists use many useful tools in MATLAB." "MATLAB and Simulink have many features. Use MATLAB and Simulink for engineering workflows." "Analyze text and images in MATLAB. Analyze text, images, and videos in MATLAB."]; documents = tokenizedDocument(textData);
Извлечь ключевые слова можно используя textrankKeywords
функция.
tbl = textrankKeywords(documents)
tbl=7×3 table
Keyword DocumentNumber Score
_________________________________ ______________ ______
"many" "useful" "tools" 1 5.2174
"useful" "tools" "" 1 3.8778
"many" "features" "" 2 4.0815
"text" "" "" 3 1
"images" "" "" 3 1
"MATLAB" "" "" 3 1
"videos" "" "" 3 1
Если ключевое слово содержит несколько слов, то i-й элемент строковых массивов соответствует i-му слову ключевого слова. Если ключевое слово имеет меньше слов, чем самое длинное ключевое слово, то оставшиеся записи строковых массивов являются пустой строкой ""
.
Для читаемости преобразуйте ключевые слова из нескольких слов в одно жало, используя join
и strip
функций.
if size(tbl.Keyword,2) > 1 tbl.Keyword = strip(join(tbl.Keyword)); end tbl
tbl=7×3 table
Keyword DocumentNumber Score
___________________ ______________ ______
"many useful tools" 1 5.2174
"useful tools" 1 3.8778
"many features" 2 4.0815
"text" 3 1
"images" 3 1
"MATLAB" 3 1
"videos" 3 1
Создайте массив токенизированных документов, содержащих текстовые данные.
textData = [ "MATLAB provides really useful tools for engineers. Scientists use many useful MATLAB toolboxes." "MATLAB and Simulink have many features. Use MATLAB and Simulink for engineering workflows." "Analyze text and images in MATLAB. Analyze text, images, and videos in MATLAB."]; documents = tokenizedDocument(textData);
Извлечь два верхних ключевых слова используя textrankKeywords
функцию и настройку 'MaxNumKeywords'
опция для 2
.
tbl = textrankKeywords(documents,'MaxNumKeywords',2)
tbl=5×3 table
Keyword DocumentNumber Score
_____________________________________ ______________ ______
"useful" "MATLAB" "toolboxes" 1 4.8695
"useful" "" "" 1 2.3612
"many" "features" "" 2 4.0815
"text" "" "" 3 1
"images" "" "" 3 1
Если ключевое слово содержит несколько слов, то i-й элемент строковых массивов соответствует i-му слову ключевого слова. Если ключевое слово имеет меньше слов, чем самое длинное ключевое слово, то оставшиеся записи строковых массивов являются пустой строкой ""
.
Для читаемости преобразуйте ключевые слова из нескольких слов в одно жало, используя join
и strip
функций.
if size(tbl.Keyword,2) > 1 tbl.Keyword = strip(join(tbl.Keyword)); end tbl
tbl=5×3 table
Keyword DocumentNumber Score
_________________________ ______________ ______
"useful MATLAB toolboxes" 1 4.8695
"useful" 1 2.3612
"many features" 2 4.0815
"text" 3 1
"images" 3 1
documents
- Входные документыtokenizedDocument
массив | строковые массивы слов | массив ячеек из векторов символовВходные документы, заданные как tokenizedDocument
массив, строковые массивы слов или массив ячеек из векторов символов. Если documents
не является tokenizedDocument
Массив это должно быть вектор-строка, представляющее один документ, где каждый элемент является словом. Чтобы задать несколько документов, используйте tokenizedDocument
массив.
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
textrankKeywords(documents,'MaxNumKeywords',20)
возвращает не более 20 ключевых слов на документ.'MaxNumKeywords'
- Максимальное количество ключевых слов для возврата за документInf
(по умолчанию) | положительное целое числоМаксимальное количество ключевых слов для возврата за документ, заданное как разделенная разделенными запятой парами, состоящая из 'MaxNumKeywords'
и положительное целое или Inf
.
Если MaxNumKeywords
является Inf
, затем функция возвращает все идентифицированные ключевые слова.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
'Window'
- Размер окна совместного возникновенияInf
Размер окна совместного появления, заданный как разделенная разделенными запятой парами, состоящая из 'Window'
и положительное целое или Inf
.
Когда размер окна равен 2, функция рассматривает совместное появление между двумя ключевыми словами кандидата только, когда они появляются последовательно в документе. Когда размер окна Inf
, затем функция рассматривает совместное появление между двумя ключевыми словами кандидата, когда они оба появляются в одном документе.
Увеличение размера окна позволяет функции находить больше ко-вхождений между ключевыми словами, что увеличивает счета важности ключевого слова. Это может привести к поиску более актуальных ключевых слов за счет потенциального переоценки менее актуальных ключевых слов.
Для получения дополнительной информации см. раздел «Извлечение ключевых слов TextRank».
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
'PartOfSpeech'
- Часть речи теги["noun" "proper-noun" "adjective"]
(по умолчанию) | строковый массив | массив ячеек из векторов символов | символьный вектор | категориальный массивТеги части речи для извлечения ключевых слов кандидата, заданные как разделенная разделенными запятой парами, состоящая из 'PartOfSpeech'
и строковые массивы, массив ячеек из векторов символов или категориальный массив, содержащий одно или несколько из следующих имен классов:
"adjective"
- Прилагательное
"adposition"
- Адпозиция
"adverb"
- Наречие
"auxiliary-verb"
- Вспомогательный глагол
"coord-conjunction"
- Координирующая связь
"determiner"
- Определитель
"interjection"
- Пересечение
"noun"
- Существительное
"numeral"
- Число
"particle"
- Частица
"pronoun"
- Местоимение
"proper-noun"
- Собственное существительное
"punctuation"
- Пунктуация
"subord-conjunction"
- Подчинение соединения
"symbol"
- Символ
"verb"
- Глагол
"other"
Другое
Если PartOfSpeech
является вектор символов, тогда это должно соответствовать одной части речевого тега.
Для получения дополнительной информации см. раздел «Извлечение ключевых слов TextRank».
Типы данных: char
| string
| cell
| categorical
tbl
- Извлеченные ключевые слова и счетаИзвлеченные ключевые слова и счета, возвращенные как таблица со следующими переменными:
Keyword
- Извлеченное ключевое слово, заданное как 1-by- maxNgramLength
Строковые массивы, где maxNgramLength
- количество слов в самом длинном ключевом слове.
DocumentNumber
- Номер документа, содержащий соответствующее ключевое слово.
Score
- Счет ключевого слова.
Функция объединяет несколько ключевых слов в одно ключевое слово, когда они появляются последовательно в соответствующем документе.
Если ключевое слово содержит несколько слов, то i-й элемент соответствующих строковых массивов соответствует i-му слову ключевого слова. Если ключевое слово имеет меньше слов, чем самое длинное ключевое слово, то оставшиеся записи строковых массивов являются пустой строкой ""
.
Для получения дополнительной информации см. раздел «Извлечение ключевых слов TextRank».
textrankKeywords
функция поддерживает только текст на английском, японском, немецком и корейском языках.
textrankKeywords
функция извлекает ключевые слова путем идентификации ключевых слов кандидата на основе их части речевого тега. Функция использует часть тегов речи, заданных addPartOfSpeechDetails
функция, которая поддерживает только текст на английском, японском, немецком и корейском языках.
Для других языков попробуйте использовать rakeKeywords
вместо этого и укажите соответствующий набор разделителей, используя 'Delimiters'
и 'MergingDelimiters'
опции.
Можно экспериментировать с различными алгоритмами извлечения ключевых слов, чтобы увидеть, что лучше всего работает с вашими данными. Поскольку алгоритм TextRank ключевых слов использует основанный на части речи подход для извлечения ключевых слов кандидата, извлеченные ключевые слова могут быть короткими. Также можно попробовать извлечь ключевые слова с помощью алгоритма RAKE, который извлекает последовательности лексем, появляющихся между разделителями в качестве ключевых слов-кандидатов. Чтобы извлечь ключевые слова с помощью RAKE, используйте rakeKeywords
функция. Дополнительные сведения см. в разделе Извлечение ключевых слов из текстовых данных с помощью RAKE.
Для каждого документа, textrankKeywords
функция извлекает ключевые слова независимо, используя следующие шаги на основе [1]:
Определите ключевые слова кандидата:
Извлечение лексем с частью речи, заданной 'PartOfSpeech'
опция.
Вычислите счета для каждого кандидата:
Создайте неориентированный невзвешенный график с узлами, соответствующими ключевым словам кандидата.
Добавьте ребер между узлами, где ключевые слова кандидата появляются в окне лексем, где размер окна задается 'Window'
опция.
Вычислите центральность каждого узла с помощью алгоритма PageRank и взвешивайте счета в соответствии с количеством ключевых слов кандидата. Для получения дополнительной информации см. centrality
.
Извлеките ключевые слова из кандидатов:
Выберите первую треть ключевых слов кандидата в соответствии с их счетами.
Если какие-либо ключевые слова кандидата появляются последовательно в документе, объедините их в одно ключевое слово и суммируйте соответствующие счета.
Верните ключевые k верхнего уровня, где k задается 'MaxNumKeywords'
опция.
tokenizedDocument
объекты содержат подробную информацию о лексемах, включая сведения о языке. Детали языка входных документов определяют поведение textrankKeywords
. The tokenizedDocument
функция по умолчанию автоматически обнаруживает язык входного текста. Чтобы задать детали языка вручную, используйте 'Language'
Аргумент пары "имя-значение" из tokenizedDocument
. Чтобы просмотреть сведения о лексеме, используйте tokenDetails
функция.
[1] Михальча, Рада и Пауль Тарау. «Textrank: Приведение порядка в текст». В материалах конференции 2004 года по эмпирическим методам обработки естественных языков, стр. 404-411. 2004.
extractSummary
| rakeKeywords
| textrankScores
| tokenizedDocument
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.