соединение

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

Синтаксис

newBag = join(bag)
newBag = join(bag,dim)

Описание

пример

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 = 
  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 = 5x1 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
Starting parallel pool (parpool) using the 'local' profile ...
Connected to the parallel pool (number of workers: 12).

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

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

          Counts: [5x3275 double]
      Vocabulary: [1x3275 string]
        NumWords: 3275
    NumDocuments: 5

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

свернуть все

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

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

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

свернуть все

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

Введенный в R2018a