Re[6]: Подскажите, как в тексте вычленить параграфы и списки
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 26.10.13 05:07
Оценка:
Здравствуйте, Кодт, Вы писали:

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).
К>Но у тебя не настолько сложная модель, чтобы нужно было её как-то особенно тренировать. Можешь попробовать и априорные весовые коэффициенты раздать по своим эвристикам, и посмотреть, что из этого выходит.

Спасибо за наводку, надо посмотреть. Хотя начало появляться желание забить на подобные мелочи и удовольствоваться тем, что есть Попробую ковырнуть, может что пойму
Маньяк Робокряк колесит по городу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.