rakeKeywords

Извлеките ключевые слова с помощью RAKE

    Описание

    пример

    tbl = rakeKeywords(documents) ключевые слова извлечений и соответствующие баллы с помощью алгоритма Быстрой автоматической экстракции ключевого слова (RAKE). Функция поддерживает английский, японский язык, немецкий язык и корейский текст. Изучить, как использовать rakeKeywords для других языков смотрите Факторы Языка.

    пример

    tbl = rakeKeywords(documents,Name,Value) задает дополнительные опции с помощью одного или нескольких аргументов пары "имя-значение".

    Совет

    rakeKeywords функция, по умолчанию, извлекает ключевые слова с помощью слов остановки и символов пунктуации. При использовании значений по умолчанию для 'Delimiters' и 'MergingDelimiters' опции, не удаляйте слова остановки или символы пунктуации из входного текста.

    Примеры

    свернуть все

    Создайте массив маркируемых документов, содержащих текстовые данные.

    textData = [
        "MATLAB provides tools for scientists and engineers. MATLAB is used by scientists and engineers."
        "Analyze text and images. You can import text and images."
        "Analyze text and images. Analyze text, images, and videos in MATLAB."];
    documents = tokenizedDocument(textData);

    Извлеките ключевые слова с помощью rakeKeywords функция.

    tbl = rakeKeywords(documents)
    tbl=12×3 table
                         Keyword                     DocumentNumber    Score
        _________________________________________    ______________    _____
    
        "MATLAB"        "provides"    "tools"              1             8  
        "MATLAB"        ""            ""                   1             2  
        "scientists"    "and"         "engineers"          1             2  
        "engineers"     ""            ""                   1             1  
        "scientists"    ""            ""                   1             1  
        "Analyze"       "text"        ""                   2             4  
        "import"        "text"        ""                   2             4  
        "images"        ""            ""                   2             1  
        "Analyze"       "text"        ""                   3             4  
        "MATLAB"        ""            ""                   3             1  
        "images"        ""            ""                   3             1  
        "videos"        ""            ""                   3             1  
    
    

    Если ключевое слово содержит несколько слов, то i-ый элемент массива строк соответствует i-ому слову ключевого слова. Если ключевое слово имеет меньше слов, что самое долгое ключевое слово, то остающиеся записи массива строк являются пустой строкой "".

    Для удобочитаемости преобразуйте ключевые слова многословные в одно жало с помощью join и strip функции.

    if size(tbl.Keyword,2) > 1
        tbl.Keyword = strip(join(tbl.Keyword));
    end
    tbl
    tbl=12×3 table
                 Keyword              DocumentNumber    Score
        __________________________    ______________    _____
    
        "MATLAB provides tools"             1             8  
        "MATLAB"                            1             2  
        "scientists and engineers"          1             2  
        "engineers"                         1             1  
        "scientists"                        1             1  
        "Analyze text"                      2             4  
        "import text"                       2             4  
        "images"                            2             1  
        "Analyze text"                      3             4  
        "MATLAB"                            3             1  
        "images"                            3             1  
        "videos"                            3             1  
    
    

    Создайте массив маркируемого документа, содержащего текстовые данные.

    textData = [
        "MATLAB provides tools for scientists and engineers. MATLAB is used by scientists and engineers."
        "Analyze text and images. You can import text and images."
        "Analyze text and images. Analyze text, images, and videos in MATLAB."];
    documents = tokenizedDocument(textData);

    Извлеките лучшие два ключевых слова с помощью rakeKeywords функция и установка 'MaxNumKeywords' опция к 2.

    tbl = rakeKeywords(documents,'MaxNumKeywords',2)
    tbl=6×3 table
                     Keyword                  DocumentNumber    Score
        __________________________________    ______________    _____
    
        "MATLAB"     "provides"    "tools"          1             8  
        "MATLAB"     ""            ""               1             2  
        "Analyze"    "text"        ""               2             4  
        "import"     "text"        ""               2             4  
        "Analyze"    "text"        ""               3             4  
        "MATLAB"     ""            ""               3             1  
    
    

    Если ключевое слово содержит несколько слов, то i-ый элемент массива строк соответствует i-ому слову ключевого слова. Если ключевое слово имеет меньше слов, что самое долгое ключевое слово, то остающиеся записи массива строк являются пустой строкой "".

    Для удобочитаемости преобразуйте ключевые слова многословные в одно жало с помощью join и strip функции.

    if size(tbl.Keyword,2) > 1
        tbl.Keyword = strip(join(tbl.Keyword));
    end
    tbl
    tbl=6×3 table
                Keyword            DocumentNumber    Score
        _______________________    ______________    _____
    
        "MATLAB provides tools"          1             8  
        "MATLAB"                         1             2  
        "Analyze text"                   2             4  
        "import text"                    2             4  
        "Analyze text"                   3             4  
        "MATLAB"                         3             1  
    
    

    Входные параметры

    свернуть все

    Введите документы в виде tokenizedDocument массив, массив строк слов или массив ячеек из символьных векторов. Если documents не tokenizedDocument массив, затем это должен быть вектор-строка, представляющий единый документ, где каждым элементом является слово. Чтобы задать несколько документов, используйте tokenizedDocument массив.

    Аргументы в виде пар имя-значение

    Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

    Пример: rakeKeywords(documents,'MaxNumKeywords',20) возвращает самое большее 20 ключевых слов на документ.

    Максимальное количество ключевых слов, чтобы возвратиться на документ в виде разделенной запятой пары, состоящей из 'MaxNumKeywords' и положительное целое число или Inf.

    Если MaxNumKeywords isinf, затем функция возвращает все идентифицированные ключевые слова.

    Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    Лексемы для разделения документов в ключевые слова в виде разделенной запятой пары, состоящей из 'Delimiters' и массив строк, вектор символов или массив ячеек из символьных векторов. Если Delimiters вектор символов, затем он должен представлять один разделитель.

    Список по умолчанию разделителей является списком символов пунктуации.

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

    Чтобы задать разделители для слияния, используйте 'MergingDelimiters' опция.

    Соответствие разделителей является нечувствительным к регистру.

    Типы данных: char | string | cell

    Разделители, также используемые для слияния ключевых слов в виде разделенной запятой пары, состоящей из 'MergingDelimiters' и массив строк, вектор символов или массив ячеек из символьных векторов. Если MergingDelimiters вектор символов, затем он должен представлять один разделитель.

    Список по умолчанию слияния разделителей является списком слов остановки, данных stopWords функция.

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

    Чтобы задать разделители, которые не должны использоваться для слияния, используйте 'Delimiters' опция.

    Соответствие разделителей является нечувствительным к регистру.

    Типы данных: char | string | cell

    Выходные аргументы

    свернуть все

    Извлеченные ключевые слова и баллы, возвращенные как таблица со следующими переменными:

    • Keyword – Извлеченное ключевое слово в виде 1 maxNgramLength массив строк, где maxNgramLength количество слов в самом долгом ключевом слове.

    • DocumentNumber – Номер документа, содержащий соответствующее ключевое слово.

    • Score – Счет ключевого слова.

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

    Если ключевое слово содержит несколько слов, то i th элемент соответствующего массива строк соответствует i th слово ключевого слова. Если ключевое слово имеет меньше слов, что самое долгое ключевое слово, то остающиеся записи массива строк являются пустой строкой "".

    Для получения дополнительной информации смотрите Быструю Автоматическую Экстракцию Ключевого слова.

    Больше о

    свернуть все

    Факторы языка

    rakeKeywords функционируйте поддерживает английский, японский язык, немецкий язык и корейский текст только.

    rakeKeywords функционируйте извлекает ключевые слова с помощью основанного на разделителе подхода, чтобы идентифицировать ключевые слова кандидата. Функция, по умолчанию, использует символы пунктуации и слова остановки, данные stopWords с языком, данным деталями языка входных документов как разделители.

    Для других языков задайте соответствующий набор разделителей с помощью 'Delimiters' и 'MergingDelimiters' опции.

    Советы

    • Можно экспериментировать с различными алгоритмами экстракции ключевого слова, чтобы видеть то, что работает лучше всего с данными. Поскольку алгоритм ключевых слов RAKE использует основанный на разделителе подход, чтобы извлечь ключевые слова кандидата, извлеченные ключевые слова могут быть очень длинными. В качестве альтернативы можно попытаться извлечь использование ключевых слов алгоритм TextRank, который запускается с отдельных лексем как ключевые слова кандидата и затем объединяет их в надлежащих случаях. Чтобы извлечь использование ключевых слов TextRank, используйте textrankKeywords функция. Чтобы узнать больше, смотрите Ключевые слова Извлечения из текстовых Данных Используя TextRank.

    Алгоритмы

    свернуть все

    Быстрая автоматическая экстракция ключевого слова

    Для каждого документа, rakeKeywords функционируйте извлекает ключевые слова независимо с помощью следующих шагов на основе [1]:

    1. Определите ключевые слова кандидата:

      • Извлеките последовательности лексем между разделителями, заданными 'Delimiters' и 'MergingDelimiters' опции. Функция обрабатывает каждую последовательность как одно ключевое слово кандидата.

    2. Вычислите музыку к ключевым словам кандидата:

      • Создайте неориентированный, невзвешенный график с узлами, соответствующими отдельным лексемам в ключевых словах кандидата.

      • Добавьте ребра между узлами где лексемы co-occur в ключевом слове кандидата, включая сам совместные встречаемости, взвешенные количеством ключевых слов кандидата, содержащих ту совместную встречаемость.

      • Выиграйте каждую лексему с помощью формулы deg(token) / freq(token), где deg(token) количество ребер для заданной лексемы и freq(token) число раз, что заданная лексема происходит в документе.

      • Для каждого ключевого слова кандидата присвойте счет, данный суммой множества содержавших лексем.

    3. Извлеките главные ключевые слова от кандидатов:

      • Если существует несколько экземпляров той же пары ключевых слов кандидата, разделенных тем же одним разделителем слияния, то объединяют ключевые слова кандидата и разделитель в одно ключевое слово и суммируют соответствующие баллы.

      • Возвратите главные ключевые слова k, где k дан 'MaxNumKeywords' опция.

    Детали языка

    tokenizedDocument объекты содержат детали о лексемах включая детали языка. Детали языка входных документов определяют поведение rakeKeywords. tokenizedDocument функция, по умолчанию, автоматически обнаруживает язык входного текста. Чтобы задать детали языка вручную, используйте 'Language' аргумент пары "имя-значение" tokenizedDocument. Чтобы посмотреть маркерные детали, используйте tokenDetails функция.

    Ссылки

    [1] Повысился, Стюарт, Дэйв Энгель, Ник Крамер и Венди Коули. "Автоматическая экстракция ключевого слова из отдельных документов". Анализ текста: приложения и теория 1 (2010): 1-20.

    Введенный в R2020b