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 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: ["fairest"    "creatures"    "desire"    ...    ]
          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 вектор символов, затем он представляет отдельное слово (униграмма).

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

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

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

Индексы N-грамм, чтобы удалить в виде вектора из числовых индексов или вектора из логических индексов. Индексы в idx соответствуйте строкам bag.Ngrams.

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

Введенный в R2018a