Этот пример показывает, чтобы извлечь ключевые слова из текстового использования данных TextRank.
Алгоритм экстракции ключевого слова TextRank извлекает ключевые слова с помощью части речи основанный на теге подход, чтобы идентифицировать ключевые слова кандидата и баллы их использующий совместные встречаемости слова, определенные раздвижным окном. Ключевые слова могут содержать несколько лексем. Кроме того, алгоритм экстракции ключевого слова TextRank также объединяет ключевые слова, когда они появляются последовательно в документе.
Создайте массив маркируемого документа, содержащего текстовые данные.
textData = [ "MATLAB provides really useful tools for engineers. Scientists use many useful MATLAB toolboxes." "MATLAB and Simulink have many features. MATLAB and Simulink makes it easy to develop models." "You can easily import data in MATLAB. In particular, you can easily import text data."]; documents = tokenizedDocument(textData);
Извлеките ключевые слова с помощью textrankKeywords
функция.
tbl = textrankKeywords(documents)
tbl=6×3 table
Keyword DocumentNumber Score
_____________________________________ ______________ ______
"useful" "MATLAB" "toolboxes" 1 4.8695
"useful" "" "" 1 2.3612
"MATLAB" "" "" 1 1.6212
"many" "features" "" 2 4.6152
"text" "data" "" 3 3.4781
"data" "" "" 3 1.7391
Если ключевое слово содержит несколько слов, то i-ый элемент массива строк соответствует i-ому слову ключевого слова. Если ключевое слово имеет меньше слов, что самое долгое ключевое слово, то остающиеся записи массива строк являются пустой строкой ""
.
Для удобочитаемости преобразуйте ключевые слова многословные в одно жало с помощью join
и strip
функции.
if size(tbl.Keyword,2) > 1 tbl.Keyword = strip(join(tbl.Keyword)); end head(tbl)
ans=6×3 table
Keyword DocumentNumber Score
_________________________ ______________ ______
"useful MATLAB toolboxes" 1 4.8695
"useful" 1 2.3612
"MATLAB" 1 1.6212
"many features" 2 4.6152
"text data" 3 3.4781
"data" 3 1.7391
textrankKeywords
функция, по умолчанию, возвращает все идентифицированные ключевые слова. Чтобы сократить количество ключевых слов, используйте 'MaxNumKeywords'
опция.
Извлеките лучшие два ключевых слова для каждого документа путем установки '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.6152
"text" "data" "" 3 3.4781
"data" "" "" 3 1.7391
Заметьте, что в извлеченных ключевых словах выше, функция не считает слово "импортом" как ключевое слово. Это вызвано тем, что алгоритм экстракции ключевого слова TextRank, по умолчанию, использует лексемы с "существительным" тегов части речи, "именем собственным" и "прилагательным" как ключевые слова кандидата. Поскольку слово "импорт" является глаголом, алгоритм не рассматривает это как ключевое слово кандидата. Точно так же алгоритм не рассматривает наречие "легко" как ключевое слово кандидата.
Чтобы задать который теги части речи использовать для идентификации ключевых слов кандидата, используйте 'PartOfSpeech'
опция.
Извлеките ключевые слова из того же текста как прежде и также задайте, также указывают, что часть речи помечает "adverb"
и "verb"
.
newTags = ["adverb" "verb"]; tags = ["noun" "proper-noun" "adjective" newTags]; tbl = textrankKeywords(documents,'PartOfSpeech', tags)
tbl=7×3 table
Keyword DocumentNumber Score
____________________________________________ ______________ ______
"use" "many" "useful" "MATLAB" 1 5.8839
"useful" "" "" "" 1 2.0169
"MATLAB" "" "" "" 1 1.5478
"Simulink" "have" "many" "" 2 4.5058
"Simulink" "" "" "" 2 1.5161
"import" "text" "data" "" 3 4.7921
"import" "data" "" "" 3 3.4195
Заметьте здесь, что функция обрабатывает маркерный "импорт" как ключевое слово кандидата и объединяет его в ключевые слова многословные, "импортируют данные", и "импортируют текстовые данные".
Заметьте, что в извлеченных ключевых словах выше, что функция не извлекает наречие "легко" как ключевое слово. Это вызвано тем, что близости этих слов в тексте к другим ключевым словам кандидата.
Кандидат баллов алгоритма экстракции ключевого слова TextRank ключевые слова с помощью количества попарных совместных встречаемостей в раздвижном окне. Чтобы увеличить размер окна, используйте 'Window'
опция. Увеличение размера окна позволяет функции найти больше совместных встречаемостей между ключевыми словами, который увеличивает баллы важности ключевого слова. Это может привести к нахождению более соответствующих ключевых слов за счет потенциального зачеркивания менее соответствующих ключевых слов.
Извлеките ключевые слова из того же текста как прежде и также задайте, также задают размер окна 3.
tbl = textrankKeywords(documents, ... 'PartOfSpeech', tags, ... 'Window',3)
tbl=8×3 table
Keyword DocumentNumber Score
____________________________________________ ______________ ______
"many" "useful" "MATLAB" "" 1 4.2185
"really" "useful" "" "" 1 2.8851
"MATLAB" "" "" "" 1 1.3154
"Simulink" "" "" "" 2 1.4526
"develop" "" "" "" 2 1.0912
"features" "" "" "" 2 1.0794
"easily" "import" "text" "data" 3 5.2989
"easily" "import" "data" "" 3 4.0842
Заметьте здесь, что функция обрабатывает лексемы "легко" как ключевые слова и объединяет его в ключевые слова многословные, "легко импортируют текстовые данные", и "легко импортируют данные".
Чтобы узнать больше об алгоритме экстракции ключевого слова TextRank, смотрите Экстракцию Ключевого слова TextRank.
Можно экспериментировать с различными алгоритмами экстракции ключевого слова, чтобы видеть то, что работает лучше всего с данными. Поскольку алгоритм ключевых слов TextRank использует часть речи основанный на теге подход, чтобы извлечь ключевые слова кандидата, извлеченные ключевые слова могут быть короткими. В качестве альтернативы можно попытаться извлечь ключевые слова с помощью алгоритма RAKE, который извлекает последовательности лексем, появляющихся между разделителями как ключевые слова кандидата. Чтобы извлечь ключевые слова с помощью RAKE, используйте rakeKeywords
функция. Чтобы узнать больше, смотрите Ключевые слова Извлечения из текстовых Данных Используя RAKE.
[1] Mihalcea, Рада и Пол Тэро. "Textrank: Обеспечение порядка в текст". В Продолжениях 2 004 конференций по эмпирическим методам в обработке естественного языка, стр 404-411. 2004.
extractSummary
| rakeKeywords
| textrankKeywords
| tokenizedDocument