addDocument

Добавьте документы в модель мешка слов или мешка n-граммов

Описание

пример

newBag = addDocument(bag,documents) добавляет documents к модели мешка слов или мешка n-граммов bag.

Примеры

свернуть все

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

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 third example of a short sentence" 
    "another short sentence"]);
newBag = addDocument(bag,documents)
newBag = 
  bagOfWords with properties:

          Counts: [4x9 double]
      Vocabulary: [1x9 string]
        NumWords: 9
    NumDocuments: 4

Если ваши текстовые данные содержатся в нескольких файлах в папке, то можно импортировать текстовые данные в MATLAB с помощью file datastore.

Создайте файл datastore для текстовых файлов сонета в качестве примера. Примеры сонетов имеют имена файлов "exampleSonnetN.txt, "где N - номер сонета. Задайте функцию read, которая будет extractFileText.

readFcn = @extractFileText;
fds = fileDatastore('exampleSonnet*.txt','ReadFcn',readFcn)
fds = 
  FileDatastore with properties:

                       Files: {
                              ' .../tpd66a0468/textanalytics-ex73762432/exampleSonnet1.txt';
                              ' .../tpd66a0468/textanalytics-ex73762432/exampleSonnet2.txt';
                              ' .../tpd66a0468/textanalytics-ex73762432/exampleSonnet3.txt'
                               ... and 1 more
                              }
                     Folders: {
                              ' .../mlx_to_docbook5/tpd66a0468/textanalytics-ex73762432'
                              }
                 UniformRead: 0
                    ReadMode: 'file'
                   BlockSize: Inf
                  PreviewFcn: @extractFileText
      SupportedOutputFormats: [1x16 string]
                     ReadFcn: @extractFileText
    AlternateFileSystemRoots: {}

Создайте пустую модель мешка слов.

bag = bagOfWords
bag = 
  bagOfWords with properties:

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

Закольцовывайте файлы в datastore и считывайте каждый файл. Токенизируйте текст в каждом файле и добавляйте документ в bag.

while hasdata(fds)
    str = read(fds);
    document = tokenizedDocument(str);
    bag = addDocument(bag,document);
end

Просмотрите обновленную модель мешка слов.

bag
bag = 
  bagOfWords with properties:

          Counts: [4x276 double]
      Vocabulary: [1x276 string]
        NumWords: 276
    NumDocuments: 4

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

свернуть все

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

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

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

свернуть все

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

Введенный в R2017b