закодировать

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

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

Синтаксис

counts = encode(bag,documents)
counts = encode(bag,words)
counts = encode(___,Name,Value)

Описание

пример

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.Vocabulary
ans = 1x7 string array
    "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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

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

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

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

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

Типы данных: логический

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

свернуть все

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

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

Введенный в R2017b