2015-11-04 3 views
-1

Я разработчик Python, который в настоящее время работает над проектом, который связан с NLP и NLTK. В этом проекте потребуется огромное количество данных для целей анализа инцидентов. Поэтому для этого я дал 2 вопросаscrap Wikipedia, управляйте этими данными с помощью кластеризации

  1. Где я могу найти такой большой объем данных. Мое первое предпочтение - Википедия, но я не знаю, как получить доступ к данным из него? Должен ли я отказаться от Википедии?

  2. Как мне организовать все эти данные, чтобы у меня был лучший результат поиска? Будет ли K-означает кластеризацию?

+1

Извините, но ваши вопросы слишком широки для SO. SO в основном касается вопросов конкретных проблем программирования, связанных с кодом. –

+0

Посмотрите на https://github.com/alvations/SeedLing, чтобы иметь дело с копиями Википедии. – alvas

+0

FYI слово «scrape». – alexis

ответ

0

Я не знаю ответа на ваш второй вопрос. Но для вашего первого вопроса вы можете получить снимок данных wikipedia. Вы можете проверить это link, где сама Википедия описывает различные способы использования своих данных в зависимости от типа приложения, которое вы хотите создать. Обратите внимание, что Wikipedia не рекомендует выполнять сканирование веб-сайта во время выполнения.

В частности, я чувствую, что вы можете загрузить XML-дампы своих данных для использования вами случая.

0

Ответ на первый вопрос:

Кроме соскоб с использованием пакетов, таких как BeautifulSoup или Scrapy есть некоторые интерфейсы API, как wikipeidia in python, которые могут быть использованы для получения данных из Википедии

+2

Если вы хотите полностью загрузить английскую Википедию, получение [dump] (https://dumps.wikimedia.org/) намного лучше. – tripleee

-1

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

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

Во-вторых, кластеризация сама по себе является предметом обсуждения, о котором вы не можете просто задать его здесь, но есть алгоритмы для кластеризации с Python (или вы должны реализовать его самостоятельно!) K-Means, нейронные, алгоритмы ЭМ и многие другие. Я когда-то использовал реализацию SOM ANN (a.k.a Kohonen neural network). Вы должны подумать, какой из них вам подходит.

1
  1. «Цели анализа инцидентов» - что заставляет вас думать, что Википедия полезна для этого? Слишком много нерелевантных данных хуже чем не имея «больших» данных. Популярная ошибка: предположим, что вы можете решить все, выбросив на нее случайные данные.

  2. Данные Википедии можно скачать - просто просмотрите их веб-сайт. Вам все равно нужно понять разметку Wiki, но по крайней мере вам не нужно сражаться с искателем, потому что вы можете получить дамп базы данных.

  3. Кластерный анализ текста особенно тяжелый. Текст очень разнообразен, и несколько алгоритмов кластеризации могут хорошо обрабатывать шумные и разреженные данные. Но зачем? «Лучшие результаты поиска» - это не то, что для кластеризации.

Некоторые общие рекомендации:

  • начать с малого, пока вы не знаете, что вы делаете.
  • оценить, если вы находитесь на пути и имеете какое-либо улучшение - и не лгите себе; критикуйте свои достижения.
  • Пробуждение случайных вещей (Wikipedia, kmeans) не приведет вас к вашей цели. Слишком много бесполезных комбинаций. Вам нужно преследовать тех, кто может помочь (и быстро оценить их), если вы начнете двигаться по маршруту Википедии, боюсь, вам понадобится две недели, пока вы не сможете обработать «большую часть» Википедии - это может занять до вас осознать, что это не сработало - начинайте с малого и сфокусируйтесь!)