Форум » KooBAudio 2.0 » Обсуждаем уже существующие словари » Ответить

Обсуждаем уже существующие словари

odinokiyklaus: Доброго времени суток.. Можно я немного поскриплю, но конструктивно. Прошу не обижаться. К сожалению я заметил, что ваши словари, как и словари уважаемого Моррона грешат одним и тем же - нередактируемостью и малопонятностью. Регулярные выражения, да и простые выражения и слова практически свалены в одну кучу. Так к примеру чтобы написать дополнительное правило в регулярных выражениях, к примеру, к слову "уха", надо использовать поиск по слову уха. Да ещё и не факт что найдешь все правила, поскольку слово уха может встретиться в таком варианте "ух(а|у)". В словарях нет никаких комментариев чтоможно вставлять в данный словарь, а чего нельзя, какие выражения должны идти за какими - это о регулярных выражениях. Потому что чем больше появляется регулярных выражений, тем больший хаос появляется в словорях и тем сильнее их нужно структурировать. Потому что мной было замечено, что чем точнее выражение к конкретному слову, тем раньше оно должнобыть обработано интерпритатором, а чем оно более обощенно - тем соотвественно позже. Следовательно, более точные выражения (регулярные и обычные простые) должны ижти раньше, а более обощенные - за ними. И это соответствие можно распостранить и на структуру порядка словарей - более точные в списке словарей идут первыми, а более общие - за ними. К примеру словрь регулярных выражений взятых у Моррона у меня организован вот так: (слово "адреса" здесь располагаются абсолютно все выражения котрые могут с ним встречаться и в других словарях рег. выражения с ним не встречаются) // // АДРЕСА // #(?i)(?<=(!ать|ают|отметил|тала|(г|дн|ж|к|х|ч|ш|шн|щ)ие|ые)\b[^\.!?-]{0,2})\bадреса\b=адреса< #(?i)(?<=(ого)\b[^\.!?-]{0,2})\bадреса\b=а<дреса #(?i)(?<=(выяснить|не запомнил)[^\.!?-]{0,30})\bадреса\b=адреса< #(?i)\bадреса\b(?=[^\.!?-]{0,30}(известны))=адреса< К примеру, список самих словарей, исходя опять же из точночти расстоновки ударений интерпретатором, у меня организован вот так папка 1 0.0_clean_1.dic первоначальны очистка текста от лишних пробелов, отсутсвий пробелов между скобками и текстом за ним и т.д. 0.1_Аббривиатура.dic АК-74, АКМ, МВД ИЖМАШ и т.д. Так как слова "МАРС" тут нет позже (01_clean_2.dic) оно будет испралвено на "Марс" 0.3 самом.dic словари Моррона 0.4_Числа.dic перевод римских чисел в арабские Основной раздел 01_clean_2.dic - испраление слов написанных заглавными буквами в строчные 02_Римские_цифры.dic всякие Екатерины 2 и т.д. 03_Числительные.dic интерпретация арабских чисел в слова 04_однозначные_выражения.dic точные простые выражения 04_Транскрипция.dic DVD и т.д. 05_регулярные_выражения_1.dic выражения с омографами типа "адреса" и т.д. 06_регулярные_выражения_2.dic выражения с Неомографами, но которые проще написать так, к примеру "ведьмина-трава" - #(?i)\b(?:(ве)(дьмин)([а-я]{1,2})[\s-]{0,1}(трав[а-я]{1,3}))\b=$1<$2$3-$4< 07_регулярные_выражения_3.dic рег. выр. с переделкой с е - на ё или с ё на е 08_сложные_слова.dic типа -"фикация" #(?i)\b([а-яё\-]+)?(фика)(ци)(я|и|е|ей|ию|ий|ям|ями|иях)\b=$1$2<$3$4 09_слова_для_замены_в_начале_1.dic словари Моррона 10_слова_для_замены_в_начале_2.dic простые выражения для замены в начале 11_слова_с_запятыми.dic простые выражения с запятыми 12_простые_выражения_1.dic 13_Имена_1.dic 14_Имена_2.dic 15_Города_1.dic 16_Города_2.dic 17.1_Города_3.dic 17.2_Имена_Города.dic 18_Города_Страны.dic 19_Штаты.dic 20_слова_с_буквой_ё.dic кучас лов с буквой ё, но без звездочек 21_слова_со_звездочкой.dic все остальные слова со звездочками 22_омографы.dic слова-омографы ударение на которые не было поставлено. Расставляется здесь 23_повторы.dic 24_слова_для_земены_в_конце.dic папка 2 02 Nicolai Bugs.dic Установка знака ъ после ударной гласной в конце слова на которое падает ударение В общем случае вот так. Привожу данный комментраий не для того чтобы обидеть кого-то, или выскочить что я самый умный, и т.д нет. Я просто попытался направить наши и ваши труды в более орагнизованное русло. Поскольку смысл использовать чьи-то словари появляется тогда, когда понятно что и как можно откорректировать для себя в дальнейшем, где и как можно исправить. Иначе ценность всех трудов сводится на нет, когда видищь кучу кода, вроде и полезного, но не знаещь как этим воспользолаться.. Вроде и словари есть, и не понятно что с ними делать... и начинаешь ваять свои..

