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

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

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

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

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

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

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

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

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

свернуть все

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

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

Введенный в R2017b