exponenta event banner

removeNgrams

Удалить n-грамм из модели мешков n-грамм

Описание

пример

newBag = removeNgrams(bag,ngrams) удаляет указанные n-граммы из модели мешка n-граммов bag. Функция по умолчанию чувствительна к регистру.

newBag = removeNgrams(bag,ngrams,'IgnoreCase',true) удаляет регистр игнорирования n-grams.

пример

newBag = removeNgrams(bag,idx) задает n-грамм по числовым или логическим индексам в bag.Ngrams. Этот синтаксис совпадает с newBag = removeNgrams(bag,bag.Ngrams(idx,:)).

Примеры

свернуть все

Загрузите данные примера. Файл sonnetsPreprocessed.txt содержит предварительно обработанные версии сонетов Шекспира. Файл содержит один сонет на строку со словами, разделенными пробелом. Извлечь текст из sonnetsPreprocessed.txtразделите текст на документы с новыми символами, а затем пометьте документы.

filename = "sonnetsPreprocessed.txt";
str = extractFileText(filename);
textData = split(str,newline);
documents = tokenizedDocument(textData);

Создать модель мешка n-граммов.

bag = bagOfNgrams(documents)
bag = 
  bagOfNgrams with properties:

          Counts: [154×8799 double]
      Vocabulary: [1×3092 string]
          Ngrams: [8799×2 string]
    NgramLengths: 2
       NumNgrams: 8799
    NumDocuments: 154

Просмотрите первую пятерку n-граммов.

topkngrams(bag,5)
ans=5×3 table
         Ngram          Count    NgramLength
    ________________    _____    ___________

    "thou"    "art"      34           2     
    "mine"    "eye"      15           2     
    "thy"     "self"     14           2     
    "thou"    "dost"     13           2     
    "mine"    "own"      13           2     

Удалите n-грамм ["thou" "art"] и ["thou" "dost"] из модели. Просмотрите 5 лучших n-граммов.

ngrams = [...
    "thou" "art"
    "thou" "dost"];
bag = removeNgrams(bag,ngrams);
topkngrams(bag,5)
ans=5×3 table
          Ngram          Count    NgramLength
    _________________    _____    ___________

    "mine"    "eye"       15           2     
    "thy"     "self"      14           2     
    "mine"    "own"       13           2     
    "thy"     "sweet"     12           2     
    "thy"     "love"      11           2     

Загрузите данные примера. Файл sonnetsPreprocessed.txt содержит предварительно обработанные версии сонетов Шекспира. Файл содержит один сонет на строку со словами, разделенными пробелом. Извлечь текст из sonnetsPreprocessed.txtразделите текст на документы с новыми символами, а затем пометьте документы.

filename = "sonnetsPreprocessed.txt";
str = extractFileText(filename);
textData = split(str,newline);
documents = tokenizedDocument(textData);

Создать модель мешка n-граммов.

bag = bagOfNgrams(documents)
bag = 
  bagOfNgrams with properties:

          Counts: [154x8799 double]
      Vocabulary: [1x3092 string]
          Ngrams: [8799x2 string]
    NgramLengths: 2
       NumNgrams: 8799
    NumDocuments: 154

Просмотрите первые десять n-граммов в модели.

bag.Ngrams(1:10,:)
ans = 10x2 string
    "fairest"      "creatures"
    "creatures"    "desire"   
    "desire"       "increase" 
    "increase"     "thereby"  
    "thereby"      "beautys"  
    "beautys"      "rose"     
    "rose"         "might"    
    "might"        "never"    
    "never"        "die"      
    "die"          "riper"    

Извлеките из модели 9-й и 10-й n-грамм. Просмотрите новый список первых десяти n-граммов.

idx = [9 10];
bag = removeNgrams(bag,idx);
bag.Ngrams(1:10,:)
ans = 10x2 string
    "fairest"      "creatures"
    "creatures"    "desire"   
    "desire"       "increase" 
    "increase"     "thereby"  
    "thereby"      "beautys"  
    "beautys"      "rose"     
    "rose"         "might"    
    "might"        "never"    
    "riper"        "time"     
    "time"         "decease"  

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

свернуть все

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

Удаляемые N-граммов, указанные как строковый массив, символьный вектор или клеточный массив символьных векторов.

Если ngrams является строковым массивом или массивом ячеек, то он имеет размер NumNgramsоколо-maxN , где NumNgrams - число n-граммов, и maxN - длина наибольшего n-грамма. Если ngrams является символьным вектором, то он представляет одно слово (unigram).

Значение ngrams(i,j) является jпятое слово iН-грамм. Если количество слов в in-грамм меньше maxN, то остальные записи iтретий ряд ngrams пусты.

Пример: ["An" ""; "An example"; "example" ""]

Типы данных: string | char | cell

Удаляемые индексы n-граммов, определяемые как вектор числовых индексов или вектор логических индексов. Индексы в idx соответствуют строкам bag.Ngrams.

Пример: [1 5 10]

Представлен в R2018a