removeNgrams

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

Описание

пример

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

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

пример

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 н-граммов.

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"  

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

свернуть все

Входная модель bag-of-n-gams, заданная как bagOfNgrams объект.

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

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

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

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

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

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

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

Введенный в R2018a