Kodomo

Пользователь

ДЗ №13

Дедлайн: 18:00 вторник 20.01.2015.

Требования к оформлению, новое выделено курсивом (и, как обычно, сказываются на оценке только в диапазоне 7~10 баллов):

  • Файл с программой должен называться именно так, как указано в задании
  • Во всех программах должны быть содержательные имена переменных
  • Во всех программах не должно быть строк длиннее 75 символов, а если такие строки возникли, части таких строк нужно выносить в отдельные переменные или функции.
  • Функции должны сопровождаться docstring
  • Если функция обрабатывает данные, к ней должен прилагаться пример doctest.

  • Тело любой функции должно иметь длину не более 10 строк
  • Программа не должна содержать (в разумных пределах) дублирования кода
  • Вне функций должно быть не больше 10 строк кода, кроме объявления констант.
  • В пределах программы порядок строк кода должен быть такой: импорты, константы, объявления функций и классов, блок кода в if __name__ == "__main__"

  1. Создайте в репозитории папку hw13, и выполняйте домашнюю работу в ней.

  2. (8 баллов) xml.etree.ElementTree.parse может принимать в качестве аргумента имя файла или объект файла или urlopen. Зайдите на сайт НКРЯ. Зайдите в поиск, сделайте какой-нибудь запрос. Например, личное местоимение + наречие. Выставьте дополнительные настройки запроса так, чтобы выдача была достаточно объёмной. Скопируйте адрес страницы ответа. Напишите программу search.py, которая с помощью input() спрашивает у вас адрес, заменяет в нём search.xml на dump.xml, и выдаёт на экран подсвеченные в находках слова. (Подсказка: это тэги word с атрибутом queryPosition, из которых нас интересует содержимое тэга text).

  3. (10 баллов) Напишите программу top_ambiguous.py, которая делает примерно то же, что и search.py, но сначала оставляет только фразы, в которых хотя бы одно слово омонимично (т.е. имеет больше одной леммы или больше одного грамматического разбора), затем среди оставшихся омонимичных слов строит частотный словарь (по леммам), выбирает из него десять самых частотных, и для каждого из них выводит по десять примеров из результатов этой же выдачи (пара слов, которые, НКРЯ подсвечивает жёлтеньким).

Подсказка: после задания критрериев запроса в НКРЯ можно поменять найтройки выдачи (на странице выдачи НКРЯ) и попросить НКРЯ выдавать 1000 документов и по 1000 примеров из каждого документа.