Использование обработки естественного языка для синтаксического анализа веб-сайтов

#nlp #web-crawler #data-mining #nltk

#nlp #веб-сканер #интеллектуальный анализ данных #nltk

Вопрос:

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

Допустим, я хочу проанализировать меню с веб-сайтов ресторанов. Я хотел бы создать инструмент, который позволил бы мне написать набор правил, которые обычно показывают, где находятся пункты меню цены. Затем я мог бы запустить инструмент и сообщить ему, какие пункты меню он проанализировал правильно, а какие были неправильными. Затем инструмент будет «учиться» на этих исправлениях, и при следующем запуске я получу лучшие результаты.

Я немного изучил инструментарий NLTK, и это заставило меня задуматься, не лучший ли способ решить эту проблему с помощью инструмента NLP, такого как NLTK. Может ли кто-нибудь указать мне правильное направление для поиска книг и (в идеале) библиотек, которые могут помочь мне начать работу? Является ли NLP правильным решением? Спасибо!

Ответ №1:

Я очень увлечен идеей написания базового набора правил, которые определяют, как анализировать страницу

Что именно вы подразумеваете под «синтаксическим анализом страницы»? Разбор предложений на странице? Извлечение структурированной информации?

Затем инструмент будет «учиться» на этих исправлениях, и при следующем запуске я получу лучшие результаты.

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

Комментарии:

1. Спасибо за ваш ответ. Я хочу точно извлечь структурированную / полуструктурированную информацию. Ваша ссылка на активное обучение была именно тем предложением, которое я искал. Я понимаю, что в этой области есть чему поучиться… Я заметил, что в этом проблемном пространстве есть несколько библиотек Python (например, MLPy).

2. @Kevination: Я также могу порекомендовать scikit-learn , одним из разработчиков которого я являюсь. Я должен признать, что я не знаком с MLPy, поэтому я не могу прокомментировать его качество. Что вам действительно нужно, так это инструментарий, содержащий модели последовательности и дерева, такие как CRF или структурированные персептроны / SVM, так что обратите на них внимание.