|
| |
Автор | Сообщение | Критика и предложения |
---|
Андрей28 Участник
Сообщений : 74
| Андрей28 | :: Пт Янв 14 2011, 23:55 | Пт Янв 14 2011, 23:55 | |
| О пользе теоретических рассуждений:
В мае 2007 года у меня завязался диалог с создателем программы MP3Book2005. я там предлагал на тот момент новую функцию в поиске омографов. А именно: не выводить те словоформы, которые - записаны в словаре. Мне - тоже что-то не работалось спокойно и нужно было срочно перенаправить свои мысли в другом направлении. Типа для отдыха.
Вы и сейчас пользуетесь этим. Только в программе "Балаболка" для этого необходимо вести второй словарь.
Я - уже сейчас путем не хитрых манипуляций, пользуюсь этой функцией в "Балаболке". но использую для этого основной словарь .dic
Вот жду не дождусь, когда словосочетания будут браться из основного словаря для проверки их присутствия в тексте. (без моих не хитрых манипуляций)
|
|
| | | balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Сб Янв 15 2011, 00:43 | Сб Янв 15 2011, 00:43 | |
| Андрей28 Посмотрел Ваш алгоритм. Сразу повторю свои слова насчет очередности правил - не авторы "Демагога" и "Балаболки" приняли решение о том, что должна выполняться сортировка правил по длине. Если пользователи готовы заново перепроверять и переделывать свои словари, то нет проблем, можно убрать из программ процедуру сортировки правил по длине. Но что-то мне подсказывает, что немногие согласятся на это.
(Кстати, насчет сортировки: если шаблоны правил имеют одну и ту же длину, то они располагаются в результирующем списке в той же последовательности, что и в исходном списке.)
Предложенный Вами алгоритм интересен, с ним стоит ознакомиться посетителям форума. Это действительно попытка объединения использования хеш-таблицы из "быстрого" метода и порядка применения правил из "классического" метода. Если сформулировать коротко суть метода: алгоритм просматривает слово за словом, как в "быстром" методе, выбирает подходящие правила, составляет списки из выбранных правил для каждого из слов, но выполняет эти правила не сразу, а лишь когда текущее слово будет за "пределами" действия всех правил из списка для предыдущего слова.
Тем не менее, я не думаю, что Ваш алгоритм подходит для использования в программах чтения вслух. Основную проблему Вашего подхода Вы сами и озвучили: "как поступить, если правило полностью изменит какое-либо слово и весь его последующий список станет не актуальным". Именно так, в этом и заключается сложность: текст меняется после КАЖДОГО применения правила, то есть второе правило из списка применяется уже к другому тексту, нежели первое правило. Ваш алгоритм отбирает из общего списка несколько правил, которые подходят только к исходному тексту; соответственно, правила, которые должны были быть применены к измененному тексту, уже не будут отобраны, они игнорируются.
Такой проблемы нет и не может быть в классическом методе (поэтому он еще и "жив") - там к измененному тексту применяются все правила из списка, даже если 99,99% из них являются лишними. В "быстром" методе эта проблема уменьшена до минимума: подходящие правила сразу применяются к текущему слову, а если слово в результате этого меняется, то программа проверяет его по хеш-таблице еще раз (хотя я уже точно не помню; но, кажется, именно так).
---
По скорости Ваш алгоритм не должен быть намного медленнее "быстрого" метода, так как количество применяемых правил будет сходным в обоих методах. По реализации он будет сложнее, чем "быстрый", но это вполне по силам осуществить. Исходники "Демагога" доступны на официальном сайте программы, реализация "быстрого" метода там содержит подробные комментарии, так что можете попробовать написать программный код для Вашего метода. |
|
| | | Андрей28 Участник
Сообщений : 74
Репутация : 8
| | | | evilone_ Участник «online словари»
Сообщений : 859
Репутация : 317
| evilone_ | :: Сб Янв 15 2011, 01:34 | Сб Янв 15 2011, 01:34 | |
| - Андрей28 пишет:
- я там предлагал на тот момент новую функцию в поиске омографов. А именно: не выводить те словоформы, которые - записаны в словаре.
да, про это тоже уже упоминалось здесь, только по-другому было сформулировано: исключение из проверки фраз из основного словаря и даже было предложение реализовать этот способ но его почему-то проигнорировали, как в балаболке так и в демагоге, скорее всего посчитав неинтересным
- Андрей28 пишет:
- Я - уже сейчас путем не хитрых манипуляций, пользуюсь этой функцией в "Балаболке". но использую для этого основной словарь .dic
для этого можно использовать также и словарь формата hmg, но вручную это делать очень неудобно потому что после каждой новой проверки приходится менять словарь
- balabolka пишет:
- Если пользователи готовы заново перепроверять и переделывать свои словари, то нет проблем
есть бо-о-о-о-ольшие сомнения на этот счет сейчас переделывать метод под точный порядок есть смысл если словарь будет составляться с нуля пользователем, где он будет, и будет ли? всегда следить за правильным порядком замен, хотя по опыту скажу что за порядком замен получается следить до поры до времени, потом это все просто забывается - если только не привязываться к конкретному слову или группе слов, например содержащих "ё" "не-ни" и т.п. но это будут (смогут) делать единицы, остальным это просто не нужно (интересно)
мне кажется, но это только мое мнение, что зацикливаться на методе словарных замен нет смысла, даже при очень больших словарях современные компьютеры справляются практически с любыми заменами нужно уделить больше внимания поиску омографов: автоматическому, ручному, комбинированному, хоть какому-то потому что то что сейчас есть это скорее "костыли" чем "инструменты" для их поиска в тексте, и если в балаболке они хоть как-то очерчены то в демагоге пользоваться ими сможет наверно только сам автор, потому что все крайне неудобно сделано с точки зрения пользователя (этот момент тоже к критике ).
|
|
| | | Андрей28 Участник
Сообщений : 74
Репутация : 8
| Андрей28 | :: Сб Янв 15 2011, 01:41 | Сб Янв 15 2011, 01:41 | |
| balabolka
Тут вот, еще что: Если мой метод применить - после сортировки правил по длине...
То расхождений в быстром и Классическом методе не будет вовсе (те самые 100%)
Тоесть правила будут применяться - одинаково не зависимо от галочки в "Балаболке".
И словари не пострадают. |
|
| | | Андрей28 Участник
Сообщений : 74
Репутация : 8
| Андрей28 | :: Сб Янв 15 2011, 02:05 | Сб Янв 15 2011, 02:05 | |
| - evilone_ пишет:
- для этого можно использовать также и словарь формата hmg, но вручную это делать очень неудобно потому что после каждой новой проверки приходится менять словарь
Я же говорил, что эта идея - еще 2007 года.
http://www.narod.ru/guestbook/index.xhtml?owner=29014877&c=34
У пользователя Андрей, который говорит об этом - тот же почтовый адрес (он виден при наведении мышкой на имя), что и у меня в профиле.
Я - тоже считаю, что нужно поиску омографов уделить больше внимания, чем оно сейчас есть...
На данный момент поступаю так:
в словаре .hmg - только омографы и нет словосочетаний. Все омографы записаны с учетом регистра и строчными буквами.
Все заглавные буквы текста меняются на сточные. после обработки текста словарем - появляются омографы, в теле которых есть - заглавные буквы (ударение). Они - просто не находятся при поиске новых омографов.
Но очень хочется нормального инструмента.
|
|
| | | Андрей28 Участник
Сообщений : 74
Репутация : 8
| Андрей28 | :: Сб Янв 15 2011, 02:11 | Сб Янв 15 2011, 02:11 | |
| - evilone_ пишет:
- мне кажется, но это только мое мнение, что зацикливаться на методе словарных замен нет смысла, даже при очень больших словарях современные компьютеры справляются практически с любыми заменами
нужно уделить больше внимания поиску омографов Мое мнение: Программистам, которые занимаются этим "для себя" (просто потому, что хочется), такие вопросы (алгоритмы, методы) интереснее, чем наворачивание программы функциями и возможностями, которые так любят пользователи. Для них это - рутина... |
|
| | | balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Сб Янв 15 2011, 03:05 | Сб Янв 15 2011, 03:05 | |
| - Андрей28 пишет:
- Это не проблема. Просто я это опустил, чтобы не осложнять первое знакомство с методом. На определенном этапе нужно проверять не изменился ли куст слова и соответственно обновлять списки (возможно, даже все не выполненные).
Ну, как же это не проблема?! Это очень даже большая проблема: придется проверять заново слова после каждого применения правила. При этом может меняться не только одно слово, но и следующее, второе, третье слово (а, значит, и их списки правил, и "глубина влияния"). Одно слово может заменяться двумя, три слова превращаться в одно и т.п. - и это надо суметь распознать, так как программа, например, применяет правило для первого слова предложения, а поменялось третье слово. В таких случаях придется "откатываться" назад к измененному слову и заново строить список правил.
То есть, я хочу сказать, что если получится решить эту проблему, то добиться точности "классического" метода, может быть, и удастся, но проигрыш "быстрому" методу будет довольно значительным. На одной чаше весов сотые доли процента увеличения точности применения правил, на другой чаше - потеря скорости и довольно сложный алгоритм, проверяющий текст с возвратами назад и обновлениями списков правил для слов. Ваш алгоритм лучше, чем "классический" (естественно, так как используется хеш-таблица, которая искореняет "тормознутость" старого метода), но вот может ли он стать заменой "быстрому" методу? Пока мне это кажется сомнительным; ответ может дать только программная реализация алгоритма. |
|
| | | Андрей28 Участник
Сообщений : 74
Репутация : 8
| Андрей28 | :: Сб Янв 15 2011, 03:49 | Сб Янв 15 2011, 03:49 | |
| - balabolka пишет:
- То есть, я хочу сказать, что если получится решить эту проблему, то добиться точности "классического" метода, может быть, и удастся, но проигрыш "быстрому" методу будет довольно значительным.
о потере скорости я говорил именно поэтому.
Но, все-таки это не проблема, а - обычная работа по программированию алгоритма. |
|
| | | balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Сб Янв 15 2011, 12:21 | Сб Янв 15 2011, 12:21 | |
| Вот как будет выглядеть "комбинированный" способ в моем представлении.
- Текст делится на слова; программа просматривает список слов, составляя списки с номерами правил для каждого слова.
- Полученные списки номеров объединяются в один общий список; номера правил располагаются по порядку.
- Программа применяет правила из списка, одно за другим, пока хотя бы одно из них не сработает. Правила проверяются и применяются как в "классическом" методе. Найденное правило применяется к тексту столько раз, сколько необходимо.
- Программа запоминает номер сработавшего правила (например, N1). Список номеров правил очищается.
- Текст снова делится на слова; программа просматривает слово за словом, выбирая номера правил - но теперь рассматриваются только те правила, чей номер больше, чем N1.
- Правила из списка применяются к тексту, пока не сработает правило под номером N2. И так далее, пункт за пунктом снова и снова, пока срабатывает хотя бы одно правило из списка.
Параметр "глубина влияния", скорее всего, использовать не удастся - из-за парсинга текста (легче и быстрее делить целиком текст на слова, чем делить только часть текста), а также из-за необходимости запоминать номер сработавшего правила.
Что получится в результат? "Комбинированный" метод будет работать ощутимо быстрее, чем "классический" (спасибо хеш-таблице), но медленнее, чем "быстрый". "Быстрый" метод осуществляет лишь один проход по списку слов; "быстрый" метод применяет шаблон правила лишь к текущему слову, а не ко всему тексту. "Комбинированный" способ будет вынужден многократно выполнять операцию объединения списков номеров правил. Например, если текст состоит из 20 слов и на нем сработают 10 правил, то объединение списков придется выполнить (20-1)*10=190 раз. "Быстрый" метод избавлен от такой работы.
Не могу утверждать, что результаты работы "комбинированного" и "классического" методов полностью совпадут - это зависит от нюансов поиска слов в хеш-таблице (лучше об этом может рассказать flegont). Но процент совпадения будет очень высоким.
Ради чего всё это? Пока могу назвать лишь один недостаток "быстрого" метода, который исправит "комбинированный" метод. Речь идет о том примере, что привела в своем посте evilone_: - Код:
-
я все=я всё? все равно=всё равнО Пара правил; начало более длинного правила совпадает с концом более короткого правила. "Быстрый" метод сначала применит более короткое правило, и лишь затем - более длинное правило (или вообще его не применит). "Классический" и "комбинированный" методы сделают наоборот.
Итак, что мы получим в итоге? "Быстрый" метод всё еще быстрее, чем какой-либо другой метод; результаты "быстрого" и "комбинированного" не совпадут точно также, как и результаты "быстрого" и "классического" методов (но различия очень небольшие). "Комбинированный" способ годится как замена "классического" метода, но не сможет заменить "быстрый" метод. В общем, есть что обсуждать. |
|
| | | Андрей28 Участник
Сообщений : 74
Репутация : 8
| Андрей28 | :: Сб Янв 15 2011, 12:28 | Сб Янв 15 2011, 12:28 | |
| По ночам – спать нужно. Но, если не получается, то можно сделать что-то полезное.
Конечно – слишком сложно. Множество списков и проверок… Но я не стал бы этого писать, если бы мне не пришла – совсем простая мысль. Мысль про один список и то, как он будет устроен.
Итак, начнем сначала.
http://narod.ru/disk/3511704001/00.doc.html |
|
| | | Андрей28 Участник
Сообщений : 74
Репутация : 8
| Андрей28 | :: Сб Янв 15 2011, 12:31 | Сб Янв 15 2011, 12:31 | |
| - balabolka пишет:
- Вот как будет выглядеть "комбинированный" способ в моем представлении.
Я знал, что не оставлю равнодушным - тех, кого это касается
Что-ж теперь - можно думать, выбирать. И прочее.... Но метод - существует - факт....
Удачи вам. Спасибо за внимание |
|
| | | ptoton Бывалый
Сообщений : 108
Репутация : 25
| ptoton | :: Вс Май 20 2012, 12:56 | Вс Май 20 2012, 12:56 | |
| В последнее время все чаще приходится при обработке текстового файла заменять "неразрывный дефис" на "минус". Можно ли добавить такую замену в Демагог (Правка -> Заменить символы)? |
|
| | | flegont V.I.P.
Сообщений : 355
Репутация : 476
| | | | ptoton Бывалый
Сообщений : 108
Репутация : 25
| ptoton | :: Вс Май 20 2012, 20:43 | Вс Май 20 2012, 20:43 | |
| Что-то не так. После открытия в Демагог символ "неразрывный дефис" выглядит в Демагог как пробел. Но после записи и выхода из Демагог все равно он остается в этом файле. И уже через Word удаляю его. |
|
| | | flegont V.I.P.
Сообщений : 355
Репутация : 476
| | | | flegont V.I.P.
Сообщений : 355
Репутация : 476
| | | | ptoton Бывалый
Сообщений : 108
Репутация : 25
| ptoton | :: Пн Май 21 2012, 09:08 | Пн Май 21 2012, 09:08 | |
| Спасибо. |
|
| | | evmir_troll-hunter Admin
Сообщений : 616
Репутация : 208
| evmir_troll-hunter | :: Чт Авг 23 2012, 12:45 | Чт Авг 23 2012, 12:45 | |
| - flegont пишет:
- повторно проверяются те правила из словаря, которые не были применены ранее или применение которых уменьшает длину слова.
Спасибо за интересное улучшение! Замечание по другому поводу; в словарь добавил "звёздные" правила:
- Спойлер:
*ого моря=ого мОря *ого мусора=ого мУсора *ого мыса=ого мЫса *ую, * проволоку=ую, прОволоку *ую, * пропасть=ую, прОпасть *ые * * бока=ые бокА *ые, * вина=ые, вИна *ые, * воды=ые, вОды *ые слезы=ые слёзы *ые слова=ые словА Ну и с другими прилагательными окончаниями, т.е. я хочу серьёзно «автоматизировать» процесс замен. Мне надоели дикие правила напр. «дочь самовО Монтесумы»! Много правил, много ошибок. Я знаю, что звёздочки так сказать очень прямолинейны и будут ошибки, но они не принципиальные. Орфо важнее. И уж конечно неточности намного лучше вот этого: будем водится=будем водИтся дотянутся до=они дотя+нутся до+ могут содержатся=могут содержа+тся могут становиться=могут станови+ться сводами замка=своБдами за+мка
"водится, дотянутся, содержатся, становиться" не являются омографами вообще, о чём тут говорить! |
|
| | | flegont V.I.P.
Сообщений : 355
Репутация : 476
| | | | evilone_ Участник «online словари»
Сообщений : 859
Репутация : 317
| | | | flegont V.I.P.
Сообщений : 355
Репутация : 476
| | | | evilone_ Участник «online словари»
Сообщений : 859
Репутация : 317
| evilone_ | :: Вс Фев 16 2014, 00:07 | Вс Фев 16 2014, 00:07 | |
| ... а если запоминать последовательность и задать ограничение только на один вызов по ссылке - т.е. вызвать из словаря другой можно только один раз и пока первый полностью не "закроется" запретить вызов из других. тогда будет так:
- для словаря 1 пишет:
- словарь 1(открылся)
......словарь 2(открылся) ......словарь 1(уже открыт - значит открывать нельзя) ......словарь 2(закрылся) ......словарь 3(открылся) ............словарь 2(открылся) ............словарь 1(уже открыт - значит открывать нельзя) ............словарь 2(закрылся) ......словарь 3(закрылся) словарь 1(закрылся) - для словаря 2 пишет:
- словарь 2(открылся)
......словарь 1(открылся) ............словарь 2(уже открыт - значит открывать нельзя) ............словарь 2(закрылся) ............словарь 3(открылся) ..................словарь 2(уже открыт - значит открывать нельзя) ..................словарь 2(закрылся) ............словарь 3(закрылся) ......словарь 1(закрылся) словарь 2(закрылся) - для словаря 3 пишет:
- словарь 3(открылся)
......словарь 2(открылся) ............словарь 1(открылся) ..................словарь 2(уже открыт - значит открывать нельзя) ..................словарь 2(закрылся) ..................словарь 3(уже открыт - значит открывать нельзя) ..................словарь 3(закрылся) ............словарь 1(закрылся) ......словарь 2(закрылся) словарь 1(закрылся) в примере: - в словаре 1 есть ссылка на словарь 2 и словарь 3; - в словаре 2 есть ссылка на словарь 1; - в словаре 3 есть ссылка на словарь 2. |
|
| | | flegont V.I.P.
Сообщений : 355
Репутация : 476
| flegont | :: Вс Фев 16 2014, 12:02 | Вс Фев 16 2014, 12:02 | |
| Ну да, держать и постоянно пополнять и проверять на дублирование имен массив имен уже включенных словарей... А процедура чтения каждого словаря - рекурсивная, т.е. вызывающая саму себя, как только встречает очередную ссылку на словарь. Delphi поддерживает рекурсию, но это связано с дополнительным расходом оперативной памяти и др. проблемами.
И к чему все эти пляски с бубнами? Только для того, чтобы сделать "обозримым" некий большой словарь?
Для этого, ИМХО, надо использовать специализированный текстовый редактор, который позволяет одним кликом мышки сворачивать некий раздел словаря в одну строку и, при необходимости, разворачивать вновь. При этом текст словаря остается единым большим файлом.
Будет ли подобный специализированный редактор словарей включен в Demagog - будущее покажет |
|
| | | evilone_ Участник «online словари»
Сообщений : 859
Репутация : 317
| evilone_ | :: Вс Фев 16 2014, 13:38 | Вс Фев 16 2014, 13:38 | |
| - flegont пишет:
- И к чему все эти пляски с бубнами?
Только для того, чтобы сделать "обозримым" некий большой словарь? ну... не только. забегая наперед, можно, к примеру, разрешить делать ссылки на *.dic словари внутри *.rex или даже не *.rex а как-то их обозначить иначе, чтобы не было путаницы. сейчас так же есть такая проблема что применить *.rex словарь к тексту можно только перед *.dic за один проход - иначе нужно "плясать с бубном". вариантов много... в общем наше дело предложить |
|
| | | flegont V.I.P.
Сообщений : 355
Репутация : 476
| | | | Лёва V.I.P.
Сообщений : 134
Репутация : 173
| Лёва | :: Вс Фев 16 2014, 23:34 | Вс Фев 16 2014, 23:34 | |
| Менять словари, как перчатки, мне кажется проблемы нет. А вот подключать определённые куски, - проблематично. Я имею введу - играть с пятой цифры. - Цитата :
- сейчас так же есть такая проблема что применить *.rex словарь к тексту можно только перед *.dic за один проход
А почему нельзя менять порядок? Если разбить *.rex на n частей и как то так: *n1.rex *1.dic *n2.rex *3.dic *n3.rex *2.dic Или я чего то недопонимаю? |
|
| | | flegont V.I.P.
Сообщений : 355
Репутация : 476
| flegont | :: Пн Фев 17 2014, 09:53 | Пн Фев 17 2014, 09:53 | |
| Программа устроена так, что она, перед чтением очередного фрагмента текста, смотрит: имеются ли подключенные словари? Если ДА, то она применяет к тексту ВСЕ подкюченные рексы, если они есть, затем ВСЕ подключенные дики, ежели таковые есть. Словари одного типа применяются в алфавитном порядке их имен. Таким образом, словари rex ВСЕГДА будут применяться ПЕРЕД словарями dic, какие бы пляски с бубном не исполнял пользователь
|
|
| | | Лёва V.I.P.
Сообщений : 134
Репутация : 173
| Лёва | :: Пн Фев 17 2014, 10:12 | Пн Фев 17 2014, 10:12 | |
| Так сделать ini или cfg файл, где храниться список словарей с последовательностью их применения. Читать его построчно, по мере применения. У меня сделано так в options.ini:
[Шрифт] Шрифт=Arial Цвет= Размер=11 [DIC] 0=0omograph1.vcb 1=0mograph2.omn 2=1Olga_default.vcb 3=2yo.vcb 4=3Olgazalizn_olga.vcb |
|
| | | flegont V.I.P.
Сообщений : 355
Репутация : 476
| flegont | :: Пн Фев 17 2014, 11:16 | Пн Фев 17 2014, 11:16 | |
| Это изменит принятую в Говорилке, Балаболке и Демагоге идеологию работы со словарями. Сейчас пользователю показывается список ВСЕХ, доступных ему словарей, а он отмечает галочками те, которые должны применяться к тексту. Порядок применения словарей определяет уже сама программа, как я рассказывал выше. А теперь пользователь должен будет из общего списка формировать СВОЙ подсписок, располагая в нем словари в требуемом порядке. Перетаскиванием ли мышью или нажимая кнопки "стрелка вверх"/"стрелка вниз" и перемещая тем самым выделенный словарь в списке. Это - серьезное изменение интерфейса, да и в алгоритме тоже... Такие дела. |
|
| | | balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Пн Фев 17 2014, 14:59 | Пн Фев 17 2014, 14:59 | |
| Честно говоря, очень не хочется что-то менять в работе со словарями. Добавление возможности изменения порядка применения словарей создаст две проблемы:
- Правила будут применяться не в том порядке, как это было задумано создателями некоторых словарей. Сейчас все правила из словарей REX объединяются в один список, все правила из словарей DIC - в другой список. Правила из словарей REX идут по порядку, как они располагались в исходных файлах. Правила из словарей DIC сортируются по размеру шаблона, более "длинные" правила располагаются в начале списка (этот метод сортировки впервые был применен в "Говорилке"; в остальных программах он используется для совместимости). Если никакой сортировки правил из словарей DIC не будет (или будет сортироваться каждый список из каждого файла по отдельности - это также предмет для дискуссии), то порядок применения правил кардинально поменяется. Это даст совершенно непредсказуемый результат: многие правила из словарей DIC перестанут работать или будут работать неправильно. Для словарей REX эта проблема будет не так остра, хотя и тут возможны сюрпризы.
- Усложнится интерфейс программы. Вы не представляете, как бывает сложно разобраться пользователям даже в нынешней системе коррекции произношения. Могу вспомнить, как несколько дней переписывался с незрячим пользователем из Арканзаса, пытаясь разъяснить ему синтаксис правил, формат словарей, порядок их применения (понятно, что тут есть и доля моей вины, так как всегда надо описывать возможности программы в документации простым и доступным языком). Кто будет пользоваться новым порядком применения правил из словарей? Несколько опытных специалистов по регулярным выражениям с этого форума, и всё? Больше форматов служебных файлов для коррекции произношения - это не то, чего бы мне хотелось, это совершенно точно не добавит ясности для пользователей программ.
Сам я тоже не восторге от нынешней системы словарей для коррекции произношения. Не я ее придумал; формат словарей DIC были взят "Говорилки", формат словарей INI/REX попросили добавить немцы, так как он был в какой-то голландской (!) программе для чтения вслух, которая сейчас даже не существует (но словари для использования в ней немецких голосов остались). Первоочередной задачей было обеспечить совместимость в использовании словарей в разных программах; поэтому всё работает так, как работает, пусть даже совсем не идеально.
Мне лично больше по душе словарь из TextAloud: один общий словарь, где для каждого правила задаются настройки (правило является регулярным выражением, шаблоном с подстановочными символами или простой заменой; правило применяется для всех языков или для одного из них; правило применяется для всех голосов, для голосов одной фирмы или для одного голоса, и т. д.). Но и этот подход не идеален, особенно если у нас по несколько тысяч правил для каждого русского голоса; придется создавать сложный редактор словаря, с множеством фильтров.
В общем, пока не готов добавлять возможность попеременного применения словарей REX и DIC. Но также не имею никаких принципиальных возражений против такой функции - если кому-то это необходимо, такой способ вполне можно где-либо реализовать (но не моей программе "Балаболка", не сейчас). Рекомендую, например, подумать о создании файла BAT, в котором несколько раз вызывается консольная утилита для извлечения текста с сайта "Балаболки" для применения словарей в заданном порядке; дешево и сердито. |
|
| | | flegont V.I.P.
Сообщений : 355
Репутация : 476
| | | | Лёва V.I.P.
Сообщений : 134
Репутация : 173
| Лёва | :: Пн Фев 17 2014, 17:07 | Пн Фев 17 2014, 17:07 | |
| - Цитата :
- 2. ОНИ СОДЕРЖАТ ТОЛЬКО ИМЕНА СЛОВАРЕЙ DIC И REX, КОТОРЫЕ ПОЛЬЗОВАТЕЛЬ ЖЕЛАЕТ ПРИМЕНИТЬ К ТЕКСТУ В УКАЗАННОМ ПОРЯДКЕ
Да. Это тоже самое, о чём я говорил выше. Я бы сделал так: http://yadi.sk/d/NsKz9Gi2J49je скопировать ссылку как текст и открыть отдельно, ниже тоже. + перетаскивание мышкой (менять местами и файлы на форму тоже). Мне кажется это удобней. (тут смысл в иконках тоже. Для примера подгрузите файлы с красивыми иконками.) Разумеется, что изначально подгружается ранее использованный список. Ну надо, - пойти на встречу желаниям evilone_. А какие иконки рисует к словарям! Если у словарей сделать маленькое отличие в расширении, - префикс, или индекс, то можно ассоциировать по расширению. Красиво получится. + Можно сделать виртуальные диски для текстовых книг и уже обработанных, может быть для словарей. Что то типа - [url] http://yadi.sk/d/OEHXGd2nJ4Doe [/url] Можно подумать. В каждой шутке, есть только доля шутки. - Цитата :
- Это изменит принятую в Говорилке, Балаболке и Демагоге идеологию работы со словарями.
А чем эта идеология замечательна? Не нахожу ничего рационального, кроме не обоснованной догмы. - Цитата :
- Честно говоря, очень не хочется что-то менять в работе со словарями.
- Цитата :
- Я полностью согласен с balabolka и также не намерен менять ничего в интерфейсе и алгоритме Демагога.
Хозяин - барин.
|
|
| | | flegont V.I.P.
Сообщений : 355
Репутация : 476
| | | | Лёва V.I.P.
Сообщений : 134
Репутация : 173
| Лёва | :: Пн Фев 17 2014, 18:02 | Пн Фев 17 2014, 18:02 | |
| - Цитата :
- может быть реализован без внесения в программу каких либо изменений.
Мне кажется, что наверняка выйдет. |
|
| | | Dimsok Участник
Сообщений : 55
Репутация : 1
| Dimsok | :: Сб Май 14 2016, 23:25 | Сб Май 14 2016, 23:25 | |
| При выборе опции сохранять txt файл эл. книг в заданной папке, а не в папке источника, текстовый файл всё равно упрямо создаётся рядом с оригиналом. |
|
| | | flegont V.I.P.
Сообщений : 355
Репутация : 476
| flegont | :: Вс Май 15 2016, 10:34 | Вс Май 15 2016, 10:34 | |
| Воспроизвести глюк пока не удалось. Какую ни задаю папку назначения, туда txt и кладется.
Пришлите Ваш файл настроек $.cfg на n1d3@yahoo.com или выложите куда-нибудь и дайте ссылку, Надо бы посмотреть, как запомнились настройки.
Дополнительно: какой тип файла открываете, fb2 или epub ? какая версия программы? 311? (Demagog.exe от 1.05.2016 10:35, 1090048)
|
|
| | | Dimsok Участник
Сообщений : 55
Репутация : 1
| Dimsok | :: Вс Май 15 2016, 10:40 | Вс Май 15 2016, 10:40 | |
| https://yadi.sk/d/tBoZDxDRriTGj
ОС: Win XP. Программа последней версии. Файлы какие только не пробовал открывать: docx, fb2, ebpu. Папка "Work" первоначально создаётся, но так всегда пустой и остаётся. |
|
| | | flegont V.I.P.
Сообщений : 355
Репутация : 476
| flegont | :: Вс Май 15 2016, 10:56 | Вс Май 15 2016, 10:56 | |
| Спасибо за $.cfg. Попробуйте задать какую-нибудь рабочую папку (work или т.п) НЕ в Program Files, а в любом другом месте за ее пределами. Или дайте как администратор, полные права на существующую папку c:\Program Files\Demagog\work Предполагаю что на запись в Program Files у Демагога в данном случае попросту нет прав.
P.S. У меня на Win 10 сработала запись в рабочую папку c:\Program Files (x86)\work также, когда я запустил Демагога "От имени администратора". При обычном запуске рабочая папка work в Program Files (x86) даже не создавалась (молчаливый игнор!) а в настройках прописывалась. |
|
| | | evmir_troll-hunter Admin
Сообщений : 616
Репутация : 208
| evmir_troll-hunter | :: Вс Май 15 2016, 11:39 | Вс Май 15 2016, 11:39 | |
| Нет необходимости кидать папку с Демагогом в Program Files. У меня напр. она вообще на диске D. |
|
| | | Dimsok Участник
Сообщений : 55
Репутация : 1
| Dimsok | :: Вс Май 15 2016, 11:47 | Вс Май 15 2016, 11:47 | |
| - Цитата :
- Нет необходимости кидать папку с Демагогом в Program Files. У меня напр. она вообще на диске D
Кому как, мне хочется, чтобы все проги были в одном месте, не разбросаны по всему компу. flegont, у меня одна учётная запись в компе, административная. В xp нет тех параноидальных загонов, что начались с Висты. Пробовал назначить сохранение текста в другом месте, на др. диске, всё равно ничего не выходит. Вы тестировали на моей ОС? |
|
| | | flegont V.I.P.
Сообщений : 355
Репутация : 476
| flegont | :: Вс Май 15 2016, 12:19 | Вс Май 15 2016, 12:19 | |
| Уже несколько лет, как в моем распоряжении не осталось ни одного компа с Win XP и тесты новых версий я делаю на Win 7, 8, 10. (Хотя раньше делал даже и для Win 98)
В Демагоге для сохранения текстового файла не там, где оригинал, используется процедура, написанная мною еще во времена XP и это работало - в опции "Сервис - Пакетный конвертер". (Но папку Демагога я никогда в Program Files не помещал).
Для нынешнего переноса текстов, образовавшихся при открытии электронных книг, в единую "рабочую папку" я использовал ту же самую процедуру.
Можно попробовать еще проверку: Разверните из zip-архива папку Demagog в любом месте, за пределами program Files и посмотрите, будут ли теперь файлы собираться в рабочую папку work? Проверьте так же опцию "Пакетный конвертер" - в ней есть свой собственный выбор папки назначения для текстов. Поместит ли эта опция итоговые тексты туда, куда назначено?
|
|
| | | Dimsok Участник
Сообщений : 55
Репутация : 1
| Dimsok | :: Вс Май 15 2016, 14:03 | Вс Май 15 2016, 14:03 | |
| Скопировал папку с Демагогом в корень диска D, путь для сохранения указал d:\Demagog\work\, но с тем же безрезультатным результатом. Пакетный конвертер сохраняет текст куда указывается. |
|
| | | flegont V.I.P.
Сообщений : 355
Репутация : 476
| flegont | :: Вс Май 15 2016, 14:09 | Вс Май 15 2016, 14:09 | |
| Ага, какое-то отличие есть. Я посмотрю исходник, подумаю, что можно сделать. |
|
| | | flegont V.I.P.
Сообщений : 355
Репутация : 476
| | | | Dimsok Участник
Сообщений : 55
Репутация : 1
| Dimsok | :: Ср Май 18 2016, 10:53 | Ср Май 18 2016, 10:53 | |
| А вообще txt файлы остаются навечно после извлечения из других форматов? Иногда надо только на раз открыть книгу, и что, потом вручную удалять? Так могут весь комп захламить txt файлами. Нельзя ли сделать как в балаболке? Там ни разу не встречал файлов с извлечённым текстом, хотя открывал файлы разных форматов. |
|
| | | Dimsok Участник
Сообщений : 55
Репутация : 1
| Dimsok | :: Ср Май 18 2016, 10:57 | Ср Май 18 2016, 10:57 | |
| Да, и иконка программы какая-то несерьёзная. Планов поменять нет? |
|
| | | flegont V.I.P.
Сообщений : 355
Репутация : 476
| | | | evmir_troll-hunter Admin
Сообщений : 616
Репутация : 208
| evmir_troll-hunter | :: Чт Май 19 2016, 02:56 | Чт Май 19 2016, 02:56 | |
| Иконка программы - бренд\тов. знак, идея, что хотел донести автор. Его просто так не меняют. Для меня слово "демагог" ассоциируется с политиками, оплевывающими микрофон (казённое имущество!) при оболванивании люда. Реализовать такое в picto 48x48 наверняка будет сложновато.
Пиктограмма — это когда нарисован стакан и имеется в виду стакан. Идеограмма — это когда нарисован стакан и имеется в виду стакан, бухло, попойка, стекольная промышленность, процент пьяных водителей и пр. в любой грамматической форме. |
|
| | | flegont V.I.P.
Сообщений : 355
Репутация : 476
| flegont | :: Чт Май 19 2016, 07:20 | Чт Май 19 2016, 07:20 | |
| Когда (уже давно) я придумывал название для программы, то поначалу был в некотором замешательстве. Все названия, ассоциированные с устной речью, уже были ранее кем-то использованы. Говорилка, говорун, бормоталка, балаболка, спикер, оратор... Оопс! "Демагог" - изначальное значение в греческом языке, времен античной демократии - "говорящий с народом".
Поскольку в наше время слово приобрело иронический оттенок, то и иконка программы должна сей факт как-то отражать. Азартно-болтливая рожица. Если кто-то сможет нарисовать ее лучше и узнаваемей/запоминаемей, чем это уже сделано - милости просим. Все варианты будут мною рассмотрены. Но это - не такое простое дело - рисование на холсте в 48х48 пикселей, как справедливо заметил evmir_troll-hunter. Поэтому, думаю, вряд ли в ближайшем будущем вид иконки Демагога поменяется |
|
| | | Dimsok Участник
Сообщений : 55
Репутация : 1
| Dimsok | :: Чт Май 19 2016, 11:50 | Чт Май 19 2016, 11:50 | |
| - Цитата :
- Иконка программы - бренд\тов. знак, идея, что хотел донести автор. Его просто так не меняют.
Для меня слово "демагог" ассоциируется с политиками, оплевывающими микрофон (казённое имущество!) при оболванивании люда. Реализовать такое в picto 48x48 наверняка будет сложновато Фото Жириновского в иконку загнать? |
|
| | | | Критика и предложения |
---|
| |