语音合成技术和文本语音转换 - Synthetic voice and Text to Speech technology - Синтетический голос и технологии преобразования текста в речь
 
TTS книги  Проверялка  ФорумФорум  RSS  ПоискПоиск  РегистрацияРегистрация  ВходВход  

Критика и предложения

Предыдущая тема Следующая тема Перейти вниз
На страницу : Предыдущий  1, 2, 3, 4  Следующий
АвторСообщениеКритика и предложения
Андрей28
Участник


Сообщений : 74

 Андрей28 :: Пт Янв 14 2011, 23:55
Пт Янв 14 2011, 23:55

О пользе теоретических рассуждений:

В мае 2007 года у меня завязался диалог с создателем программы MP3Book2005.
я там предлагал на тот момент новую функцию в поиске омографов. А именно: не выводить те словоформы, которые - записаны в словаре. Мне - тоже что-то не работалось спокойно и нужно было срочно перенаправить свои мысли в другом направлении. Типа для отдыха.

Вы и сейчас пользуетесь этим. Только в программе "Балаболка" для этого необходимо вести второй словарь.

Я - уже сейчас путем не хитрых манипуляций, пользуюсь этой функцией в "Балаболке". но использую для этого основной словарь .dic

Вот жду не дождусь, когда словосочетания будут браться из основного словаря для проверки их присутствия в тексте. (без моих не хитрых манипуляций)

Вернуться к началу Перейти вниз
balabolka
V.I.P.
avatar


Сообщений : 1228
Репутация : 986

 balabolka :: Сб Янв 15 2011, 00:43
Сб Янв 15 2011, 00:43

Андрей28
Посмотрел Ваш алгоритм. Сразу повторю свои слова насчет очередности правил - не авторы "Демагога" и "Балаболки" приняли решение о том, что должна выполняться сортировка правил по длине. Если пользователи готовы заново перепроверять и переделывать свои словари, то нет проблем, можно убрать из программ процедуру сортировки правил по длине. Но что-то мне подсказывает, что немногие согласятся на это.

(Кстати, насчет сортировки: если шаблоны правил имеют одну и ту же длину, то они располагаются в результирующем списке в той же последовательности, что и в исходном списке.)

Предложенный Вами алгоритм интересен, с ним стоит ознакомиться посетителям форума. Это действительно попытка объединения использования хеш-таблицы из "быстрого" метода и порядка применения правил из "классического" метода. Если сформулировать коротко суть метода: алгоритм просматривает слово за словом, как в "быстром" методе, выбирает подходящие правила, составляет списки из выбранных правил для каждого из слов, но выполняет эти правила не сразу, а лишь когда текущее слово будет за "пределами" действия всех правил из списка для предыдущего слова.

Тем не менее, я не думаю, что Ваш алгоритм подходит для использования в программах чтения вслух. Основную проблему Вашего подхода Вы сами и озвучили: "как поступить, если правило полностью изменит какое-либо слово и весь его последующий список станет не актуальным". Именно так, в этом и заключается сложность: текст меняется после КАЖДОГО применения правила, то есть второе правило из списка применяется уже к другому тексту, нежели первое правило. Ваш алгоритм отбирает из общего списка несколько правил, которые подходят только к исходному тексту; соответственно, правила, которые должны были быть применены к измененному тексту, уже не будут отобраны, они игнорируются.

Такой проблемы нет и не может быть в классическом методе (поэтому он еще и "жив") - там к измененному тексту применяются все правила из списка, даже если 99,99% из них являются лишними. В "быстром" методе эта проблема уменьшена до минимума: подходящие правила сразу применяются к текущему слову, а если слово в результате этого меняется, то программа проверяет его по хеш-таблице еще раз (хотя я уже точно не помню; но, кажется, именно так).

---

По скорости Ваш алгоритм не должен быть намного медленнее "быстрого" метода, так как количество применяемых правил будет сходным в обоих методах. По реализации он будет сложнее, чем "быстрый", но это вполне по силам осуществить. Исходники "Демагога" доступны на официальном сайте программы, реализация "быстрого" метода там содержит подробные комментарии, так что можете попробовать написать программный код для Вашего метода.

Вернуться к началу Перейти вниз
Андрей28
Участник


Сообщений : 74
Репутация : 8

 Андрей28 :: Сб Янв 15 2011, 01:30
Сб Янв 15 2011, 01:30

