Кто-нибудь использовал parsefilter-naivebayes в Nutch - PullRequest
0 голосов
/ 04 января 2019

У меня есть Java-приложение, которое создает 4 Java-экземпляра Nutch (каждый экземпляр работает на один начальный URL-адрес) все вышеперечисленные 5 приложений вместе с SOLR (10 ГМ памяти) настроены на виртуальной машине Azure, которая имеет 64 ГБ ОЗУ и 32 процессора.

Меня интересуют только те ссылки, которые соответствуют какому-либо ключевому слову, и я хочу переслать только эти ссылки на следующей глубине. чтение вики-страницы https://wiki.apache.org/nutch/NaiveBayesParseFilter дал мне идею, что я могу попробовать это, чтобы решить мою проблему, но я не мог найти хороший пример для того же. что я понимаю parsefilter.naivebayes.trainfile: используется для анализа содержимого страницы parsefilter.naivebayes.wordlist: используется для анализа исходящих ссылок Могу ли я использовать Naviebayes для моего требования, если да, может ли кто-нибудь предоставить более подробную ссылку, по которой я могу перейти.

давайте рассмотрим пример здесь. мой список семян будет содержать URL http://www.blueprism.com/investors На глубине 1 - содержимое http://www.blueprism.com/investors будет прочитано, отфильтровано, проанализировано и передано на глубину 2. Мне нужно только передать несколько URL-адресов на глубину два, и я делаю это с помощью настроенного фильтра, который просматривает исходные ссылки и текст привязки для ключевых слов (скажем, ключевое слово, которое я ищу, является финансовым и годовым) На глубине 2: один из URL-адресов для чтения из базы данных Crawl - https://www.blueprism.com/reports-presentations, снова считывает содержимое, фильтрует и анализирует На глубине 3: https://www.blueprism.com/wp-content/uploads/2018/02/BluePrism_AR2017.pdf (ключевое слово соответствует привязке на глубине 2 Parser)

В приведенном выше случае процесс получения документа был не таким сложным, но именно так я пытаюсь получить документы, которые меня интересуют. сканирование 50 исходных URL-адресов на глубину 4 занимает около -5 часов Нави Байес был просто шагом, который я планировал попробовать. Я не уверен, что мой процесс может быть улучшен путем адаптации какого-либо нового дизайна, поможет ли создание классификатора моему делу, если да, можете ли вы предоставить документацию или какой-либо блог для того же самого и можете ли ML создан в JAVA?

1 Ответ

0 голосов
/ 07 января 2019

Отредактировано после уточнения вопроса

Если все, что вам нужно, это просмотреть ссылки и их якорный текст для конкретных ключевых слов, вам не нужны никакие методы ML вообще. Вам просто нужно написать HtmlParseFilter, который манипулирует массивом Outlinks (в ParseData, в Parse, в ParseResult, который фильтр получает и возвращает), чтобы получить только те исходящие ссылки, которые вы хотите.

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

...