join

Объедините несколько моделей мешка слов или мешка n-граммов

Описание

пример

newBag = join(bag) объединяет элементы массива bag путем объединения счетчиков частот. Функция объединяет элементы первой размерности, не равные 1.

newBag = join(bag,dim) объединяет элементы массива bag вдоль размерности dim.

Примеры

свернуть все

Создайте массив из двух моделей мешков слов из токенизированных документов.

str = [ ...
    "an example of a short sentence"
    "a second short sentence"];
documents = tokenizedDocument(str);
bag(1) = bagOfWords(documents(1));
bag(2) = bagOfWords(documents(2))
bag=1×2 object
  1x2 bagOfWords array with properties:

    Counts
    Vocabulary
    NumWords
    NumDocuments

Объедините модели мешка слов с помощью join.

bag = join(bag)
bag = 
  bagOfWords with properties:

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

Если ваши текстовые данные содержатся в нескольких файлах в папке, то можно импортировать текстовые данные и создать модель мешка слов параллельно с помощью parfor. Если у вас установлены Parallel Computing Toolbox™, то parfor цикл проходит параллельно, в противном случае он запускается последовательно. Использование join объединить массив моделей мешков слов в одну модель.

Создайте модель мешка слов из набора файлов. Примеры сонетов имеют имена файлов "exampleSonnetN.txt, "где N - номер сонета. Получите список файлов и их местоположений с помощью dir.

fileLocation = fullfile(matlabroot,'examples','textanalytics','exampleSonnet*.txt');
fileInfo = dir(fileLocation)
fileInfo = 

  0x1 empty struct array with fields:

    name
    folder
    date
    bytes
    isdir
    datenum

Инициализируйте пустую модель мешка слов, а затем закольцовывайте файлы и создайте массив моделей мешка слов.

bag = bagOfWords;

numFiles = numel(fileInfo);
parfor i = 1:numFiles
    f = fileInfo(i);
    filename = fullfile(f.folder,f.name);
    
    textData = extractFileText(filename);
    document = tokenizedDocument(textData);
    bag(i) = bagOfWords(document);
end

Объедините модели мешка слов с помощью join.

bag = join(bag)
bag = 
  bagOfWords with properties:

          Counts: []
      Vocabulary: [1x0 string]
        NumWords: 0
    NumDocuments: 0

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

свернуть все

Массив моделей мешка слов или мешка n-граммов, заданный как bagOfWords массив или bagOfNgrams массив. Если bag является bagOfNgrams массив, тогда каждый элемент, который будет соединен, должен иметь одно и то же значение для NgramLengths свойство.

Размерность, по которой можно соединить модели, заданная как положительное целое число. Если dim не задан, тогда по умолчанию это первая размерность с размером, не равным 1.

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

свернуть все

Выходная модель, возвращенная как bagOfWords объект или bagOfNgrams объект. Тип newBag совпадает с типом bag. newBag имеет тот совпадающий тип данных, что и входная модель, и имеет размер 1 вдоль соединяемой размерности.

Введенный в R2018a