encode

Закодируйте документы как матрицу счетчиков слов или n-граммов

Описание

Использовать encode кодировать массив токенизированных документов как матрицу отсчётов слов или n-граммов согласно модели мешка слов или мешка n-граммов. Чтобы кодировать документы как векторы или индексы слов, используйте wordEncoding объект.

пример

counts = encode(bag,documents) возвращает матрицу отсчётов частот для documents на основе модели мешка слов или мешка n-граммов bag.

пример

counts = encode(bag,words) возвращает матрицу отсчётов частот для списка слов.

пример

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

Примеры

свернуть все

Закодируйте массив документов как матрицу отсчётов слов.

documents = tokenizedDocument([
    "an example of a short sentence" 
    "a second short sentence"]);
bag = bagOfWords(documents) 
bag = 
  bagOfWords with properties:

          Counts: [2x7 double]
      Vocabulary: [1x7 string]
        NumWords: 7
    NumDocuments: 2

documents = tokenizedDocument([
    "a new sentence" 
    "a second new sentence"])
documents = 
  2x1 tokenizedDocument:

    3 tokens: a new sentence
    4 tokens: a second new sentence

Просмотрите документы, закодированные как матрица счетчиков слов. Слово «новый» не появляется в bag, так что это не учитывается.

counts = encode(bag,documents);
full(counts)
ans = 2×7

     0     0     0     1     0     1     0
     0     0     0     1     0     1     1

Столбцы соответствуют словарю модели bag-of-words.

bag.Vocabulary
ans = 1x7 string
    "an"    "example"    "of"    "a"    "short"    "sentence"    "second"

Закодируйте массив слов как вектор отсчётов слов.

documents = tokenizedDocument([
    "an example of a short sentence"
    "a second short sentence"]);
bag = bagOfWords(documents)
bag = 
  bagOfWords with properties:

          Counts: [2x7 double]
      Vocabulary: [1x7 string]
        NumWords: 7
    NumDocuments: 2

words = ["another" "example" "of" "a" "short" "example" "sentence"];
counts = encode(bag,words)
counts = 
   (1,2)        2
   (1,3)        1
   (1,4)        1
   (1,5)        1
   (1,6)        1

Закодируйте массив документов как матрицу счетчиков слов с документами в столбцах.

documents = tokenizedDocument([
    "an example of a short sentence"
    "a second short sentence"]);
bag = bagOfWords(documents)
bag = 
  bagOfWords with properties:

          Counts: [2x7 double]
      Vocabulary: [1x7 string]
        NumWords: 7
    NumDocuments: 2

documents = tokenizedDocument([
    "a new sentence"
    "a second new sentence"])
documents = 
  2x1 tokenizedDocument:

    3 tokens: a new sentence
    4 tokens: a second new sentence

Просмотрите документы, закодированные как матрица счетчиков слов, с документами в столбцах. Слово «новый» не появляется в bag, так что это не учитывается.

counts = encode(bag,documents,'DocumentsIn','columns');
full(counts)
ans = 7×2

     0     0
     0     0
     0     0
     1     1
     0     0
     1     1
     0     1

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

свернуть все

Входная модель мешка слов или мешка n-граммов, заданная как bagOfWords объект или bagOfNgrams объект.

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

Совет

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

Входы слова, заданные как вектор строки, вектор символов или массив ячеек векторов символов. Если вы задаете words как вектор символов, тогда функция обрабатывает аргумент как одно слово.

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

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

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

Пример: 'DocumentsIn','rows' задает ориентацию выходных документов в виде строк.

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

  • 'rows' - Возвращает матрицу отсчётов частот со строками, соответствующими документам.

  • 'columns' - Возвращает транспонированную матрицу отсчётов частот со столбцами, соответствующими документам.

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

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

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

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

свернуть все

Счетчики Word или n-грамм, возвращенные как разреженная матрица неотрицательных целых чисел или массив ячеек разреженных матриц.

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

Введенный в R2017b