Ответов - 19

MoppoH: odinokiyklaus пишет: слово уха может встретиться в таком варианте "ух(а|у) иногда даже сам забываю что делал такие выражения, просто стараюсь добавлять рег выражения в алфавитном порядке odinokiyklaus пишет: К примеру, список самих словарей, исходя опять же из точночти расстоновки ударений интерпретатором, у меня организован вот так с порядком уже каждый решает сам, я периодически меняю их местами для более точной обработки текста 0.4_Числа.dic перевод римских чисел в арабские 02_Римские_цифры.dic всякие Екатерины 2 и т.д. почему это не объединить в один? к тому же если 0.4 словарь идет в предобработке, он уже заменить Екатерина II на Екатерина 2, тогда не понятно что словарь 02_Римские_цифры будет искать

smochinin: Доброго дня! Счёл необходимым объяснить, как делал свою версию словарей. 1) Приоритет унифицированных правил, то есть максимально зазвёздочитть всё, что можно, дабы под одно правило попадало как можно больше слов. (*ификац*, *ионн* и *ионк* заменяют собой кучу правил) 2) Исходил из того, что словари 2 и 3 должны выравниваться по длине, т.к. тогда программа сначала обрабатывает более длинные и полные слова, (исключения из правил), а потом уже правила (напр собственническ*, мошенническ*, прическ* будет выше *ическ*, т.к. оно длиннее) 3) Приоритет словосочетаний над регулярными выражениями, полагая, что проге быстрее вычислить последовательность знаков, чем рассчитать применение правила. (понимаю, что спорно, но всё же) 4) Счёл нецелесообразным дробить основные словари на мелкие группы, так как, если слово встречается в словаре выше, то словосочетание из словаря ниже, содержащее в себе то же слово, теряет свою актуальность. (Допустим, не дай Бог в словаре номер 2 есть слово "перемешалось", то правило из словаря 3 "все перемешалось" уже не работает, как и правила из словарей ниже, если встретится то же слово. А если выровнять их по длине в ОДНОМ словаре, то сначала идут всевозможные словосочетания, а потом уже само слово - оно короче, чем словосочетания. То же с Александр* в именах и Александри* в городах, если она в словаре ниже... 5) Максимально лингвистически набить словари. добавлял по 100-200 слов в день с зазвездоченными правилами. Работа продолжается ежедневно. Сегодня уже исправил несколько слов... Наши словари предлагаю просто потому, что стыдно не делиться с людьми и хочется надеяться, что они помогут кому-то. (Названия словарей теперь чисто условные, по старой памяти, чтобы проще работать было) P.S. Удалю словари по первому требованию уважаемого MoppoH'а - без него ничего бы не вышло!

odinokiyklaus: Да.. встречал я такие уже выражения типа *ификац* = ифика<ц, под которые не попадают выражения верификационные данные, или фортификационные сооружения..


