Как говорят опытные дата саентисты: “Ваша модель может быть настолько хороша, насколько хороши данные для нее.”
Вот несколько пунктов, выполнение которых с высокой вероятностью увеличит точность при решении задач обработки естественного языка (NLP).
1️⃣Перевод всех букв в нижний или верхний регистр. В большинстве задач заглавные буквы являются ненужным признаком, который путает модель.
2️⃣Удаление цифр, чисел или перевод в текстовый эквивалент. Легко можно сделать с помощью регулярных выражений
3️⃣Токенизация - разбиение текстового документа на отдельные слова(токены). Казалось бы, можно разбивать по пробелам или по знакам препинания, но как быть например с сокращениями?(к.т.н. и другие). Поэтому не все так просто,но к счастью есть готовые решения например в библиотеке nltk.
4️⃣Удаление стоп слов. Стоп слова, это слова которые не несут особого смысла и важности для решения задачи. Например, при классификации обращений пользователей, первое слово сообщения “Здравствуйте” не несет полезной информации для решения задачи. Существует готовый список из стоп слов, так же в библиотеке nltk, он содержит такие слова как
5️⃣Стемминг - процесс нахождения основы слова. Например “вечерний” ->”вечер”. Упрощает жизнь модели и помогает агрегировать похожие по смыслу слова.Основа слова не обязательно совпадает с морфологическим корнем слова.
6️⃣Лемматизация - приведение слова к начальной форме. Является альтернативой стемминга. Для существительных это именительный падеж, единственное число, для прилагательных - именительный падеж, единственное число, мужской род, для глаголов, причастий, деепричастий - глагол в инфинитиве несовершенного вида.
Вот несколько пунктов, выполнение которых с высокой вероятностью увеличит точность при решении задач обработки естественного языка (NLP).
1️⃣Перевод всех букв в нижний или верхний регистр. В большинстве задач заглавные буквы являются ненужным признаком, который путает модель.
2️⃣Удаление цифр, чисел или перевод в текстовый эквивалент. Легко можно сделать с помощью регулярных выражений
'\b\d+(?:\.\d+)?\s+'
- для удаления цифр'[^\w\s]'
- для удаления пунктуации3️⃣Токенизация - разбиение текстового документа на отдельные слова(токены). Казалось бы, можно разбивать по пробелам или по знакам препинания, но как быть например с сокращениями?(к.т.н. и другие). Поэтому не все так просто,но к счастью есть готовые решения например в библиотеке nltk.
4️⃣Удаление стоп слов. Стоп слова, это слова которые не несут особого смысла и важности для решения задачи. Например, при классификации обращений пользователей, первое слово сообщения “Здравствуйте” не несет полезной информации для решения задачи. Существует готовый список из стоп слов, так же в библиотеке nltk, он содержит такие слова как
и, в, во, не, что, он, на, я, с, со
и другие. Слова в этот список можно как добавить так и удалить, в зависимости от решаемой задачи.5️⃣Стемминг - процесс нахождения основы слова. Например “вечерний” ->”вечер”. Упрощает жизнь модели и помогает агрегировать похожие по смыслу слова.Основа слова не обязательно совпадает с морфологическим корнем слова.
6️⃣Лемматизация - приведение слова к начальной форме. Является альтернативой стемминга. Для существительных это именительный падеж, единственное число, для прилагательных - именительный падеж, единственное число, мужской род, для глаголов, причастий, деепричастий - глагол в инфинитиве несовершенного вида.