С чего начать извлечение информации?

Не могли бы вы порекомендовать путь обучения, чтобы начать и стать очень хорошим в извлечении информации. Я начал читать об этом, чтобы сделать один из моих хобби-проектов, и вскоре понял, что мне нужно хорошо разбираться в математике (алгебра, статистика, проба). Я прочитал несколько вводных книг по различным математическим темам (и это очень весело). Ищу какое-то руководство. Пожалуйста помоги.

Обновление: просто чтобы ответить на один из комментариев. Меня больше интересует извлечение текстовой информации.


person StackUnderflow    schedule 21.02.2009    source источник
comment
Какого рода информация (кластеры? правила ассоциации? новизна? последовательные паттерны?)? Какие данные (временные ряды? транзакции? изображения? текст?)? Какой анализ? Какой домен?   -  person Anonymous    schedule 21.02.2009


Ответы (8)


Просто чтобы ответить на один из комментариев. Меня больше интересует извлечение текстовой информации.

В зависимости от характера вашего проекта, обработка естественного языка и Компьютерная лингвистика может пригодиться: они предоставляют инструменты для измерения и извлечения признаков из текстовой информации, а также применяют обучение, оценку или классификации.

Хорошие вводные книги включают Коллективный разум Рейли по программированию (главы о «поиске и ранжировании», фильтрации документов и, возможно, деревьях решений).

Предлагаемые проекты, использующие эти знания: теги POS (части речи) и распознавание именованных объектов (способность распознавать имена, места и даты из обычного текста). Вы можете использовать Википедию в качестве учебного корпуса, так как большая часть целевой информации уже извлечена в инфобоксах — это может предоставить вам ограниченный объем отзывов об измерениях.

Другой большой молот в IE — это поиск, область, которую нельзя недооценивать. Опять же, книга OReilly представляет собой введение в базовое ранжирование; когда у вас есть большой корпус проиндексированного текста, вы можете выполнять с ним некоторые настоящие задачи IE. Посмотрите Peter Norvig: Theorizing from data в качестве отправной точки и хороший мотиватор - возможно, вы могли бы повторно применить некоторые из их результатов в качестве учебного упражнения.

В качестве предупреждения, я думаю, что должен сказать вам, что извлечение информации сложно. Первые 80% любой задачи обычно тривиальны; однако сложность каждого дополнительного процента задач для IE обычно растет в геометрической прогрессии — как в разработке, так и во времени исследования. Кроме того, он недостаточно задокументирован — большая часть высококачественной информации в настоящее время находится в малоизвестных технических документах (Google Scholar — ваш друг). ) - проверьте их, как только у вас пару раз обожжется рука. Но самое главное, не позволяйте этим препятствиям сбить вас с толку — в этой области, безусловно, есть большие возможности добиться прогресса.

person Silver Dragon    schedule 21.02.2009

Я бы порекомендовал прекрасную книгу Introduction to Information Retrieval Кристофера Д. Мэннинга, Прабхакара Рагхавана и Хинрих Шютце. Он охватывает широкую область вопросов, которые составляют большую и современную (2008 г.) основу для извлечения информации, и доступен в Интернете в полном тексте (по данной ссылке).

person Fabian Steeg    schedule 21.02.2009
comment
Да, но, как я пишу в своем ответе, я считаю, что он охватывает области, которые составляют прочную основу для извлечения информации. Вы просили с чего начать. - person Fabian Steeg; 21.02.2009
comment
Я собирался порекомендовать книгу «Введение в поиск информации», но у меня есть только PDF-файл, а не URL-адрес того места, где я ее нашел. Спасибо за размещение ссылки. - person John D. Cook; 21.02.2009

Я бы посоветовал вам взглянуть на Набор инструментов для работы с естественным языком (nltk) и на Книга NLTK. Оба доступны бесплатно и являются отличными инструментами для обучения.

person theycallmemorty    schedule 01.04.2009

Вам не нужно хорошо разбираться в математике, чтобы работать с IE, просто поймите, как работает алгоритм, поэкспериментируйте со случаями, для которых вам нужен оптимальный результат, производительность и масштаб, с которым вам нужно достичь целевого уровня точности, и работайте с этим. Вы в основном работаете с алгоритмами и программированием и аспектами теории CS / AI / машинного обучения, а не пишете докторскую работу о создании нового алгоритма машинного обучения, где вам нужно убедить кого-то с помощью математических принципов, почему алгоритм работает, поэтому я категорически не согласен с этим понятием. Есть разница между практикой и теорией — как мы все знаем, математики больше зациклены на теории, чем на практической реализации алгоритмов для создания работоспособных бизнес-решений. Тем не менее, вам нужно будет предварительно прочитать как книги по НЛП, так и журнальные статьи, чтобы выяснить, что люди нашли в своих результатах. IE — это очень контекстно-зависимый домен, поэтому вам нужно сначала определить, в каком контексте вы пытаетесь извлечь информацию. Как бы вы определили эту информацию? Какова ваша структурированная модель? Предположим, вы извлекаете данные из полу- и неструктурированных наборов данных. Затем вы также захотите взвесить, хотите ли вы подойти к своему IE со стандартным человеческим подходом, который включает такие вещи, как регулярные выражения и сопоставление с образцом, или вы хотите сделать это, используя подходы статистического машинного обучения, такие как цепи Маркова. Вы даже можете взглянуть на гибридные подходы.

