Здравствуйте, Кодт, Вы писали:
M>>Попробую объяснить на пальцах, что мне с D непонятно. M — для длинн строк это просто среднее арифметическое. D — это вроде как мат. ожидание отклонения от М? Почему D тогда такие значения принимает, не пойму. То ли я что-то не так посчитал.
К>Не знаю, как ты считаешь дисперсию, но вообще, это квадрат отклонения.
К>Она может принимать здоровенные значения.
Как-то так считаю:
int M = (int)thisListAvgLineLenght;
for(; listLineNoTmp != listLineNo; ++listLineNoTmp)
{
D += ((int)attributedLines[listLineNoTmp].strSize() - M) * ((int)attributedLines[listLineNoTmp].strSize() - M);
}
D /= (int)numListLines-1;
Т.е. я понимаю, почему значения большие — квадрат все же, а вот "физический смысл" не доходит. Для M тут физический смысл — средняя длина строки, и получаемые величины M с этим смыслом не конфликтуют.
К>>>А это — другой частный случай: список с разделителями (здесь — с тире).
M>>Но так и тот, на самом то деле, по смоему смыслу тоже самое, только отформатирован немного по другому.
К>По смыслу — и то, и то — списки, но эвристики — разные 
В данном случае с таблицей — случай более частный

По идее, эвристика для списка должна его обнаруживать и когда он отформатирован.
К>>>- наконец, если строки короткие (но тут есть риск спутать с эпиграфом или стихами)
M>>Еще мои эвристики не очень любят последнюю строку параграфа, она часто много короче обычно строки параграфа, даже если параграф выравнивается по ширине, оследние строки не выравнивают.
К>Потому что твои эвристики детерминированные, наверно, а тут всё дело в "похожести на" и даже в "похожести, что..."
Это да. Я вообще думал за пару дней все сделать и не парится, но чем дальше в лес, тем больше нюансов ;( которые хочется отловить и красиво обработать
К>>>Отличить красную строку от следующих можно по использованию заглавных и строчных букв.
M>>Проблема в том, что будет работать только для латинского алфавита.
К>В русском языке предложения тоже с большой буквы начинаются, какие проблемы?
Ну, для Unicode'а можно найти все заглавные, а для однобитной кодировки немного хуже; в общем случае даже не хочется знать, в какой кодировке текущий текст, и какой алфавит/язык используется.
К>Фреймворк для WFST — это гугловская OpenFST, там есть и экзешники, и C++ на шаблонах. (Шаблоны там покруче, чем в ATL, с непривычки можно заворот мозгов поиметь, особенно, при отладке).
К>Содержательную часть — т.е. как построить граф, как раздать веса, и всё такое, — это ты сам.
К>Есть фундаментальные статьи. Поищи в гугле "скрытые марковские модели", "hidden markov model", работы Аллаузена и Мори (Allausen, Mohri).
К>Но у тебя не настолько сложная модель, чтобы нужно было её как-то особенно тренировать. Можешь попробовать и априорные весовые коэффициенты раздать по своим эвристикам, и посмотреть, что из этого выходит.
Спасибо за наводку, надо посмотреть. Хотя начало появляться желание забить на подобные мелочи и удовольствоваться тем, что есть

Попробую ковырнуть, может что пойму