balabolka пишет:
Основную проблему Вашего подхода Вы сами и озвучили: "как поступить, если правило полностью изменит какое-либо слово и весь его последующий список станет не актуальным".

Немного не так:

Это не проблема. Просто я это опустил, чтобы не осложнять первое знакомство с методом. На определенном этапе нужно проверять не изменился ли куст слова и соответственно обновлять списки (возможно, даже все не выполненные).

balabolka пишет:
Если пользователи готовы заново перепроверять и переделывать свои словари, то нет проблем, можно убрать из программ процедуру сортировки правил по длине. Но что-то мне подсказывает, что немногие согласятся на это.

Может и не согласятся. Но метод, со скоростью "Быстрого" и полинейным выполнением правил - существуетWink

Вернуться к началу Перейти вниз
evilone_
Участник «online словари»
avatar


Сообщений : 859
Репутация : 317

 evilone_ :: Сб Янв 15 2011, 01:34
Сб Янв 15 2011, 01:34

Андрей28 пишет:
я там предлагал на тот момент новую функцию в поиске омографов. А именно: не выводить те словоформы, которые - записаны в словаре.
да, про это тоже уже упоминалось здесь, только по-другому было сформулировано: исключение из проверки фраз из основного словаря
и даже было предложение реализовать этот способ но его почему-то проигнорировали, как в балаболке так и в демагоге, скорее всего посчитав неинтересным Smile

Андрей28 пишет:
Я - уже сейчас путем не хитрых манипуляций, пользуюсь этой функцией в "Балаболке". но использую для этого основной словарь .dic
для этого можно использовать также и словарь формата hmg, но вручную это делать очень неудобно потому что после каждой новой проверки приходится менять словарь

balabolka пишет:
Если пользователи готовы заново перепроверять и переделывать свои словари, то нет проблем
есть бо-о-о-о-ольшие сомнения на этот счет Smile
сейчас переделывать метод под точный порядок есть смысл если словарь будет составляться с нуля пользователем, где он будет, и будет ли? всегда следить за правильным порядком замен, хотя по опыту скажу что за порядком замен получается следить до поры до времени, потом это все просто забывается - если только не привязываться к конкретному слову или группе слов, например содержащих "ё" "не-ни" и т.п. но это будут (смогут) делать единицы, остальным это просто не нужно (интересно)

мне кажется, но это только мое мнение, что зацикливаться на методе словарных замен нет смысла, даже при очень больших словарях современные компьютеры справляются практически с любыми заменами
нужно уделить больше внимания поиску омографов: автоматическому, ручному, комбинированному, хоть какому-то потому что то что сейчас есть это скорее "костыли" чем "инструменты" для их поиска в тексте, и если в балаболке они хоть как-то очерчены то в демагоге пользоваться ими сможет наверно только сам автор, потому что все крайне неудобно сделано с точки зрения пользователя (этот момент тоже к критике Smile).


Вернуться к началу Перейти вниз
Андрей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.
avatar


Сообщений : 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 пишет:
То есть, я хочу сказать, что если получится решить эту проблему, то добиться точности "классического" метода, может быть, и удастся, но проигрыш "быстрому" методу будет довольно значительным.

о потере скорости я говорил именно поэтому.

Но, все-таки это не проблема, а - обычная работа по программированию алгоритма.Wink

Вернуться к началу Перейти вниз
balabolka
V.I.P.
avatar


Сообщений : 1228
Репутация : 986

 balabolka :: Сб Янв 15 2011, 12:21
Сб Янв 15 2011, 12:21

Вот как будет выглядеть "комбинированный" способ в моем представлении.

  1. Текст делится на слова; программа просматривает список слов, составляя списки с номерами правил для каждого слова.
  2. Полученные списки номеров объединяются в один общий список; номера правил располагаются по порядку.
  3. Программа применяет правила из списка, одно за другим, пока хотя бы одно из них не сработает. Правила проверяются и применяются как в "классическом" методе. Найденное правило применяется к тексту столько раз, сколько необходимо.
  4. Программа запоминает номер сработавшего правила (например, N1). Список номеров правил очищается.
  5. Текст снова делится на слова; программа просматривает слово за словом, выбирая номера правил - но теперь рассматриваются только те правила, чей номер больше, чем N1.
  6. Правила из списка применяются к тексту, пока не сработает правило под номером 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 пишет:
