exponenta event banner

Создание простой функции предварительной обработки

В этом примере показано, как создать функцию очистки и предварительной обработки текстовых данных для анализа.

Текстовые данные могут быть большими и содержать много шума, что негативно влияет на статистический анализ. Например, текстовые данные могут содержать следующее:

  • Вариации в случае, например «новый» и «новый»

  • Вариации в словоформах, например «ходить» и «ходить»

  • Слова, которые добавляют шум, например «стоп-слова», такие как «the» и «of»

  • Знаки препинания и специальные символы

  • Теги HTML и XML

Эти облака слов иллюстрируют анализ частоты слов, применяемый к некоторым необработанным текстовым данным из отчетов о погоде, и предварительно обработанную версию тех же текстовых данных.

Может быть полезно создать функцию предварительной обработки, чтобы можно было подготовить различные коллекции текстовых данных одним и тем же способом. Например, при обучении модели можно использовать функцию, позволяющую предварительно обрабатывать новые данные, используя те же шаги, что и данные обучения.

Функция preprocessTextData, перечисленное в конце примера, выполняет следующие шаги:

  1. Маркировка текста с помощью tokenizedDocument.

  2. Лемматизировать слова с помощью normalizeWords.

  3. Стереть пунктуацию с помощью erasePunctuation.

  4. Удалите список стоп-слов (например, «and», «of» и «the»), используя removeStopWords.

  5. Удаление слов, содержащих не более 2 символов removeShortWords.

  6. Удаление слов с 15 или более символами с помощью removeLongWords.

Для использования функции просто введите текстовые данные в preprocessTextData.

textData = [
    "A large tree is downed and blocking traffic outside Apple Hill."
    "There is lots of damage to many car windshields in the parking lot."];
documents = preprocessTextData(textData)
documents = 
  2x1 tokenizedDocument:

    8 tokens: large tree down block traffic outside apple hill
    7 tokens: lot damage many car windshield parking lot

Функция предварительной обработки

function documents = preprocessTextData(textData)

% Tokenize the text.
documents = tokenizedDocument(textData);

% Lemmatize the words. To improve lemmatization, first use 
% addPartOfSpeechDetails.
documents = addPartOfSpeechDetails(documents);
documents = normalizeWords(documents,'Style','lemma');

% Erase punctuation.
documents = erasePunctuation(documents);

% Remove a list of stop words.
documents = removeStopWords(documents);

% Remove words with 2 or fewer characters, and words with 15 or more
% characters.
documents = removeShortWords(documents,2);
documents = removeLongWords(documents,15);

end

Пример более подробного рабочего процесса см. в разделе Подготовка текстовых данных к анализу.

Для выполнения следующих шагов в текстовой аналитике можно попробовать создать классификационную модель или проанализировать данные с помощью тематических моделей. Примеры см. в разделе Создание простой текстовой модели для классификации и анализа текстовых данных с использованием тематических моделей.

См. также

| | | | | |

Связанные темы