Как начать извлечение информации? - PullRequest
7 голосов
/ 21 февраля 2009

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

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

Ответы [ 8 ]

9 голосов
/ 21 февраля 2009

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

В зависимости от характера вашего проекта, Обработка естественного языка и Вычислительная лингвистика могут оказаться полезными - они предоставляют инструменты для измерения и извлечения характеристик из текстовой информации, а также применять тренировки, оценки или классификации. Хорошие вводные книги включают Коллективный разум OReilly's Programming Intelligence (главы «Поиск и ранжирование», Фильтрация документов и, возможно, деревья решений).

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

Другой большой молоток в IE - это поиск, поле, которое нельзя недооценивать. Снова, книга OReilly обеспечивает некоторое введение в базовый рейтинг; как только у вас есть большой корпус индексированного текста, вы можете выполнять с ним действительно задачи IE. Проверьте Питер Норвиг: теоретизирование на основе данных в качестве отправной точки и очень хороший мотиватор - возможно, вы могли бы переопределить некоторые из их результатов в качестве учебного упражнения.

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

5 голосов
/ 21 февраля 2009

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

4 голосов
/ 02 апреля 2009

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

3 голосов
/ 29 мая 2011

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

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

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

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

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

Если вы используете Java / C ++, существует множество фреймворков и библиотек, с которыми вы можете работать. Perl был бы отличным языком для вашей работы по извлечению НЛП, если вы хотите делать много стандартного извлечения текста.

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

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

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

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

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

Стандартные меры включают в себя: точность, отзыв, f1 среди прочих.

2 голосов
/ 28 сентября 2010

Я не согласен с людьми, которые рекомендуют читать Программирование Коллективного Разума. Если вы хотите делать что-либо даже средней сложности, вам нужно хорошо разбираться в прикладной математике, а PCI дает вам ложное чувство уверенности. Например, когда он говорит о SVM, он просто говорит, что libSVM - хороший способ их реализации. Сейчас libSVM, безусловно, хороший пакет, но кому нужны пакеты. Что вам нужно знать, так это то, почему SVM дает потрясающие результаты, которые он дает, и как он в корне отличается от байесовского мышления (и как Vapnik является легендой).

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

Хорошо, теперь их трое :) / Круто

1 голос
/ 17 января 2010

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

1 голос
/ 21 февраля 2009

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

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

0 голосов
/ 21 февраля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...