topkngrams

Наиболее частые n-граммы

Описание

пример

tbl = topkngrams(bag) возвращает таблицу, в которой перечислены пять наиболее часто встречающихся n-граммов в модели сумки n-граммов bag. Функция по умолчанию чувствительна к регистру.

пример

tbl = topkngrams(bag,k) приводит список k наиболее часто встречающиеся n-граммы в модели мешка n-граммов bag. Функция по умолчанию чувствительна к регистру.

пример

tbl = topkngrams(___,Name,Value) задает дополнительные опции, используя один или несколько аргументы пары "имя-значение".

Примеры

свернуть все

Составьте таблицу наиболее частых биграммов модели мешка n-граммов.

Загрузите данные примера. Файл sonnetsPreprocessed.txt содержит предварительно обработанные версии сонетов Шекспира. Файл содержит по одному сонету на линию со словами, разделенными пространством. Извлеките текст из sonnetsPreprocessed.txtразделите текст на документы в символах новой строки, а затем пометьте его токеном.

filename = "sonnetsPreprocessed.txt";
str = extractFileText(filename);
textData = split(str,newline);
documents = tokenizedDocument(textData);

Создайте модель сумки n-граммов.

bag = bagOfNgrams(documents)
bag = 
  bagOfNgrams with properties:

          Counts: [154×8799 double]
      Vocabulary: [1×3092 string]
          Ngrams: [8799×2 string]
    NgramLengths: 2
       NumNgrams: 8799
    NumDocuments: 154

Найдите топ-5 биграмм.

tbl = topkngrams(bag)
tbl=5×3 table
         Ngram          Count    NgramLength
    ________________    _____    ___________

    "thou"    "art"      34           2     
    "mine"    "eye"      15           2     
    "thy"     "self"     14           2     
    "thou"    "dost"     13           2     
    "mine"    "own"      13           2     

Найдите 10 лучших биграмм.

tbl = topkngrams(bag,10)
tbl=10×3 table
          Ngram          Count    NgramLength
    _________________    _____    ___________

    "thou"    "art"       34           2     
    "mine"    "eye"       15           2     
    "thy"     "self"      14           2     
    "thou"    "dost"      13           2     
    "mine"    "own"       13           2     
    "thy"     "sweet"     12           2     
    "thy"     "love"      11           2     
    "dost"    "thou"      10           2     
    "thou"    "wilt"      10           2     
    "love"    "thee"       9           2     

Загрузите данные примера. Файл sonnetsPreprocessed.txt содержит предварительно обработанные версии сонетов Шекспира. Файл содержит по одному сонету на линию со словами, разделенными пространством. Извлеките текст из sonnetsPreprocessed.txtразделите текст на документы в символах новой строки, а затем пометьте его токеном.

filename = "sonnetsPreprocessed.txt";
str = extractFileText(filename);
textData = split(str,newline);
documents = tokenizedDocument(textData);

Создайте модель сумки n-граммов. Для подсчета n-граммов длины 2 и 3 (биграммы и триграммы) задайте 'NgramLengths' быть вектором [2 3].

bag = bagOfNgrams(documents,'NgramLengths',[2 3])
bag = 
  bagOfNgrams with properties:

          Counts: [154×18022 double]
      Vocabulary: [1×3092 string]
          Ngrams: [18022×3 string]
    NgramLengths: [2 3]
       NumNgrams: 18022
    NumDocuments: 154

Просмотрите 10 наиболее распространенных n-граммов длины 2 (биграммы).

topkngrams(bag,10,'NGramLengths',2)
ans=10×3 table
             Ngram             Count    NgramLength
    _______________________    _____    ___________

    "thou"    "art"      ""     34           2     
    "mine"    "eye"      ""     15           2     
    "thy"     "self"     ""     14           2     
    "thou"    "dost"     ""     13           2     
    "mine"    "own"      ""     13           2     
    "thy"     "sweet"    ""     12           2     
    "thy"     "love"     ""     11           2     
    "dost"    "thou"     ""     10           2     
    "thou"    "wilt"     ""     10           2     
    "love"    "thee"     ""      9           2     

Просмотрите 10 наиболее распространенных n-граммов длины 3 (триграммы).

 topkngrams(bag,10,'NGramLengths',3)
ans=10×3 table
               Ngram                Count    NgramLength
    ____________________________    _____    ___________

    "thy"     "sweet"    "self"       4           3     
    "why"     "dost"     "thou"       4           3     
    "thy"     "self"     "thy"        3           3     
    "thou"    "thy"      "self"       3           3     
    "mine"    "eye"      "heart"      3           3     
    "thou"    "shalt"    "find"       3           3     
    "fair"    "kind"     "true"       3           3     
    "thou"    "art"      "fair"       2           3     
    "love"    "thy"      "self"       2           3     
    "thy"     "self"     "thou"       2           3     

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

свернуть все

Входная модель bag-of-n-gams, заданная как bagOfNgrams объект.

Количество n-граммов для возврата, заданное как положительное целое число.

Пример: 20

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

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

Пример: 'NgramLengths',[2 3] задает, чтобы вернуть верхние биграммы и триграммы.

Длины N-грамма, заданные как разделенная запятыми пара, состоящая из 'NgramLengths' и положительное целое число или вектор положительных целых чисел.

Если вы задаете NgramLengths, тогда функция возвращает n-граммы только этих длин. Если вы не задаете NgramLengths, затем функция возвращает верхние n-граммы независимо от длины.

Пример: [1 2 3]

Опция игнорирования случая, заданная как разделенная разделенными запятой парами, состоящая из 'IgnoreCase' и одно из следующих:

  • false - обрабатывать n-граммы, различающиеся только в зависимости от случая, как отдельные n-граммы.

  • true - обрабатывать n-граммы, различающиеся только по случаям, как те же n-граммы и счетчики слияния.

Индикатор для принудительного возврата выхода в виде массива ячеек, заданный как разделенная запятыми пара, состоящая из 'ForceCellOutput' и true или false.

Типы данных: logical

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

свернуть все

Таблица верхних n-граммов, отсортированных в порядке частоты, или массив ячеек из таблиц.

Таблица имеет следующие столбцы:

NgramN-грамм, заданный как строковый вектор
CountКоличество раз, когда n-грамм появляется в модели мешка n-граммов.
NgramLengthДлина n-грамма.

Если bag является некалярным массивом или 'ForceCellOutput' является true, затем функция возвращает выходы как массив ячеек из таблиц. Каждый элемент массива ячеек является таблицей, содержащей верхние n-граммы соответствующего элемента bag.

Введенный в R2018a