Вот как будет выглядеть "комбинированный" способ в моем представлении.

Я знал, что не оставлю равнодушным - тех, кого это касаетсяWink

Что-ж теперь - можно думать, выбирать. И прочее....
Но метод - существует - факт....

Удачи вам. Спасибо за вниманиеWink

Вернуться к началу Перейти вниз
ptoton
Бывалый
avatar


Сообщений : 108
Репутация : 25

 ptoton :: Вс Май 20 2012, 12:56
Вс Май 20 2012, 12:56

В последнее время все чаще приходится при обработке текстового файла заменять "неразрывный дефис" на "минус". Можно ли добавить такую замену в Демагог (Правка -> Заменить символы)?

Вернуться к началу Перейти вниз
flegont
V.I.P.
avatar


Сообщений : 355
Репутация : 476

 flegont :: Вс Май 20 2012, 17:01
Вс Май 20 2012, 17:01

Я могу сделать автоматическую замену любого символа на любой, если буду знать их ANSI-коды.
Вот тут... давайте уточним. "Неразрывный дефис" - это символ Юникода с 16-ричным кодом 2011. В Ворде он вводится комбинацией клавиш Ctrl+Shift+дефис(знак минус) Внешне выглядит так же как знак минус (дефис), но не разрывает слово при переходе на следующую строку.

Демагог работает с текстами в ANSI-кодировке, в которой такого символа просто нет.

А при открытии вордовского файла идет преобразование в ANSI-кодировку и сосздание соответствующего текстового файла (Демагог делает это через скрытое обращение к установленному на компе ворду Smile) и "неразрывный дефис" сам собой превращается в обычный дефис. И никаких проблем.

Разве не так? Smile


Вернуться к началу Перейти вниз
ptoton
Бывалый
avatar


Сообщений : 108
Репутация : 25

 ptoton :: Вс Май 20 2012, 20:43
Вс Май 20 2012, 20:43

Что-то не так. После открытия в Демагог символ "неразрывный дефис" выглядит в Демагог как пробел. Но после записи и выхода из Демагог все равно он остается в этом файле. И уже через Word удаляю его.

Вернуться к началу Перейти вниз
flegont
V.I.P.
avatar


Сообщений : 355
Репутация : 476

 flegont :: Вс Май 20 2012, 22:40
Вс Май 20 2012, 22:40

А пример файла с таким капризным "неразрывным дефисом" можете куда-нибудь выложить? Или скинуть мне на мыло: arnys@mail.ru
Я посмотрю, что там за дела, думаю, проблема окажется разрешима Smile

Вернуться к началу Перейти вниз
flegont
V.I.P.
avatar


Сообщений : 355
Репутация : 476

 flegont :: Пн Май 21 2012, 07:17
Пн Май 21 2012, 07:17

P.S. Тестовый файлик получил.
Спасибо.

Ситуация проясняется. В ANSI - это символ с кодом 30 Smile
(Кто бы мог подумать!)

Блокнот его вообще игнорирует, показывает "35летнего",
Демагог изображает пробелом, но честно показывает его код = 30
Редактор FarManager'a тоже говорит, что это символ 30 и рисует на его месте треугольничек Smile

В следующей версии Демагога в меню "Правка - Заменить символы - Тире -> - (минус)"
в котором все (как я наивно полагал Sad ) виды тире заменяются на простой дефис (минус)
с кодом 45, будет добавлена и автоматическая замена символа 30 на символ 45.

Вернуться к началу Перейти вниз
ptoton
Бывалый
avatar


Сообщений : 108
Репутация : 25

 ptoton :: Пн Май 21 2012, 09:08
Пн Май 21 2012, 09:08

Спасибо.

Вернуться к началу Перейти вниз
evmir_troll-hunter
Admin
avatar


Сообщений : 616
Репутация : 208

 evmir_troll-hunter :: Чт Авг 23 2012, 12:45
Чт Авг 23 2012, 12:45

flegont пишет:
повторно проверяются те правила из словаря, которые не были применены ранее или применение которых уменьшает длину слова.
Спасибо за интересное улучшение!
Замечание по другому поводу; в словарь добавил "звёздные" правила:
Спойлер:
 
