Извлечение ключевых слов с помощью 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.
Извлечь ключевые слова из кандидатов:
Выберите верхнюю треть ключевых слов-кандидатов в соответствии с их оценками.
Если какое-либо из ключевых слов-кандидатов появляется в документе последовательно, то объедините их в одно ключевое слово и суммируйте соответствующие баллы.
Возвращает ключевые слова top k, где k задается значением 'MaxNumKeywords' вариант.
tokenizedDocument объекты содержат сведения о маркерах, включая сведения о языке. Сведения о языке входных документов определяют поведение textrankKeywords. tokenizedDocument функция по умолчанию автоматически определяет язык входного текста. Чтобы указать сведения о языке вручную, используйте 'Language' аргумент пары имя-значение tokenizedDocument. Для просмотра сведений о маркере используйте tokenDetails функция.
[1] Михальцея, Рада и Поль Тарау. «Textrank: Приведение порядка в текст». В Трудах 2004 конференции по эмпирическим методам обработки естественного языка, стр. 404-411. 2004.
extractSummary | rakeKeywords | textrankScores | tokenizedDocument
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.