Книга «Прикладной анализ текстовых данных на Python» |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2019-03-20 09:15 Технологии анализа текстовой информации стремительно меняются под влиянием машинного обучения. Нейронные сети из теоретических научных исследований перешли в реальную жизнь, и анализ текста активно интегрируется в программные решения. Нейронные сети способны решать самые сложные задачи обработки естественного языка, никого не удивляет машинный перевод, «беседа» с роботом в интернет-магазине, перефразирование, ответы на вопросы и поддержание диалога. Почему же Сири, Алекса и Алиса не хотят нас понимать, Google находит не то, что мы ищем, а машинные переводчики веселят нас примерами «трудностей перевода» с китайского на албанский? Ответ кроется в мелочах – в алгоритмах, которые правильно работают в теории, но сложно реализуются на практике. Научитесь применять методы машинного обучения для анализа текста в реальных задачах, используя возможности и библиотеки Python. От поиска модели и предварительной обработки данных вы перейдете к приемам классификации и кластеризации текстов, затем приступите к визуальной интерпретации, анализу графов, а после знакомства с приемами масштабирования научитесь использовать глубокое обучение для анализа текста.
О чем рассказывается в этой книге В этой книге рассказывается о применении методов машинного обучения для анализа текста с использованием только что перечисленных библиотек на Python. Прикладной характер книги предполагает, что мы сосредоточим свое внимание не на академической лингвистике или статистических моделях, а на эффективном развертывании моделей, обученных на тексте внутри приложения. Кому адресована эта книга Эта книга адресована программистам на Python, интересующимся применением методов обработки естественного языка и машинного обучения в своих программных продуктах. Мы не предполагаем наличия у наших читателей специальных академических или математических знаний и вместо этого основное внимание уделяем инструментам и приемам, а не пространным объяснениям. В первую очередь в этой книге обсуждается анализ текстов на английском языке, поэтому читателям пригодится хотя бы базовое знание грамматических сущностей, таких как существительные, глаголы, наречия и прилагательные, и того, как они связаны между собой. Читатели, не имеющие опыта в машинном обучении и лингвистике, но обладающие навыками программирования на Python, не будут чувствовать себя потерянными при изучении понятий, которые мы представим. Отрывок. Извлечение графов из текста Извлечение графа из текста — сложная задача. Ее решение обычно зависит от предметной области, и, вообще говоря, поиск структурированных элементов в неструктурированных или полуструктурированных данных определяется контекстно-зависимыми аналитическими вопросами. Создание социального графа Рассмотрим наш корпус новостных статей и задачу моделирования связей между разными сущностями в тексте. Если рассматривать вопрос различий в охвате между разными информационными агентствами, можно построить граф из элементов, представляющих названия публикаций, имена авторов и источники информации. А если целью является объединение упоминаний одной сущности во множестве статей, в дополнение к демографическим деталям наши сети могут зафиксировать форму обращения (уважительную и другие). Интересующие нас сущности могут находиться в структуре самих документов или содержаться непосредственно в тексте. Наш следующий шаг — создание класса EntityPairs, который получает документы в виде списков сущностей (созданных классом EntityExtractor из главы 7). Этот класс должен действовать как преобразователь в конвейере Pipeline из Scikit-Learn, а значит, наследовать классы BaseEstimator и TransformerMixin, как рассказывалось в главе 4. Предполагается, что сущности в одном документе безусловно связаны друг с другом, поэтому добавим метод pairs, использующий функцию itertools.permutations для создания всех возможных пар сущностей в одном документе. Наш метод transform будет вызывать pairs для каждого документа в корпусе:
Теперь можно последовательно извлечь сущности из документов и составить пары. Но мы пока не можем отличить пары сущностей, встречающихся часто, от пар, встречающихся только один раз. Мы должны как-то закодировать вес связи между сущностями в каждой паре, чем мы и займемся в следующем разделе. Графы свойств Математическая модель графа определяет только наборы узлов и ребер и может быть представлена в виде матрицы смежности (adjacency matrix), которой можно пользоваться в самых разных вычислениях. Но она не поддерживает механизм моделирования силы или типов связей. Появляются ли две сущности только в одном документе или во многих? Встречаются ли они вместе в статьях определенного жанра? Для поддержки подобных рассуждений нам нужен некий способ, позволяющий сохранить значимые свойства в узлах и ребрах графа. Об авторах Бенджамин Бенгфорт (Benjamin Bengfort) — специалист в области data science, живущий в Вашингтоне, внутри кольцевой автострады, но полностью игнорирующий политику (обычное дело для округа Колумбия) и предпочитающий заниматься технологиями. В настоящее время работает над докторской диссертацией в Университете штата Мериленд, где изучает машинное обучение и распределенные вычисления. В его лаборатории есть роботы (хотя это не является его любимой областью), и к его большому огорчению, помощники постоянно вооружают этих роботов ножами и инструментами, вероятно, с целью победить в кулинарном конкурсе. Наблюдая, как робот пытается нарезать помидор, Бенджамин предпочитает сам хозяйничать на кухне, где готовит французские и гавайские блюда, а также шашлыки и барбекю всех видов. Профессиональный программист по образованию, исследователь данных по призванию, Бенджамин часто пишет статьи, освещающие широкий круг вопросов — от обработки естественного языка до исследования данных на Python и применения Hadoop и Spark в аналитике. Источник: habr.com Комментарии: |
|