Ну и с другими прилагательными окончаниями, т.е. я хочу серьёзно «автоматизировать» процесс замен. Мне надоели дикие правила напр. «дочь самовО Монтесумы»! Много правил, много ошибок.
Я знаю, что звёздочки так сказать очень прямолинейны и будут ошибки, но они не принципиальные. Орфо важнее.
И уж конечно неточности намного лучше вот этого:
будем водится=будем водИтся
дотянутся до=они дотя+нутся до+
могут содержатся=могут содержа+тся
могут становиться=могут станови+ться
сводами замка=своБдами за+мка


"водится, дотянутся, содержатся, становиться" не являются омографами вообще, о чём тут говорить!@

Вернуться к началу Перейти вниз
flegont
V.I.P.
avatar


Сообщений : 355
Репутация : 476

 flegont :: Вс Авг 26 2012, 21:39
Вс Авг 26 2012, 21:39

Вот здесь некоторые мои эксперименты на сходную тему с Демагогом вер. 237
http://mytts.forum2x2.ru/t373p100-topic#6247

Вернуться к началу Перейти вниз
evilone_
Участник «online словари»
avatar


Сообщений : 859
Репутация : 317

 evilone_ :: Сб Фев 15 2014, 20:54
Сб Фев 15 2014, 20:54

хотим внести интересное предложение :spruce:
сделать в программе поддержку "составных" словарей для *.rex формата
поскольку словари данного формата работают последовательно применяя записанные в них правила, иногда приходится использовать очень сложные конструкции.
есть предложение добавить возможность "включать" в словарь другие словари по ссылке на них, например вот так:
Код:
#словарь №1
правило а1
правило а2
правило а3
правило а4
{ссылка на другой словарь}
правило а5
правило а6
правило а7
правило а8

#словарь №2
правило б1
правило б2
правило б3
правило б4
правило б5
при подключении в программе словаря №1 к тексту будут применены последовательно правила с а1-а4 потом б1-б5 и далее а5-а8.
это поможет упростить редактирование "навороченных" словарей и сделать поддержку пользовательских *.rex словарей "внутри" них что сделает менее "болезненным" процесс их обновления.

Вернуться к началу Перейти вниз
flegont
V.I.P.
avatar


Сообщений : 355
Репутация : 476

 flegont :: Сб Фев 15 2014, 21:42
Сб Фев 15 2014, 21:42

Интересная идея. Но мне сразу пришел в голову вот такой пример:

#словарь №1
правило а1
правило а2
правило а3
правило а4
{ссылка на словарь №2}
правило а5
правило а6
правило а7
правило а8

#словарь №2
правило б1
правило б2
правило б3
{ссылка на словарь №1} rulzz
правило б4
правило б5

Программа войдет в бесконечный цикл с лавинообразно нарастающим расходом оперативной памяти, что закончится ступором операционной системы.
Автоматически контролировать циклические ссылки - довольно трудно, а когда словарей больше 2, то и практически невозможно. Например: Словарь1 -> Словарь2 -> ... -> СловарьN -> Словарь1
Помните историю программирования? Табу на оператор GOTO? Ссылки в словарях как раз и явятся полным аналогом этого коварного и многократно прОклятого инструмента Smile

Так что це діло треба розжувати...


Вернуться к началу Перейти вниз
evilone_
Участник «online словари»
avatar


Сообщений : 859
Репутация : 317

 evilone_ :: Вс Фев 16 2014, 00:07
Вс Фев 16 2014, 00:07

Suspect ... а если запоминать последовательность и задать ограничение только на один вызов по ссылке - т.е. вызвать из словаря другой можно только один раз и пока первый полностью не "закроется" запретить вызов из других. тогда будет так:
для словаря 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.
avatar


Сообщений : 355
Репутация : 476

 flegont :: Вс Фев 16 2014, 12:02
Вс Фев 16 2014, 12:02

Ну да, держать и постоянно пополнять и проверять на дублирование имен массив имен уже включенных словарей... А процедура чтения каждого словаря - рекурсивная, т.е. вызывающая саму себя, как только встречает очередную ссылку на словарь.
Delphi поддерживает рекурсию, но это связано с дополнительным расходом оперативной памяти и др. проблемами.

И к чему все эти пляски с бубнами?
Только для того, чтобы сделать "обозримым" некий большой словарь?

Для этого, ИМХО, надо использовать специализированный текстовый редактор, который позволяет одним кликом мышки сворачивать некий раздел словаря в одну строку и, при необходимости, разворачивать вновь. При этом текст словаря остается единым большим файлом.

