exponenta event banner

topkngrams

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

Описание

пример

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

пример

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

пример

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

Примеры

свернуть все

Создайте таблицу наиболее часто встречающихся биграмм модели Bag-of-n-grams.

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

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

Создайте модель мешка n-grams.

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-grams. Для подсчета 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     

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

свернуть все

Входная модель мешка n-граммов, указанная как 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