- PVSM.RU - https://www.pvsm.ru -
Привет!
Надеемся, что в Новогодние праздники многие из Вас отлично отдохнули. Но, каникулы закончились. Пора вернуться к машинному обучению и анализу данных. С 25 января мы запускаем третий набор Школы Данных «Билайн» [1].
В прошлом посте [2] мы обещали вам более детально рассказать, чему мы учим на наших занятиях по анализу текстов. В данном посте мы данное обещание исполняем.
Кстати, если вы уже активно занимаетесь анализом и обработкой текстов и хотите попробовать себя, рекомендуем поиграться с задачей The Allen AI Science Challenge [3] на Kaggle=) и заодно поучаствовать в DeepHack [4], хакатоне по анализу текстов и построению ответных систем.
Про то, чему мы учим на наших занятиях по обработке текстов дальше.
Автоматическая обработка текстов – это область с высоким порогом вхождения: чтобы сделать интересное бизнес-предложение или принять участие в соревновании по анализу текстов, например, в SemEval [5] или Диалоге [6], необходимо разбираться в методах машинного обучения, уметь пользоваться специальными библиотеками для обработки текстов, чтобы не программировать с нуля рутинные операции, и иметь базовые представления о лингвистике.
Поскольку рассказать обо всех задачах обработки текстов и тонкостях их решения в рамках нескольких занятий невозможно, мы сконцентрировались на самых основных задачах: токенизации, морфологическом анализе, задаче выделения ключевых слов и словосочетаний, определению сходства между текстами.
Токенизация (от английского слова tokenization) – это процесс разбиения текста на предложения и на слова. Задача токенизации ошибочно может показаться тривиальной на первый взгляд.
На самом деле, понятие слова или токена – элемента текста – размыто: например, название города New York, формально, состоит из двух отдельно стоящих слов. Разумеется, для любой разумной обработки нужно считать эти два слова одним токеном и не обрабатывать их по одиночке.
Кроме того, точка – не всегда конец предложения, в отличии от вопросительного и восклицательного знаков. Точки могут быть частью аббревиатуры или записи числа.
Если не углубляться в теорию, а относится к токенизации с практической точки зрения, как к абсолютно необходимой, но не самой увлекательной задаче, то разумнее всего использовать комбинированные токенизаторы, которые разбивают текст на слова по правилам, а для разбиения на предложения используют алгоритмы бинарной классификации: каждую точку классификатор относит либо к положительному классу (точка является концом предложения), либо к отрицательному (точка не является концом предложения). Аналогичным образом классификатор обращается и с восклицательным и вопросительным знаком.
К счастью, реализовывать с нуля эти алгоритмы слушателям школы не пришлось: все они реализованы в Natural Language Toolkit, библиотеке для обработки текстов на Python.
Морфологический анализ (англ. Part of speech tagging) заключается в определению морфологических свойств каждого слова: к какой части речи относится слово, если слово – существительное, то в каком числе оно стоит (а также каков его род и падеж, если речь идет о русском языке), если слово – глагол, то каково его время, вид, лицо, залог, и так далее.
Определить часть речи слова не так просто из-за морфологической омонимии: разные слова могут иметь совпадающие формы, то есть, являться омонимами. Например, в предложении “Его удивил простой солдат” целых два омонима: простой и солдат.
В NLTK реализованы и такие умные морфологические анализаторы, которые умеют определять часть речи в зависимости от контекста, и простые морфологические словари, которые для каждого слова возвращают его самый частотный разбор.
Задача выделения ключевых слов и словосочетаний слабо формализуема: под ключевыми словами и словосочетаниями обычно понимают слова и словосочетания, которые отражают тематическую специфику текста.
В силу размытости определения существуют десятки, если не сотни, подходов к выделению ключевых слов и словосочетаний. Мы рассматриваем некоторые из них:
Облако ключевых слов и словосочетаний, построенное по “Алисе в стране Чудес"
Использование tf–idf не ограничивается задачей извлечения ключевых слов и словосочетаний. Другое применение tf–idf – это вычисление сходства между текстами. Если каждый текст из коллекции представить вектором tf–idf слов, в него входящих, то сходство между двумя текстами можно будет определить как косинус между двумя такими векторами в многомерном пространстве слов. Такое косинусное сходство между двумя текстами можно использовать в качестве расстояния для кластерного анализа.
Deep Learning подход к обработке текстов: структура данных word2vec:
Помимо классических методов обработки текстов, о которых мы рассказали выше, в последнее время набирает популярность структура данных word2vec, разработанная компанией Google и использующая подход глубокого обучения (Deep Learning). С помощью нее можно немного поиздеваться над своим
У читателя тут же возникает вопрос: и что теперь с этим делать? Вот перечень самых простых задач, которые после можно решать по щелчку пальца:
И это далеко не полный перечень задач, которые решаются с помощью этой структуры данных word2vec. Более подробно обо всех применениях и тонкостях настройки мы и рассказываем на наших занятиях.
Это была лишь вводная часть такой сложной и многогранной науки как Natural Language Processing (обработка естественного языка). На наших занятиях мы также рассматриваем множество задач автоматической обработки текстов применимых в том числе на русских корпусах (русских текстах).
Это особенно актуально, т.к. на сегодняшний момент множество вендоров на рынке предлагают решения, протестированные на англо-корпусах и единого решения «купил и поставил» не существует — приходится для каждой задачи разрабатывать продукт практически с нуля.
Примеры применения текстовой аналитики:
Среди применений анализа естественного языка на сегодняшний день одними из самых известных примеров является мониторинг упоминаний каких-либо объектов и анализ отношения к ним в СМИ и соц. сетях. Не секрет, что Интернет ежедневно генерирует огромное количество текстовой информации — новости, пресс-релиза, блоги, не говоря уже о социальных сетях. Поэтому даже сама задача сбора и хранения такой информации, не говоря уже о переработке является отдельным бизнесом. Отдельную ценность представляют именно методы обработки текстов, в особенности мониторинг упоминаний в текстах отношения к конкретному объекту или компании.
Наверняка, многие из Вас замечали, что если Вы напишете что-либо в социальной сети об известном бренде, а еще лучше — упомяните его тегом, то с немалой вероятностью Вам придет ответ. Разумеется, сам ответ пока пишут люди (хотя и в этом анализ естественного языка делает большой прогресс), но вот классификацию самого текста вашего обращения (негативный, нейтральный, позитивный) делают умные алгоритмы. Это и есть классическая задача Sentiment Analysis, которую мы подробно разбираем на занятиях, однако, у которой есть огромное количество подводных камней.
Тем не менее, решим по-сути только эту задачу — некоторые компании делают на этом неплохой бизнес. Например, компании анализирующие сообщения в социальных сетях и находящие лидеров мнений (это довольно популярная задача из области теории графов, которую мы также рассматриваем на наших лекциях).
Также набирает популярность задача построения ботов, диалоговых роботов, в приложениях для обмена сообщениями. Подобные боты могут отвечать на вопросы клиентов, с помощью них клиенты могут управлять доступными им услугами компании, покупать новые продукты или услуги. Подробнее про ботов в мессенджерах можно почитать, например, здесь. [8]
Как Вы наверное заметили, на сегодняшний день задач анализа обработки естественного языка очень много — и, решив хотя бы одну из них, можно построить целый бизнес.
Для всех интересующихся анализом текстов рекомендуем пройти одноименный курс на Coursera [9] — на наш взгляд, один из самых полезных курсов по автоматической обработке текстов. Если же у Вас есть желание побольше попрактиковаться и порешать задач — добро пожаловать в Школу Данных Билайн [10], третий набор которой стартует уже 25 января.
Автор: ВымпелКом (Билайн)
Источник [11]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/analiz-danny-h/109041
Ссылки в тексте:
[1] Школы Данных «Билайн»: http://bigdata.beeline.digital
[2] посте: http://habrahabr.ru/company/beeline/blog/272799/
[3] The Allen AI Science Challenge: https://www.kaggle.com/c/the-allen-ai-science-challenge
[4] DeepHack: http://deepqa.tilda.ws/page78823.html
[5] SemEval: http://alt.qcri.org/semeval2016/
[6] Диалоге: http://www.dialog-21.ru/evaluation/2016/tonality/
[7] мозгом: http://www.braintools.ru
[8] здесь.: http://techcrunch.com/2016/01/05/facebook-messenger-bots
[9] Coursera: https://www.coursera.org/course/nlp
[10] Школу Данных Билайн: http://bigdata.beeline.digital/
[11] Источник: http://habrahabr.ru/post/274921/
Нажмите здесь для печати.