Будет ли подобный специализированный редактор словарей включен в Demagog - будущее покажет Smile

Вернуться к началу Перейти вниз
evilone_
Участник «online словари»
avatar


Сообщений : 859
Репутация : 317

 evilone_ :: Вс Фев 16 2014, 13:38
Вс Фев 16 2014, 13:38

flegont пишет:
И к чему все эти пляски с бубнами?
Только для того, чтобы сделать "обозримым" некий большой словарь?
ну... не только. забегая наперед, можно, к примеру, разрешить делать ссылки на *.dic словари внутри *.rex или даже не *.rex а как-то их обозначить иначе, чтобы не было путаницы.
сейчас так же есть такая проблема что применить *.rex словарь к тексту можно только перед *.dic за один проход - иначе нужно "плясать с бубном". вариантов много... в общем наше дело предложить :pooh2:

Вернуться к началу Перейти вниз
flegont
V.I.P.
avatar


Сообщений : 355
Репутация : 476

 flegont :: Вс Фев 16 2014, 14:41
Вс Фев 16 2014, 14:41

Ну, или "универсальный" словарь, состоящий из блоков, идущих в любом, заданном составителем, порядке:

{REX}
...
{DIC}
...
{REX}

В общем, есть над чем подумать... Surprised

Вернуться к началу Перейти вниз
Лёва
V.I.P.
avatar


Сообщений : 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.
avatar


Сообщений : 355
Репутация : 476

 flegont :: Пн Фев 17 2014, 09:53
Пн Фев 17 2014, 09:53

Программа устроена так, что она, перед чтением очередного фрагмента текста, смотрит: имеются ли подключенные словари?
Если ДА, то она применяет к тексту ВСЕ подкюченные рексы, если они есть, затем ВСЕ подключенные дики, ежели таковые есть. Словари одного типа применяются в алфавитном порядке их имен.
Таким образом, словари rex ВСЕГДА будут применяться ПЕРЕД словарями dic, какие бы пляски с бубном не исполнял пользователь Wink

Вернуться к началу Перейти вниз
Лёва
V.I.P.
avatar


Сообщений : 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.
avatar


Сообщений : 355
Репутация : 476

 flegont :: Пн Фев 17 2014, 11:16
Пн Фев 17 2014, 11:16

Это изменит принятую в Говорилке, Балаболке и Демагоге идеологию работы со словарями.
Сейчас пользователю показывается список ВСЕХ, доступных ему словарей, а он отмечает галочками те, которые должны применяться к тексту. Порядок применения словарей определяет уже сама программа, как я рассказывал выше.
А теперь пользователь должен будет из общего списка формировать СВОЙ подсписок, располагая в нем словари в требуемом порядке. Перетаскиванием ли мышью или нажимая кнопки "стрелка вверх"/"стрелка вниз" и перемещая тем самым выделенный словарь в списке.
Это - серьезное изменение интерфейса, да и в алгоритме тоже...
Такие дела.

Вернуться к началу Перейти вниз
balabolka
V.I.P.
avatar


Сообщений : 1228
Репутация : 986

 balabolka :: Пн Фев 17 2014, 14:59
Пн Фев 17 2014, 14:59

Честно говоря, очень не хочется что-то менять в работе со словарями. Добавление возможности изменения порядка применения словарей создаст две проблемы:

  1. Правила будут применяться не в том порядке, как это было задумано создателями некоторых словарей. Сейчас все правила из словарей REX объединяются в один список, все правила из словарей DIC - в другой список. Правила из словарей REX идут по порядку, как они располагались в исходных файлах. Правила из словарей DIC сортируются по размеру шаблона, более "длинные" правила располагаются в начале списка (этот метод сортировки впервые был применен в "Говорилке"; в остальных программах он используется для совместимости). Если никакой сортировки правил из словарей DIC не будет (или будет сортироваться каждый список из каждого файла по отдельности - это также предмет для дискуссии), то порядок применения правил кардинально поменяется. Это даст совершенно непредсказуемый результат: многие правила из словарей DIC перестанут работать или будут работать неправильно. Для словарей REX эта проблема будет не так остра, хотя и тут возможны сюрпризы.
  2. Усложнится интерфейс программы. Вы не представляете, как бывает сложно разобраться пользователям даже в нынешней системе коррекции произношения. Могу вспомнить, как несколько дней переписывался с незрячим пользователем из Арканзаса, пытаясь разъяснить ему синтаксис правил, формат словарей, порядок их применения (понятно, что тут есть и доля моей вины, так как всегда надо описывать возможности программы в документации простым и доступным языком). Кто будет пользоваться новым порядком применения правил из словарей? Несколько опытных специалистов по регулярным выражениям с этого форума, и всё? Больше форматов служебных файлов для коррекции произношения - это не то, чего бы мне хотелось, это совершенно точно не добавит ясности для пользователей программ.


