Извлеките ключевые слова из текстовых данных Используя TextRank

Этот пример показывает, чтобы извлечь ключевые слова из текстового использования данных 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

Заметьте здесь, что функция обрабатывает маркерный "импорт" как ключевое слово кандидата и объединяет его в ключевые слова многословные, "импортируют данные", и "импортируют текстовые данные".

Задайте Windows Size

Заметьте, что в извлеченных ключевых словах выше, что функция не извлекает наречие "легко" как ключевое слово. Это вызвано тем, что близости этих слов в тексте к другим ключевым словам кандидата.

Кандидат баллов алгоритма экстракции ключевого слова 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.

Смотрите также

| | |

Похожие темы