odinokiyklaus: smochinin пишет: Работа продолжается ежедневно. Сегодня уже исправил несколько слов... Наши словари предлагаю просто потому, что стыдно не делиться с людьми и хочется надеяться, что они помогут кому-то. (Названия словарей теперь чисто условные, по старой памяти, чтобы проще работать было) так вот я с этого и начал.. как мне использовать вашу информацию? Я бы с удовольствием её взял, но в словарях такая каша - и выражения вместе и слова со звездочкой... Можно бы было отфильтровать по звездочке сначала, а потом отфильтрованное перенести их в отдельный словарь, далее - сравнить со своими, а позже чего нет - добавить.. Но на это столько времени уйдёт.. Не было бы каши - было бы проще.

odinokiyklaus: Вот примеру взять регулярные выражения Моррона. У него они хоть по алфавиту разбиты.. Я тоже теперь так делаю - гораздо легчес тало ориентироваться. Этих правил стало уже тысячи, счет уже идет на десятки тысяч.. Хошь - не хошь, но структура требуется

odinokiyklaus: MoppoH пишет: слово уха может встретиться в таком варианте "ух(а|у) Кстати подобные выражения крайне удобны. Тоже так делаю. Но чтобы не потеряться в этом месеве и глазу было легче ввёл разделения по названию омографов // // АДРЕСА // правила // // ГЛАЗА // и искать через поиск проще - сразу находишь нужный блок

smochinin: Я же не навязываю свои словари))) Они чисто альтернативные. Разделять словари я не вижу смысла. Полагаю, программе глубоко безразлично, в каком словарике у меня что лежит, и она обрабатывает весь текст каждым словариком отдельно и по порядку следования правил в словариках Как точно отобрать все правила, чтобы они не перебивали друг друга? Есть имена, допустим. Отдельным словарем. 05 Имена Куда девать тогда словарь с городами 06 Города? Имена - Екатерин*, Города - Екатеринодар*, Екатеринбург*. Если они отдельными словарями, то словарь 05 имена сработает раньше и получится Екатери<нодар и Екатери<нбург. И таких случаев сотни и тысячи. А если они в одном словаре, выровненные по длине - то сначала сработает Екатеринбург, потом Екатеринода, а уже потом Екатерина. Принцип такой. И как тут их делить по словарям? P.S. Возможно, это весьма нескромно с моей стороны, но хотел бы попросить небезразличных людей, пользующихся нашими с Olelog60 словарями (если такие, конечно, найдутся), присылать по мере возможности новые слова и словосочетания.

