removeNgrams

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

Синтаксис

newBag = removeNgrams(bag,ngrams)
newBag = removeNgrams(bag,idx)

Описание

пример

newBag = removeNgrams(bag,ngrams) удаляет заданные N-граммы из мешка n модели bag граммов.

пример

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 array
    "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 array
    "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-by-maxN, где NumNgrams является количеством N-грамм, и maxN является длиной самой большой n-граммы. Если ngrams является вектором символов, то он представляет отдельное слово (униграмма).

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

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

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

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

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

Введенный в R2018a