Сам я тоже не восторге от нынешней системы словарей для коррекции произношения. Не я ее придумал; формат словарей DIC были взят "Говорилки", формат словарей INI/REX попросили добавить немцы, так как он был в какой-то голландской (!) программе для чтения вслух, которая сейчас даже не существует (но словари для использования в ней немецких голосов остались). Первоочередной задачей было обеспечить совместимость в использовании словарей в разных программах; поэтому всё работает так, как работает, пусть даже совсем не идеально.

Мне лично больше по душе словарь из TextAloud: один общий словарь, где для каждого правила задаются настройки (правило является регулярным выражением, шаблоном с подстановочными символами или простой заменой; правило применяется для всех языков или для одного из них; правило применяется для всех голосов, для голосов одной фирмы или для одного голоса, и т. д.). Но и этот подход не идеален, особенно если у нас по несколько тысяч правил для каждого русского голоса; придется создавать сложный редактор словаря, с множеством фильтров.

В общем, пока не готов добавлять возможность попеременного применения словарей REX и DIC. Но также не имею никаких принципиальных возражений против такой функции - если кому-то это необходимо, такой способ вполне можно где-либо реализовать (но не моей программе "Балаболка", не сейчас). Рекомендую, например, подумать о создании файла BAT, в котором несколько раз вызывается консольная утилита для извлечения текста с сайта "Балаболки" для применения словарей в заданном порядке; дешево и сердито.

Вернуться к началу Перейти вниз
flegont
V.I.P.
avatar


Сообщений : 355
Репутация : 476

 flegont :: Пн Фев 17 2014, 16:24
Пн Фев 17 2014, 16:24

Я полностью согласен с balabolka и также не намерен менять ничего в интерфейсе и алгоритме Демагога. Нельзя ломать то, что проверено временем и к чему привыкли пользователи.

И, вообще, без КРАЙНЕЙ необходимости (обнаружение серьезной ошибки и т.п.) радикальные изменения в программу вноситься не будут.

Единственное, что могу обещать... так это подумать над советами для продвинутых пользователей: как более полно применять уже заложенные в программу опции Wink

Вернуться к началу Перейти вниз
Лёва
V.I.P.
avatar


Сообщений : 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.
avatar


Сообщений : 355
Репутация : 476

 flegont :: Пн Фев 17 2014, 17:56
Пн Фев 17 2014, 17:56

Я намерен "проинвентаризировать" имеющиеся в программе недокументированные возможности. Есть определенная вероятность (которую я намерен оценить), что описанный выше нестандартный порядок обработки текста словарями, может быть реализован без внесения в программу каких либо изменений.
Wink

Вернуться к началу Перейти вниз
Лёва
V.I.P.
avatar


Сообщений : 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.
avatar


Сообщений : 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.
avatar


Сообщений : 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
avatar


Сообщений : 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.
avatar


Сообщений : 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.
avatar


Сообщений : 355
Репутация : 476

 flegont :: Вс Май 15 2016, 14:09
Вс Май 15 2016, 14:09

Ага, какое-то отличие есть. Я посмотрю исходник, подумаю, что можно сделать.

Вернуться к началу Перейти вниз
flegont
V.I.P.
avatar


Сообщений : 355
Репутация : 476

 flegont :: Ср Май 18 2016, 10:37
Ср Май 18 2016, 10:37

Проверил под XP на своем нетбуке.

Созданные при открытии электронных книг txt-файлы без проблем помещаются в папку назначения C:\Program Files\Demagog\work и любую другую, указанную где угодно на компьютере.

Т.о. вопрос о причине сбоя, описанном Dimsok, пока остается открытым. В программе ли дело или в особенностях конкретного экземпляра Win XP?
Статистика моего сайта говорит, что ~ 8% пользователей имеют на своих компьютерах ОС Win XP - достаточно ощутимая доля.
Поэтому вопрос оставляю на контроле.