smochinin: Подскажите пожалуйста, прога совсем не видит знак ударения в левой части правила? мне просто очень-очень понадобилось вставить правила типа *я<ющего=я<ющево *я<ющегося=я<ющевося *а<чивающего=а<чивующево *а<чивающегося=а<чивующевося Но они нигде никогда никак не срабатывают((9 Добавил правило *яющ*, меряющ* и кашляющ*и теперь страстно хочется закруглить им концы... с гося на вося и с вающ на выющ...

Cminant: smochinin пишет: Подскажите пожалуйста, прога совсем не видит знак ударения в левой части правила? Правила в группе "словари ударений" обрабатываются параллельно, и "не видят" результаты замены друг друга. Если "очень-очень" нужно, то следует создать специальный словарь в группе "постобработка". В ней используется последовательный алгоритм замены в тексте, и каждое последующее правило получает на входе результат обработки всей цепочки предшествующих. Недостатками подобного подхода являются низкая производительность (правила в "постобработке" гораздо медленнее обрабатываются) и лишняя путаница при отладке, когда одно слово в тексте может быть изменено несколькими правилами Мне кажется, будет лучше просто добавить правила [pre2] *яющего=я<ющево *яющегося=я<ющевося *ачивающего=а<чивующево *ачивающегося=а<чивующевося[/pre2] перед [pre2]*яющ*=я<ющ[/pre2]

smochinin: Cminant пишет: Мне кажется, будет лучше просто добавить правила *яющего=я<ющево *яющегося=я<ющевося *ачивающего=а<чивующево *ачивающегося=а<чивующевося Спасибо. Помогло. Отлегло.

smochinin: Извиняюсь, что отвлекаю уважаемого читателя на свои проблемы, но всё-таки прошу совета, если таковой имеется у кого нибудь... Вот у меня есть словари. Почти итоговая версия... Читает дорогой Николай Акапеллович Эланов, вроде бы, совсем неплохо. Но хотелось бы как-то ускорить обработку словарями текстов. По какому пути пойти лучше - взять старые версии словарей от других программ, где всё в TXT и без звёздочек и раздуть словарь простых слов? Или лучше зазвёздоченные слова разбавить менее зазвездоченными, то есть оставить правило *меченн* и добавить отмеченн*, замеченн* помеченн* и т.п? Какой путь, теоретически, может ускорить обработку?

MoppoH: как писал автор программы в какой то теме, быстрее всего обрабатывается текст словами без звездочек. если не секрет сколько обрабатывает книгу, у меня на 8 часовую книгу обработка ну наверное пару минут занимает

smochinin: MoppoH пишет: у меня на 8 часовую книгу обработка ну наверное пару минут занимает Книга на 7ч56м обрабатывается у меня 3м22с. Core2Duo E7500 @2.95 ОЗУ 4гб По-моему, нормально... Просто не могу убрать лишние зазвёздоченные правила, т.к. у каждого слова столько производных, что их все простыми словами не заменишь... Спасибо огромное, уважаемый MoppoH, за основу моих словарей!!! Без Вас у меня ничего не вышло бы! А теперь мне нравится, как читает Николай, и я уже ловлю не ошибки, а оттачиваю произношения словосочетаний))) UPD: Добавил к своим словарям словарь Зализняка из 1490790 простых слов... Та же книга на7ч56м обработана за 4мин50сек Но прога начала дооолго думать и тормозить... Удаляю его напрочь! UPD2: Зазвездочил ещё 10 слов и текст стал обрабатываться на 50 сек дольше... я в печали...

smochinin: Я просто плохо себе представляю рег выражения и, к тому же окончания - лишь частный их случай. Ведь, как я понял, звёздочки являются лишь частным случаем рег выражений. К тому же, разница в0,001 симв/сек не такая существенная)) Ладно, это я оправдываю свою лень))) мне просто нравится, когда попроще и понятнее, ведь, если кто-то, кроме меня захочет пользоваться моим вариантом словарей Моррона, проще будет исправитья всякике *ции, чем обучаться высокому искусству рег выражений! К тому же, как я уже комментировал выше, с оптимизацией покончено))) Теперь я просто набиваю новые слова. Анализирую сегодня романы Айрис Мердок и, также, набиваю словарь excwords Спасибо Вам, odinokiyklaus, за участие в моих словарях. Мне это очень дорого и приятно)))

smochinin: Давеча я температурил и у меня в бреду случилась эврика и я надобавлял в свой словарь много местоимений... Я долго думал, чего же меня гнетет при прослушивании Николая. И, приняв таблетку, понял... Он те слова, на которых нет знака ударения, читает как вообще безударные. Это касается, в основном, коротких слов, из одного-двух слогов... Например "Он был вне себя" читает как Он был вне<себя. то есть, слово себя оставалось безударным... Ну вот я и надобавлял в сегодняшнюю версию словарей, помимо исправлений, некоторые местоимения и местоимения с предлогами... Получилось гораздо нравительнее, чем было до того.

smochinin: Я увлёкся Английской классикой и мне очень хотелось бы спросить у читателя совета.Как бы создать такое волшебное правило, чтобы Николай Эланович, уже в обработанном тексте "склеивал" слова миссис, мистер, сэр, мадам, фрау и проч с именами собственными, следующими за ними... Типа $миссис Т*= миссисТ и так по каждой букве и каждому титулу человека.

MoppoH: что то типа такого должно быть #(?i)\b(миссис|мистер|сэр|мадам|фрау)\b.{0,2}((?-i)[А-Я])=$1$2

smochinin: MoppoH пишет: что то типа такого должно быть #(?i)\b(миссис|мистер|сэр|мадам|фрау)\b.{0,2}((?-i)[А-Я])=$1$2 Спасибо большое!!! А в это правиле есть условие, чтобы приклеивалось только слово с большой буквы?

MoppoH: есть



полная версия страницы