Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Задача сбора текстовой информации из статей Wikipedia

Описание задачи Структура расположения статей в Википедии выглядит следующим образом. К главной категории присвоены статьи (нулевой уровень), а также подкатегории (с более узкой тематикой). Внутри подкатегорий так же имеются статьи (первый уровень) и свои подкатегории. Пример двухуровневой структуры категории с двумя подкатегориями на нулевом уровне и одной подкатегорией на первом уровне приведен ниже.

Необходимо осуществить сбор максимального количества статей (URL) и их текста (основная часть статьи), двигаясь по уровням вниз. Если после полного прохода уровня (всех статей из всех подкатегорий выше) число собранных статей превышает 400, то процесс по категории прекращается. В случае превышения отметки 400 статей после прохода одной из подкатегорий уровня (напр. Подкатегория I на рисунке), следует собрать статьи из других категорий того же уровня (соответственно статьи из Подкатегории II). Собирать статьи со второго уровня (из Подкатегории I 1) не требуется. Таким образом, на выходе из всех категорий получится более 4000 статей суммарно. Полученный текст статьи необходимо сохранить в txt-файл в кодировке UTF-8. Тексты нужно раскидать по папкам категорий и подкатегорий соответственно. Папки подкатегорий должны находиться внутри папок соответствующих категорий. Если статья находится на нулевом уровне, то текстовый файл попадает в корневую папку с названием категории. Если же файл – из подкатегории, то он попадает в папку с названием подкатегории. Название файла: «Код категории_код подкатегории нулевого уровня_код подкатегории первого уровня_ … _ номер статьи.txt»

Например: https://ru.wikipedia.org/wiki/%D0%9F%D0%BB%D1%8F%D0%B6%D0%BD%D1%8B%D0%B9_% D1%82%D0%B5%D0%BD%D0%BD%D0%B8%D1%81 Файл со статьей будет называться «07_020_001_008_011.txt» 07 – код категории (спорт) 020 – код подкатегории нулевого уровня (номера подкатегорий присваиваются в алфавитном порядке внутри каждой подкатегории) – Спортивные игры 001 – код подкатегории первого уровня – Игровые виды спорта 008 – код подкатегории второго уровня – Теннис 011 – номер статьи (присваивается в алфавитном порядке) – Пляжный теннис Названия папок: Категория - «Код категории_Название категории» например: «07_Спорт» Подкатегория нулевого уровня – «Код категории_код подкатегории нулевого уровня_Название категории» например: «07_020_Спортивные игры» Подкатегория Nго уровня – «Код категории_код подкатегории нулевого уровня_..._код подкатегории N-1го уровня_код подкатегории Nго уровня_Название подкатегории Nго уровня» например: «07_020_001_008_Теннис» Кроме сохранения всех текстов статей по файлам, дополнительно необходимо предоставить файл с результатом в табличном виде для анализа (в формате CSV).

Параметры, которые надо вынести в настройки приложения:  список стартовых категорий Wikipedia  число одновременных потоков краулинга  задержка в секундах между запросами в каждом потоке  путь к папке для сохранения результатов краулинга  имя результирующего CSV-файла Пример стартовых страниц категорий:  Искусство  Автомобили  Бизнес  Путешествия  Религия  Политика  Наука  Домашние животные  Спорт  Технология Примечания

  1. Приложение следует имплементировать с использованием пакета java.util.concurrent
  2. Пример получения подкатегорий и статей категории Политика: http://ru.wikipedia.org/w/api.php?action=query&format=xml&list=categorymembers&cmprop =title|type|ids&cmlimit=50&cmtitle=Category:%D0%9F%D0%BE%D0%BB%D0%B8%D1%82%D0 %B8%D0%BA%D0%B0
  3. Пример получения одной статьи по ее номеру: http://ru.wikipedia.org/w/api.php?format=xml&action=query&prop=extracts&explaintext&exs ectionformat=plain&pageids=3349460

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages