Здравствуйте, Кодт, Вы писали:
К>Это я безотносительно сказал, отвечая на вопрос, "что такое физический смысл".
К>Смысл M,D в том, что на основании этих величин любое фактически наблюдаемое распределение можно аппроксимировать нормальным распределением с этими же величинами, из которых вытекает, в том числе, и правило трёх сигм.
А, ясно.
Попробую объяснить на пальцах, что мне с D непонятно. M — для длинн строк это просто среднее арифметическое. D — это вроде как мат. ожидание отклонения от М? Почему D тогда такие значения принимает, не пойму. То ли я что-то не так посчитал.
К>А это — другой частный случай: список с разделителями (здесь — с тире).
Но так и тот, на самом то деле, по смоему смыслу тоже самое, только отформатирован немного по другому.
К>Из этого всего складывается комплект эвристик
К>- если в нескольких строках подряд используется один и тот же разделитель (тире, двоеточие)
К>- если используются маркеры (тире, звёздочки, пульки — я встречал в роли пульки букву о)
Есть такое, все это уже разобрал, про 'o' в курсе, еще символ с кодом 0x95 используется
К>- если используются перечисления вида слово., слово:, слово), особенно если слово — это арабское или римское число
Римские/арабские нумерованные списки выделил уже.
К>- если прослеживается табличная структура
К>- если красные строки не отбиты, а наоборот, вывешены (т.е. отбиты следующие строки), особенно, если отбивка по уровень разделителя в красной строке
К>- наконец, если строки короткие (но тут есть риск спутать с эпиграфом или стихами)
Еще мои эвристики не очень любят последнюю строку параграфа, она часто много короче обычно строки параграфа, даже если параграф выравнивается по ширине, оследние строки не выравнивают.
К>Отличить красную строку от следующих можно по использованию заглавных и строчных букв.
Проблема в том, что будет работать только для латинского алфавита.
К>Я думаю, что твоя экспертная система будет лучше работать, если ты не захардкодишь все эвристики от начала и до конца, а сделаешь скрытую марковскую модель и/или нейросеть, которая будет отвечать на вопрос, где начинается новый абзац и является ли он текстом или элементом списка.
Вот это уже интереснее. Что можно почитать, чтобы попроще было? Есть какие-то библиотеки для этого?
К>Вот признаки (наличие маркера, заглавная-строчная буквы, совпадение позиций маркеров, отбивка такая, отбивка сякая...) — это можно хардкодить. А выводы на основе признаков пусть сетка делает сама.
Да, у меня сейчас данные примерно в таком состоянии и представлены, захардкоженные эвристики удовлетворительно вообщем-то все разбирают, осталось вычленить еще всякие неявные элементы.
К>Причём конечный автомат (WFST) марковской модели позволяет следить за историей: ты ему скармливаешь, скажем, десять строк, и он выводит, что с наибольшей вероятностью первый абзац был с первой по третью строку, второй абзац — с четвёртой по пятую, а третий абзац ещё какой-то неопределённый, давай, корми меня дальше.
К>Но это моя колокольня, я как раз с марковками работаю. Вовлекусь в нейронки, так, может, стану апологетом нейронок
Ну, тогда рассказывай, что да как там
Про нейронки я слышал, но обычно вроде это все делается в каких-то пакетах типа матлаба, а так, чтоб взять пару хидеров с шаблонами, прицепить к своему сорцу, сконфигурировать пару классов и получить сеть, как-то не приходилось слышать. Для марковок есть что-нибудь такое?