Стандартная модель процесса, которой вы можете следовать при извлечении, заключается в адаптации подхода интеллектуального анализа данных/текста:

предварительная обработка - определите и стандартизируйте свои данные для извлечения из различных или определенных источников, очищая ваши данные

сегментация/классификация/кластеризация/ассоциация — ваш черный ящик, в котором будет выполняться большая часть вашей работы по извлечению

постобработка — очистка ваших данных до того места, где вы хотите их сохранить или представить в виде информации

Кроме того, вам необходимо понимать разницу между тем, что является данными, и тем, что является информацией. Поскольку вы можете повторно использовать обнаруженную информацию в качестве источников данных для создания дополнительных информационных карт/деревьев/графиков. Все очень контекстуально.

стандартные шаги для: ввод-›процесс-›вывод

Если вы используете Java/C++, существует множество фреймворков и библиотек, с которыми вы можете работать.

Perl был бы отличным языком для выполнения работы по извлечению NLP, если вы хотите выполнять стандартное извлечение большого количества текста.

Вы можете захотеть представить свои данные в виде XML или даже в виде графиков RDF (Semantic Web), а для определенной вами контекстной модели вы можете построить графики взаимосвязей и ассоциаций, которые, скорее всего, будут меняться по мере того, как вы будете делать все больше и больше запросов на извлечение. Разверните его как службу отдыха, поскольку вы хотите рассматривать его как ресурс для документов. Вы даже можете связать его с таксономизированными наборами данных и фасетным поиском, скажем, с помощью Solr.

Хорошие источники для чтения:

  • Справочник по вычислительной лингвистике и обработке естественного языка
  • Основы статистической обработки естественного языка
  • Приложения для извлечения информации в Prospect
  • Введение в языковую обработку с помощью Perl и Prolog
  • Обработка речи и языка (Юрафски)
  • Программирование приложений для интеллектуального анализа текста
  • Справочник по интеллектуальному анализу текста
  • Приручение текста
  • Алгоритмы интеллектуальной сети
  • Создание поисковых приложений
  • Журнал IEEE

Убедитесь, что вы провели тщательную оценку перед развертыванием таких приложений/алгоритмов в рабочей среде, поскольку они могут рекурсивно увеличить ваши требования к хранилищу данных. Вы можете использовать AWS/Hadoop для кластеризации, Mahout для крупномасштабной классификации среди прочего. Храните свои наборы данных в MongoDB или неструктурированные дампы в jackrabbit и т. д. Попробуйте сначала поэкспериментировать с прототипами. Существуют различные архивы, которые вы можете использовать, чтобы основывать свое обучение, например, на корпусе Reuters, типстере, TREC и т. д. Вы даже можете проверить алхимический API, GATE, UIMA, OpenNLP и т. д.

Создание извлечений из стандартного текста проще, чем, скажем, веб-документа, поэтому представление на этапе предварительной обработки становится еще более важным для определения того, что именно вы пытаетесь извлечь из стандартизированного представления документа.

Стандартные показатели включают точность, полноту, показатель f1 и другие.

person meme    schedule 29.05.2011

Я не согласен с людьми, которые рекомендуют читать «Программирование коллективного разума». Если вы хотите делать что-то даже средней сложности, вам нужно хорошо разбираться в прикладной математике, а PCI дает вам ложное чувство уверенности. Например, когда речь идет о SVM, то просто говорится, что libSVM — это хороший способ их реализации.

Итак, libSVM определенно хороший пакет, но кому какое дело до пакетов. Что вам нужно знать, так это то, почему SVM дает потрясающие результаты, которые он дает, и чем он принципиально отличается от байесовского образа мышления (и чем Вапник — легенда).

ИМХО, единого решения нет. Вы должны хорошо разбираться в линейной алгебре, вероятностях и байесовской теории. Я должен добавить, что Байес так же важен для этого, как кислород для человека (это немного преувеличено, но вы понимаете, что я имею в виду, верно?). Кроме того, хорошо освойте машинное обучение. Просто использовать работу других людей — это прекрасно, но в тот момент, когда вы захотите узнать, почему что-то было сделано именно так, как было, вам нужно будет кое-что узнать об ML.

Проверьте эти два для этого:

http://pindancing.blogspot.com/2010/01/learning-about-machine-learniing.html

http://measuringmeasures.com/blog/2010/1/15/learning-about-statistical-learning.html

http://measuringmeasures.com/blog/2010/3/12/learning-about-machine-learning-2nd-ed.html

Ладно, теперь их трое :) / Круто

person crazyaboutliv    schedule 28.09.2010

Статья Википедии Извлечение информации представляет собой краткое введение.

На более академическом уровне вы можете просмотреть статью типа Integrating Probabilistic Extraction. Модели и интеллектуальный анализ данных для обнаружения взаимосвязей и шаблонов в тексте.

person Jeff Moser    schedule 21.02.2009

Посмотрите здесь, если вам нужна услуга NER корпоративного уровня. Разработка системы NER (и обучающих наборов) — очень трудоемкая и высококвалифицированная задача.

person Mark    schedule 17.01.2010

Это немного не по теме, но вы можете прочитать «Коллективный разум программирования» от O'Reilly. Он косвенно связан с извлечением текстовой информации и не требует большой математической подготовки.

person John D. Cook    schedule 21.02.2009