Функция описания узла (узлов) в классе пары строк

Issue #202 closed
Oleg Sychev repo owner created an issue

Originally reported on Google Code with ID 202

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

Если 1:1, но с ошибками (опечатка, замена эквивалентных лексем)
 - при наличии описания - выводится описание
 - при отсутствии описания - текст лексемы в ответе студента

Если 1(прав ответ):m(ответ студента)
 - есть описание - выводить описание
 - нет описания - выводить отрезок ответа студента от начала первой до конца последней
лексемы (лексемы должны идти подряд) - это чтобы сохранить разделители именно такими,
как были у студента

Если m(прав ответ):1(ответ студента)
 - есть все описания - выводятся описания
 - есть часть описания - описания где есть, где нет - текст правильных лексем
 - нет описаний - выводится текст правильных лексем

Reported by oasychev on 2013-06-17 15:40:49

Comments (8)

  1. Oleg Sychev reporter
    По итогам обсуждения, переносится на Марию.
    
    Мария, сейчас этот код работает через функцию node_description в классе правильной
    строки - посмотрите ее -  но он соответственно не может учесть все особенности, связанные
    с опечатками - см. выше в этом issue.
    
    И я бы изменил прототип:
    public function node_description($nodenumbers, $correct, $quotevalue = true, $at =
    false) {
    Т.е. индексы узлов передаются массивом (из одного или нескольких чисел), а новый -
    второй - параметр - это логическая переменная, говорящая, откуда индексы - их правильной
    строки или строки студента.
    

    Reported by oasychev on 2013-06-26 14:41:52

  2. Oleg Sychev reporter
    Маша, алло?
    Что-то от вас ни обсуждения, ни коммитов на сервере не видно - в то время как практически
    от всех остальных есть...
    

    Reported by oasychev on 2013-06-28 15:03:30

  3. Oleg Sychev reporter
    Я написал табличку, как это должно работать для lexem_analyzer и sequence_analyzer (более
    общий вариант наверное при следующем рефакторинге придется делать) - прикладываю.
    
    Пока предложения как это все "малой кровью" в текущей архитектуре реализовать - нормально
    до нового рефакторинга мы не сделаем, а релиз нам нужен уже побыстрее.
    
    Дмитрий - ваше мнение, как это лучше реализовать с минимальным ущербом для вашего кода
    анализатора? 
    Мария - составляйте пока тесты по данным по этой таблице, чтобы было видно, насколько
    вы ее поняли - и приттачивайте сюда для обсуждения.
    

    Reported by oasychev on 2014-01-17 15:08:38

    <hr> * Attachment: описания_лексем_cw_2_анализатора.doc

  4. Oleg Sychev reporter
    У меня пока предложение сделать временно 2 функции в классе string_pair - одна для lexem_analyzer,
    другая - для seqence_analyzer. Другого простого пути я пока не вижу.
    
    А более серьезно сделаем при следующем рефакторинге, когда будет единая система описания
    всех преобразований...
    
    Дмитрий - ответьте побыстрее ваше мнение...
    

    Reported by oasychev on 2014-01-18 20:38:05

  5. Former user Account Deleted
    Я думаю это можно. Можно еще, чтобы каждый анализатор скажем писал данные соответствий
    туда и тогда можно будет написать функцию, которая строит последовательное отображение
    конечных лексем в исходных.
    

    Reported by mamontov.dp on 2014-01-20 06:24:03

  6. Oleg Sychev reporter
    Ну собственное единая система соответствий - это и есть рефакторинг-2. Который мы решили
    пока не проводить...
    
    Я сделал две задачи на КНПО по нему (картинка и описания узлов), чтобы оценить проблемы,
    продумать принципы и найти тестовые ситуации.
    

    Reported by oasychev on 2014-01-22 21:30:23

  7. Oleg Sychev reporter
    Надо уже делать. Опытно выяснилось что сложностей особых с сообщениями нет; функции
    node_description должны располагаться в базовых классах mistakes анализатора (lexical_mistakes,
    sequence_mistakes) т.к. они хранят индексы из разных строк.
    
    Предлагаю
    а) Маше сделать юнит-тесты на все варианты функций (подробности можно уточнять у меня
    и у Дмитрия)
    б) Дмитрию написать функции на основе моего кода, который был перенесен в string_pair.
    Вместо этого ссылка на string_pair должна передаваться в функцию.
    

    Reported by oasychev on 2015-01-14 18:59:34 - Labels added: Priority-Critical - Labels removed: Priority-High

  8. Log in to comment