Набор для корпуса "Сделай сам"

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
Ментор Дмитрий Фролов
Учебный семестр Весна 2016
Учебный курс 1-й курс
Максимальное количество студентов, выбравших проект: 5



Что это за проект?

На факультете филологии НИУ ВШЭ имеется проект по сбору всех текстов, которые есть в Интернете (в том числе в соцсетях) на языках народов России. То есть получаются отдельные коллекции для башкирского, удмуртского, чувашского и т.д. Разного размера. В той части, которая вытянута из соцсетей, известно много об авторе: пол, возраст, дата рождения, город. Необходим веб-сервис, который позволял бы не просто скачать все тексты архивом, а умел реагировать на такие, например, запросы от пользователя: "хочу коллекцию текстов на ингушском языке объёмом 100 000 слов, чтобы она состояла из записей в соцсетях людей из Назрани от 20 до 38 лет". В запросной форме пользователь отмечает галочки, посылает запрос к серверу, а он позволяет скачать архив с набором файлов (в XML) и метатаблицей.

Функциональность интерфейса

  1. сначала выбирается язык (один из имеющихся), а потом всё остальное.
  2. пользователь может выбрать, хочет он корпус текстов только из соц.сети, только из интернета, просто N (захардкоженное число) токенов текста на одном из имеющихся у нас языков или всё целиком
  3. только текст на этом языке или с вкраплениями русского
  4. выбор по всяким параметрам авторов в соц.сети (пол, возраст, город говорящего).
  5. сохранять или не сохранять диалоговую структуру ВК-стены

Примеры запросов:

  1. хочу получить все тексты только на этом языке, написанные мужчинами до 24 лет
  2. хочу получить тексты из соц.сетей с сохранением структуры диалога и с русским текстом
  3. тоже самое, только без русского текста
  4. хочу получить тексты из интернета с 5 доменов.

Чему вы научитесь?

  1. Основы проектирования и разработки клиент-серверных приложений
  2. Базовые знания Unix Shell
  3. Работа с нереляционными базами данных

Какие начальные требования?

  1. Представление о технологиях создания веб-страниц
  2. Основы языка программирования Python

Какие будут использоваться технологии?

  1. HTML/CSS, JavaScript, JQuery
  2. Python 2.7
  3. WebPy/Web2Py/Django
  4. Ubuntu Linux/OpenSUSE/FreeBSD, GNU Emacs или Vim - на выбор
  5. MongoDB
  6. git, github/bitbucket
  7. http-сервер Nginx/Apache (возможно - в связке с WSGI-сервером (Gunicorn))

Темы вводных занятий

  1. Архитектура клиент-серверных приложений и основные принципы разработки. Средства разработки клиентской и серверной частей.
  2. Нереляционные базы данных, преимущества, недостатки, особенности использования

Ориентировочное расписание занятий

СР 18.30-20.30

Формат данных для скачанных файлов

json в таком формате:

{
"downloaded_by": "Tester",
"download_date": "2016-01-25 10:28:15.197639",
"url": "http://www.abazashta.com/club/forum/forum2/topic2/messages/?PAGEN_1=2",
"domain": "www.abazashta.com",
"language": "abq",
"header": "",
"text": {
"85": {
"language": "abq",
"text": "Адац-ач1выйа йг1аныпщтуа сахща?"
},
…
}

Пример: https://yadi.sk/d/uU8n-O9XoxR5q (адыгейский)

Нам бы хотелось, чтобы был вариант выгрузки в XML.

Все данные из VK

https://yadi.sk/d/BHF4aMU-ozyJz

Списки доменов для крупных языков

  1. Башкирский: https://yadi.sk/d/kxWvlU_Wm7gAT
  2. Татарский: https://yadi.sk/d/KLfAB1ulm7gbG
  3. Якутский: https://yadi.sk/d/J9xKQjPKm7ghi

Отсюда для обработки нужны: url_type1_by_folders.txt и url_type2.txt