exponenta event banner

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 с помощью хранилища данных файла.

Создайте хранилище данных файла для текстовых файлов примера сонета. Примеры сонетов имеют имена файлов "exampleSonnetN.txt", где N - номер сонета. Укажите функцию чтения, которая должна быть 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

Закольцовывайте файлы в хранилище данных и считывайте каждый файл. Пометить текст в каждом файле и добавить документ в 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