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