Один из секретов успеха людей представляется в общении и распространении информацией с другими. Тут вступает в силу знания структуры языков. Однако в мире много языков. У каждого есть много стандартов и алфавитов, комбинация этих слов, организованных осмысленно, привела к формированию предложения. Каждый язык имеет свои собственные правила при создании этих предложений, этот набор правил также известен как грамматика.
В сегодняшнем мире, по оценкам отрасли, только 20 процентов данных генерируются в структурированном формате, когда мы говорим, пишем в Twitter, отправляя сообщения в WhatsApp, Email, Facebook, Instagram или любые текстовые сообщения. Большинство этих данных существует в текстовой форме, которая является крайне неструктурированной. Для того чтобы получить значимые данные из текста, нам нужно следовать методу, который называется Text Mining.
Что такое Text Mining?
Text Mining — это процесс извлечения значимой информации из текста на естественном языке.
Что такое NLP?
Natural Language Processing (NLP) — это область информатики и искусственного интеллекта, которая занимается человеческими языками.
Другими словами, NLP является компонентом интеллектуального анализа текста, выполняющий особый вид лингвистического анализа, который по существу помогает машинному «чтению» текста. Он использует другую методологию для расшифровки неоднозначностей в человеческом языке, включая следующие: автоматическое суммирование, разметка части речи, устранение неоднозначности, разбиение на фрагменты, а также устранение неоднозначности и понимание, распознавание естественного языка. Мы увидим все процессы пошагово, используя язык Python.
Во-первых, нам нужно установить библиотеку NLTK, которая является инструментарием для создания программ на Python для работы с данными на человеческом языке, а также предоставляет простой в использовании интерфейс.
Терминологии в NLP
Tokenization
Токенизация — это первый шаг в НЛП. Это процесс разбиения строк на токены, которые, в свою очередь, являются небольшими структурами или единицами. Токенизация включает в себя три шага, которые разбивают сложное предложение на слова, понимают важность каждого слова по отношению к предложению и наконец, создают структурное описание входного предложения.
Вывод:
Из вышеприведенного вывода мы можем увидеть текст, разбитый на токены. Слова, запятая, знаки препинания называются токенами.
Нахождение частоты слов в тексте
Вывод
‘the’ встречается 3 раза в тексте, ‘Brazil’ два раза и т. д.
Вывод
Стемминг

Stemming
Стемминг обычно относится к нормализации слов в их базовую или корневую форму.
Например у нас есть слова «waited», «waiting», здесь «корневое» слово «wait». В стемминге есть два метода, а именно: Porter Stemming (метод Портера) , удаляет общие морфологические и флективные окончания в словах и Lancaster Stemming (метод Ланкастера), более агрессивный алгоритм стемминга.
Вывод
Вывод
Вывод
Метод Ланкастера более агрессивен, чем Портера
Лемматизация

Lemmatization
Проще говоря, это процесс преобразования слова в его базовую форму. Разница между стеммингом и лемматизацией заключается в том, что лемматизация учитывает контекст и преобразует слово в его значимую базовую форму, тогда как стемминг просто удаляет последние несколько символов, что часто приводит к неверному значению и орфографическим ошибкам.
Например, лемматизация правильно определила бы базовую форму «caring» и «care», в то время как стеммирование отрезало бы «ing» часть и преобразовало бы ее в car.
Лемматизация может быть реализована в python с использованием Wordnet Lemmatizer, Spacy Lemmatizer, TextBlob, Stanford CoreNLP
Стоп слова
Наиболее популярные стоп слова в английском языке: “the”, “a”, “at”, “for”, “above”, “on”, “is”, “all”. Эти слова не несут смысловую нагрузку и могут быть удалены из текста. Мы можем удалить их с помощью NLTK библиотеки.
Вывод
Пометка части речи (POS)

Part-of-speech tagging
Пометка части речи используется для присвоения частей речи каждому слову данного текста (таким как существительные, глаголы, местоимения, наречие, союз, прилагательные, междометия) на основе его определяется контекст. Есть много инструментов, доступных для POS-тегирования, некоторые из широко используемых — это NLTK, Spacy, TextBlob, Standford CoreNLP и т. д.
Вывод
Named entity recognition

Named entity recognition
Это процесс обнаружения именованных объектов, таких как имя человека, название места, название компании, количество и денежная стоимость.
Chunking

nlp chunking
Разделение на части означает сбор отдельных фрагментов информации и группирование их в более крупные фрагменты. В контексте NLP и интеллектуального анализа текста разбиение на фрагменты означает группирование слов или токенов в фрагменты.
Эта статья освещает предварительную обработку текста и охватывает этапы NLTK, в том числе токенизацию, stemming, лемматизацию, тегирование POS, распознавание именованных объектов и chunking.
Спасибо за прочтение. Продолжайте учиться и следите за обновлениями!
Dhilip Subramanian. Text Mining in Python: Steps and Examples