removeInfrequentNgrams

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

Описание

пример

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

пример

newBag = removeInfrequentNgrams(bag,count,'NgramLengths',lengths) только удаляет N-граммы с длинами, заданными lengths. Функция, по умолчанию, является чувствительной к регистру.

newBag = removeInfrequentNgrams(___,'IgnoreCase',true) удаляет N-граммы, которые появляются в большей части count времена игнорируя регистр. Если N-граммы отличаются только случаем, то соответствующие количества объединены.

Примеры

свернуть все

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

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

Создайте мешок n модели граммов. Задайте, чтобы считать биграммы (пары слов), и триграммы (утраивается слов).

bag = bagOfNgrams(documents,'NgramLengths',[2 3])
bag = 
  bagOfNgrams with properties:

          Counts: [154x18022 double]
      Vocabulary: ["fairest"    "creatures"    "desire"    ...    ]
          Ngrams: [18022x3 string]
    NgramLengths: [2 3]
       NumNgrams: 18022
    NumDocuments: 154

Удалите N-граммы любой длины, которые появляются два или меньше раз всего.

bag = removeInfrequentNgrams(bag,2)
bag = 
  bagOfNgrams with properties:

          Counts: [154x103 double]
      Vocabulary: ["thine"    "thy"    "self"    "sweet"    "thou"    ...    ]
          Ngrams: [103x3 string]
    NgramLengths: [2 3]
       NumNgrams: 103
    NumDocuments: 154

Удалите биграммы, которые появляются четыре или меньше раз всего.

bag = removeInfrequentNgrams(bag,4,'NgramLengths',2)
bag = 
  bagOfNgrams with properties:

          Counts: [154x41 double]
      Vocabulary: ["thine"    "thy"    "sweet"    "thou"    "dost"    ...    ]
          Ngrams: [41x3 string]
    NgramLengths: [2 3]
       NumNgrams: 41
    NumDocuments: 154

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

свернуть все

Введите мешок n модели граммов в виде bagOfNgrams объект.

Считайте порог в виде положительного целого числа. Функция удаляет N-граммы, которые появляются count времена всего или меньше.

Длины n-граммы в виде положительного целого числа или вектора из положительных целых чисел.

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

Пример: [1 2 3]

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

свернуть все

Выведите мешок n модели граммов, возвращенной как bagOfNgrams объект.

Введенный в R2018a