Skip to content

r-classes/2026_morphological_transducers_hw5

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Домашнее задание №5. Метрики качества, разрешение морфологической неоднозначности

Дедлайн: 26 марта 23:59.

Перед вами в gold_standard.csv gold разметка некоторых предложений из Universal Dependencies. А в words.lexd содержатся разборы почти всех слов из этих предложений (некоторым словам соответствует несколько разборов).

1. Получите разбор предложений, используя words.lexd, сохраните в файл analysis_01.txt (0,5 балла).

2. Посчитайте метрики качества

  • покрытие (0,5 балла)
  • точность (0,5 балла)
  • полноту (0,5 балла)
  • f1-меру (0,5 балла)

3. Посчитайте метрики качества с удалением эффекта частотности (при котором каждая пара токен-полный_разбор в gold разметке учитывается только один раз) (2 балла)

4. Напишите правила для снятия омонимии слова "дали". Сохраните в файл Surname_hw5_04.cg3. (при разрешении всех случаев - 3 балла, возможен частичный)

5. Посчитайте метрики качества заново

  • для всех слов (0,25 балла)
  • для уникальных слов (с удалением эффекта частотности) (0,25 балла)

6. Задание на 9-10: улучшите качество разбора, разрешив оставшиеся случаи омонимии

  • другие
  • ее
  • и
  • прошлого
  • слова
  • стены
  • этот

Допишите правила в файл из пункта 4 и сохраните в Surname_hw5_06.cg3.

Формат сдачи:

  • Surname_hw5_04.cg3
  • Surname_hw5.ipynb / Surname_hw5.sh со всеми шагами и комментариями
  • *Surname_hw5_06.cg3

Комментарии:

  • Для подсчёта метрик вы можете использовать код из семинара Python, R (они дают немного разные результаты), а можете написать его самостоятельно, но тогда необходимо прокомментировать, чем ваш подход отличается от предложенного. При наличии разумных объяснений несовпадение с ожидаемым ответом не считается ошибкой.
  • Для пункта 3 поправьте код самостоятельно. Если в gold-разметке текст Пила-NOUN не-PART пила-VERB сок-NOUN ,-PUNCT она-PRON ж-PART пила-NOUN, то мы считаем, что в корпусе 7 уникальных пар (токен-разбор):
  1. пила-NOUN (регистр не учитываем)
  2. не-PART
  3. пила-VERB
  4. сок-NOUN
  5. ,-PUNCT
  6. она-PRON
  7. ж-PART

Покрытие: если пара один раз разбирается, а в другой раз не разбирается, покрытие неполное. Если разбор Пила-NOUN не-PART пила-VERB сок-NOUN ,-PUNCT она-PRON ж-PART *пила, то покрытие "пила-NOUN" 0.5, а итоговое значение метрики - 6.5/7≈0.929

Precision, Recall, F1-мера: смотрим все случаи разбора каждой пары. Если пила-NOUN один раз разбирается верно, а в другой раз предлагается один неверный разбор, то precision по этому слову 1/2=0.5.

Если вы используете код на питоне из семинара, у вас в пункте 2 должны получиться такие результаты

Покрытие 1: 0.9955947136563876

Основы 1
{'mean_precision': 0.9537444933920705, 'mean_recall': 0.9955947136563876, 'mean_f1': 0.9647577092511013, 'fin_precision': 0.9149797570850202, 'fin_recall': 0.9955947136563876, 'fin_f1': 0.9535864978902954}

Части речи 1
{'mean_precision': 0.9427312775330396, 'mean_recall': 0.9955947136563876, 'mean_f1': 0.9574155653450808, 'fin_precision': 0.8968253968253969, 'fin_recall': 0.9955947136563876, 'fin_f1': 0.9436325678496869}

Теги 1
{'mean_precision': 0.9177679882525698, 'mean_recall': 0.9955947136563876, 'mean_f1': 0.9336270190895741, 'fin_precision': 0.7874564459930313, 'fin_recall': 0.9955947136563876, 'fin_f1': 0.8793774319066148}

Разборы целиком 1
{'mean_precision': 0.906754772393539, 'mean_recall': 0.9955947136563876, 'mean_f1': 0.9262848751835536, 'fin_precision': 0.773972602739726, 'fin_recall': 0.9955947136563876, 'fin_f1': 0.8709055876685935}

А в 3 задании ожидаются такие (если используете предложенную логику):

Покрытие 2: 0.9936708860759493

Основы 2
{'mean_precision': 0.9715189873417721, 'mean_recall': 0.9936708860759493, 'mean_f1': 0.9746835443037974, 'fin_precision': 0.9457831325301205, 'fin_recall': 0.9936708860759493, 'fin_f1': 0.9691358024691358}

Части речи 2
{'mean_precision': 0.9651898734177216, 'mean_recall': 0.9936708860759493, 'mean_f1': 0.9704641350210971, 'fin_precision': 0.9345238095238095, 'fin_recall': 0.9936708860759493, 'fin_f1': 0.9631901840490797}

Теги 2:
{'mean_precision': 0.9367088607594937, 'mean_recall': 0.9936708860759493, 'mean_f1': 0.9478902953586499, 'fin_precision': 0.8486486486486486, 'fin_recall': 0.9936708860759493, 'fin_f1': 0.9154518950437318}

Разборы целиком 2:
{'mean_precision': 0.930379746835443, 'mean_recall': 0.9936708860759493, 'mean_f1': 0.9436708860759493, 'fin_precision': 0.839572192513369, 'fin_recall': 0.9936708860759493, 'fin_f1': 0.9101449275362319}

Если вы считаете, что другой способ разумнее, сделайте по-другому и объясните в комментарии принцип.

  • Проверьте, что после снятия омонии у вас улучшилась точность и не ухудшилась полнота.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors