Этот пример показывает, чтобы извлечь ключевые слова из текстовых данных с помощью 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
The 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, по умолчанию, использует лексемы с частичными тегами речи «существительное», «собственное существительное» и «прилагательное» в качестве ключевых слов-кандидатов. Поскольку слово «import» является глаголом, алгоритм не рассматривает это как ключевое слово кандидата. Точно так же алгоритм не рассматривает наречие «легко» в качестве ключевого слова кандидата.
Чтобы указать, какую часть тегов речи использовать для идентификации ключевых слов кандидата, используйте '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] Михальча, Рада и Пауль Тарау. «Textrank: Приведение порядка в текст». В материалах конференции 2004 года по эмпирическим методам обработки естественных языков, стр. 404-411. 2004.
extractSummary
| rakeKeywords
| textrankKeywords
| tokenizedDocument