P.S. Однако, нельзя сказать, что полдня вчера прошло впустую Smile По ходу дела обнаружил и исправил другие две неполадки и выложил вер. 312 на сайт.

Вернуться к началу Перейти вниз
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.
avatar


Сообщений : 355
Репутация : 476

 flegont :: Ср Май 18 2016, 11:21
Ср Май 18 2016, 11:21

Сохранение извлеченного текста сделано для того, чтобы при повторном открытии того же самого документа не выполнять заново работу по преобразованию эл.книги в текст.
И сразу предоставить пользователю готовый текстовый файл для дальнейшей обработки (если нужно).

Согласен, что это нужно не всегда.
Можно бы предусмотреть в настройках и такой вариант: "Автоматически сохранять извлеченный текст" - по умолчанию выключено.
Я давно подумываю над этим Smile

Что касается иконки, то вопрос открыт для обсуждения. У кого что есть предложить - пожалуйста. Иконка 48x48 должна быть запоминающейся, вызывать положительные эмоции и как-то ассоциироваться с устной речью rulzz

Вернуться к началу Перейти вниз
evmir_troll-hunter
Admin
avatar


Сообщений : 616
Репутация : 208

 evmir_troll-hunter :: Чт Май 19 2016, 02:56
Чт Май 19 2016, 02:56

Иконка программы - бренд\тов. знак, идея, что хотел донести автор. Его просто так не меняют.
Для меня слово "демагог" ассоциируется с политиками, оплевывающими микрофон (казённое имущество!) при оболванивании люда.
Реализовать такое в picto 48x48 наверняка будет сложновато.Surprised

Пиктограмма — это когда нарисован стакан и имеется в виду стакан.
Идеограмма — это когда нарисован стакан и имеется в виду стакан, бухло, попойка, стекольная промышленность, процент пьяных водителей и пр. в любой грамматической форме.

Вернуться к началу Перейти вниз
flegont
V.I.P.
avatar


Сообщений : 355
Репутация : 476

 flegont :: Чт Май 19 2016, 07:20
Чт Май 19 2016, 07:20

Когда (уже давно) я придумывал название для программы, то поначалу был в некотором замешательстве. Все названия, ассоциированные с устной речью, уже были ранее кем-то использованы. Говорилка, говорун, бормоталка, балаболка, спикер, оратор... Оопс! "Демагог" - изначальное значение в греческом языке, времен античной демократии - "говорящий с народом".

Поскольку в наше время слово приобрело иронический оттенок, то и иконка программы должна сей факт как-то отражать. Азартно-болтливая рожица. Если кто-то сможет нарисовать ее лучше и узнаваемей/запоминаемей, чем это уже сделано - милости просим. Все варианты будут мною рассмотрены. Но это - не такое простое дело - рисование на холсте в 48х48 пикселей, как справедливо заметил evmir_troll-hunter.
Поэтому, думаю, вряд ли в ближайшем будущем вид иконки Демагога поменяется :oldtimer:

Вернуться к началу Перейти вниз
Dimsok
Участник


Сообщений : 55
Репутация : 1

 Dimsok :: Чт Май 19 2016, 11:50
Чт Май 19 2016, 11:50

Цитата :
Иконка программы - бренд\тов. знак, идея, что хотел донести автор. Его просто так не меняют.
Для меня слово "демагог" ассоциируется с политиками, оплевывающими микрофон (казённое имущество!) при оболванивании люда.
Реализовать такое в picto 48x48 наверняка будет сложновато
Фото Жириновского в иконку загнать?

Вернуться к началу Перейти вниз
Спонсируемый контент




 Спонсируемый контент ::


Вернуться к началу Перейти вниз

Критика и предложения

Предыдущая тема Следующая тема Вернуться к началу
Критика и предложения
Страница 3 из 4Страница 3 из 4На страницу : Предыдущий  1, 2, 3, 4  Следующий
Этот сайт не предоставляет электронные версии программного обеспечения и полнотекстовых электронных изданий, а занимается лишь
подборкой и каталогизацией ссылок, присылаемых и публикуемых на форуме нашими читателями.

Создать форум | ©phpBB | Бесплатный форум поддержки | Сообщить о нарушении
Создать форум | © phpBB | Бесплатный форум поддержки | Сообщить о нарушении | Создать он-лайн дневник