В этом примере показано, как создать функцию, которая очищает и предварительно обрабатывает текстовые данные для анализа.
Текстовые данные могут быть большими и могут содержать много шума, который отрицательно влияет на статистический анализ. Для примера текстовые данные могут содержать следующее:
Изменения в случае, например, «new» и «New»
Изменения в словоформах, например «прогулка» и «ходьба»
Слова, которые добавляют шум, например «стоповые слова», такие как «the» и «of»
Пунктуация и специальные символы
Теги HTML и XML
Эти облака слов иллюстрируют анализ частоты слов, применяемый к некоторым необработанным текстовым данным из отчетов о погоде, и предварительно обработанную версию тех же текстовых данных.
Может быть полезно создать функцию предварительной обработки, чтобы можно было одинаково подготовить различные наборы текстовых данных. Для примера при обучении модели можно использовать функцию, чтобы можно было предварительно обработать новые данные с помощью тех же шагов, что и обучающие данные.
Функция preprocessTextData
, перечисленный в конце примера, выполняет следующие шаги:
Токенизация текста с помощью tokenizedDocument
.
Лемматизируйте слова, используя normalizeWords
.
Удалите пунктуацию с помощью erasePunctuation
.
Удалите список стоповых слов (таких как «and», «of», и «the») с помощью removeStopWords
.
Удалите слова с 2 или меньшим количеством символов, используя removeShortWords
.
Удалите слова с 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
Пример, показывающий более подробный рабочий процесс, см. в разделе Подготовка текстовых данных к анализу.
Для следующих шагов в текстовой аналитике можно попробовать создать классификационную модель или проанализировать данные с помощью тематических моделей. Для примеров смотрите Создание Простой Текстовой Модели для Классификации и Анализа Текстовых Данных Используя Модели Топика.
addPartOfSpeechDetails
| erasePunctuation
| normalizeWords
| removeLongWords
| removeShortWords
| removeStopWords
| tokenizedDocument