<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<link rel="self" type="application/atom+xml" href="https://mytts.info/app.php/feed/topic/127" />

	<title>MyTTS</title>
	<subtitle>Форум о преобразовании текста в речь</subtitle>
	<link href="https://mytts.info/index.php" />
	<updated>2020-11-23T01:40:51+03:00</updated>

	<author><name><![CDATA[MyTTS]]></name></author>
	<id>https://mytts.info/app.php/feed/topic/127</id>

		<entry>
		<author><name><![CDATA[tonio_k]]></name></author>
		<updated>2020-11-23T01:40:51+03:00</updated>

		<published>2020-11-23T01:40:51+03:00</published>
		<id>https://mytts.info/viewtopic.php?t=127&amp;p=4967#p4967</id>
		<link href="https://mytts.info/viewtopic.php?t=127&amp;p=4967#p4967"/>
		<title type="html"><![CDATA[Словарь DIC алгоритм работы со звездочкой (*)]]></title>

		
		<content type="html" xml:base="https://mytts.info/viewtopic.php?t=127&amp;p=4967#p4967"><![CDATA[
<blockquote class="uncited"><div>что бы звездочка в словаре DIC всегда трактовалась ТОЛЬКО как "любое слово/часть слова без прилегающих к нему знаков препинания".</div></blockquote> Реализовал эту задачу через функцию для скрипта lua. При этом, правила со звёздочками в dic словарях можно записывать по старинке в стандартном для словарей dic синтаксисе:<div class="codebox"><p>CODE: </p><pre><code>*благодар* лорда * за все, что он для=благодар лорда за всё, что он для</code></pre></div> <br>Функция сама вставит в изменяемый текст метки границ слова, преобразует правила в словаре так, что бы они срабатывали с учетом меток границ слова, применит словарь замен, удалит из текста ранее вставленные метки.<div class="codebox"><p>CODE: </p><pre><code>function STARSWFilter(j1, j2, path_dic) local dic_star=LoadText(path_dic) -- загружаем текст из словаря--Добавляем к правилам поддержку границы слова:dic_star = string.gsub(dic_star,'[\r\n]+','\r')dic_star = string.split(dic_star,'\r')--в таблицуfor i=1,#dic_star dodic_star[i]=DicToLua(dic_star[i])enddic_star = table.concat(dic_star, '\r')--в текстdic_star = string.gsub(dic_star,'%%%d+','#')local r=[[*%f[%w]*::*(%w-)*::**(%w+)*::**%.*::.*%?*::?*%-*::-*%%*::%]]local o = {}o.Reading_HashAlgorithm = falseSettings(o)dic_star=DicRepl(dic_star,{r})--Вставляем в правила метки границы слова: -- символы для REX: "]"=\x5D; ")"=\x29r=[[#Вставка меток границ слова в текст ([а-яё])\b=$1_#резервируем три точки_\.\.\.=_…#отделяем знаки препинания от правой границы слова (нижнее подчеркивание "_" включен в поиск, что бы замена срабатывала ТОЛЬКО в связке с правой границей слова)_([.,!:;\x29\x5D?»"])=_ $1/#возвращаем три точки_…=_ ./ ./ ./]]dic_star=RexRepl(dic_star,{r},false)--полоса прогресса отключенаdic_star=string.gsub(dic_star,'_%*','*')dic_star=string.gsub(dic_star,' %* ',' *_ ')dic_star=string.gsub(dic_star,' %* ',' *_ ')dic_star=string.gsub(dic_star,' # ',' _ ')dic_star=string.gsub(dic_star,' # ',' _ ')dic_star=string.gsub(dic_star,' # ',' _ ')dic_star=string.gsub(dic_star,'_#','')dic_star=string.gsub(dic_star,'#','')dic_star=RexRepl(dic_star,{[[^@=$$[\r\n]+=\r]]})SaveToFile({dic_star},HomeFolder('')..'#звезд+@.dic')--для отладки сохранитьs=WText(j1)--Вставляем в сам текст метки границы слова: -- символы для REX: "]"=\x5D; ")"=\x29r=[[#Вставка меток границ слова в текст ([а-яё])\b=$1_#резервируем три точки_\.\.\.=_…#отделяем знаки препинания от правой границы слова (нижнее подчеркивание "_" включен в поиск, что бы замена срабатывала ТОЛЬКО в связке с правой границей слова)_([.,!:;\x29\x5D?»"])=_ $1/#возвращаем три точки_…=_ ./ ./ ./]]s=RexRepl(s,{r},false)--применяем правила с границами слова:local o = {}o.Reading_HashAlgorithm = falseo.Reading_OrderedRules = falseSettings(o)s = DicRepl(s,{dic_star})--убираем метки границ  словr=[[#Удаление меток границ слова_=[ ]+([.,!:;\x29\x5D?»"])/=$1]]s=RexRepl(s,{r},false)s=GoodText(s)WNew(j2,s,false)  return send</code></pre></div>Пример применения:<div class="codebox"><p>CODE: </p><pre><code>--к содержимому окна 1 применить словарь "40.1_звезды аналог (w+@).dic", результат замен поместить в окно 0STARSWFilter(1, 0, HomeFolder('dic')..'40.1_звезды аналог (w+@).dic')WActive(0)</code></pre></div><blockquote class="uncited"><div>UPD Вот такой вариант правила:<br><br>*благодар* лорда_ *_ за_ все_ */=благодар лорда _ за всё /<br>Требует обязательное наличие знака препинания [.,?!], без которого правило не сработает</div></blockquote>тоже будет работать. Правило нужно записать в таком виде:<div class="codebox"><p>CODE: </p><pre><code>*благодар* лорда * за все */=благодар лорда  за всё /</code></pre></div><p>Статистика: Добавлено  <a href="https://mytts.info/memberlist.php?mode=viewprofile&amp;u=51">tonio_k</a> — 23 ноя 2020 01:40</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[tonio_k]]></name></author>
		<updated>2020-02-13T14:37:03+03:00</updated>

		<published>2020-02-13T14:37:03+03:00</published>
		<id>https://mytts.info/viewtopic.php?t=127&amp;p=3119#p3119</id>
		<link href="https://mytts.info/viewtopic.php?t=127&amp;p=3119#p3119"/>
		<title type="html"><![CDATA[Словарь DIC алгоритм работы со звездочкой (*)]]></title>

		
		<content type="html" xml:base="https://mytts.info/viewtopic.php?t=127&amp;p=3119#p3119"><![CDATA[
<strong class="text-strong">UPD</strong> Вот такой вариант правила:<div class="codebox"><p>CODE: </p><pre><code>*благодар* лорда_ *_ за_ все_ */=благодар лорда _ за всё /</code></pre></div>Требует <span style="text-decoration:underline">обязательное</span> наличие знака препинания [.,?!], без которого правило не сработает<p>Статистика: Добавлено  <a href="https://mytts.info/memberlist.php?mode=viewprofile&amp;u=51">tonio_k</a> — 13 фев 2020 14:37</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[tonio_k]]></name></author>
		<updated>2020-02-13T12:19:27+03:00</updated>

		<published>2020-02-13T12:19:27+03:00</published>
		<id>https://mytts.info/viewtopic.php?t=127&amp;p=3116#p3116</id>
		<link href="https://mytts.info/viewtopic.php?t=127&amp;p=3116#p3116"/>
		<title type="html"><![CDATA[Словарь DIC алгоритм работы со звездочкой (*)]]></title>

		
		<content type="html" xml:base="https://mytts.info/viewtopic.php?t=127&amp;p=3116#p3116"><![CDATA[
после некоторого времени эксплуатации вышеописанного механизма применения правил со звездочками в словарях DIC пока остановился на такой схеме:<br><br>1) Необходимые настройки Демагог:<br>Сервис-Общие настройки-Чтение. Галочки в указанных пунктах должны быть убраны<div class="spoilwrapper" style="margin:1em 0;font-weight:normal;padding:4px 10px;background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;color:#333"><div class="spoiltitle" style="margin:0;padding:0;width:100%"><span class="spoilbtn" style="margin:2px 5px;text-transform:uppercase;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:11px;font-weight:bold;display:block;cursor:pointer;color:#333" data-show="► Показать" data-hide="▼ Скрыть">► Показать</span></div><div class="spoilcontent" style="color:#333;display:none;padding:5px;border-top:1px solid #ccc"><div class="inline-attachment"><dl class="file"><dt class="attach-image"><img src="https://mytts.info/download/file.php?id=919" class="postimage" alt="2020-02-13_11-30-56.png" onclick="viewableArea(this);" /></dt></dl></div></div></div>Если словарь запускается через скрипт, то перед WFilter применить:<br>FastDic(false, false) -- прямой перебор без сортировки правил.<br><br>2)Требования к словарю: словарь DIC разбит на 3 части:<br>#1) Вставка ограничителя слова - не редактируется<br>#2) Словари замен. Ограничитель слова _ (нижнее подчеркивание) на конце каждого слова<br>#3) Удаление ограничителя слова - не редактируется<br>Пример готового словаря, состоящего всего из 1 правила:<div class="spoilwrapper" style="margin:1em 0;font-weight:normal;padding:4px 10px;background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;color:#333"><div class="spoiltitle" style="margin:0;padding:0;width:100%"><span class="spoilbtn" style="margin:2px 5px;text-transform:uppercase;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:11px;font-weight:bold;display:block;cursor:pointer;color:#333" data-show="► Показать" data-hide="▼ Скрыть">► Показать</span></div><div class="spoilcontent" style="color:#333;display:none;padding:5px;border-top:1px solid #ccc"><div class="codebox"><p>CODE: </p><pre><code>#ВАЖНО! НЕ СОРТИРОВАТЬ!!!!!!!#Словарь разбит на 3 части: #1) Вставка ограничителя слова - не редактируется#2) Словари замен. Ограничитель слова _ (нижнее подчеркивание) на конце каждого слова#3) Удаление ограничителя слова - не редактируется######################################===============================================================#1) Вставка ограничителя слова $*а=а_$*б=б_$*в=в_$*г=г_$*д=д_$*е=е_$*ё=ё_$*ж=ж_$*з=з_$*и=и_$*й=й_$*к=к_$*л=л_$*м=м_$*н=н_$*о=о_$*п=п_$*р=р_$*с=с_$*т=т_$*у=у_$*ф=ф_$*х=х_$*ц=ц_$*ч=ч_$*ш=ш_$*щ=щ_$*ъ=ъ_$*ы=ы_$*ь=ь_$*э=э_$*ю=ю_$*я=я_$*А=А_$*Б=Б_$*В=В_$*Г=Г_$*Д=Д_$*Е=Е_$*Ё=Ё_$*Ж=Ж_$*З=З_$*И=И_$*Й=Й_$*К=К_$*Л=Л_$*М=М_$*Н=Н_$*О=О_$*П=П_$*Р=Р_$*С=С_$*Т=Т_$*У=У_$*Ф=Ф_$*Х=Х_$*Ц=Ц_$*Ч=Ч_$*Ш=Ш_$*Щ=Щ_$*Ъ=Ъ_$*Ы=Ы_$*Ь=Ь_$*Э=Э_$*Ю=Ю_$*Я=Я_*...=…*_…=_ …/*_.=_ ./*_,=_ ,/*_:=_ :/*_?=_ ?/*_!=_ !/*_)=_ )/*_]=_ ]/*_»=_ »/*_"=_ "/###################################################################2) ПРАВИЛА:*благодар* лорда_ *_ за_ все_ ,/ что_ он_ для_=благодар лорда _ за_ всё_ ,/ что_ он_ для_###################################################################3) Удаление ограничителя слова* …/*=...* ./*=.* ,/*=,* :/*=:* ;/*=;* ?/*=?* !/*=!* )/*=)* ]/*=]* »/*=»*_*=* ,*=, * .*=. * ;*=; * ?*=? * !*=! *   *= *  *= * »*=» *…*=...</code></pre></div></div></div>*все 3 части (без сортировки) можно добавить к любому уже существующему словарю, при условии, что к нему применяются условия из п1<br><br>3) Требования к созданию правил (вторая часть словаря)<br><br>--- в левой части правила:<br>- все слова закачиваются на "_" (нижнее подчеркивание) <em class="text-italics">Пример:</em> <span style="background-color:yellow">слово_</span>;<br>- отдельная звёздочка, означающая любое целое слово, должна закачиваются на "_" (нижнее подчеркивание) <em class="text-italics">Пример:</em> <span style="background-color:yellow">*_</span>;<br>- звёздочка <strong class="text-strong"><span style="text-decoration:underline">на конце слова</span></strong> НЕ должна заканчиваться "_" (нижним подчеркиванием)<em class="text-italics">Пример:</em> <span style="background-color:yellow">слово*</span>;<br>- любой знак препинания должен отделяется от слова пробелом и заканчивться на / (слэш)<br><br>---в правой части правила: <br>- "_" (нижнее подчеркивание) на конце слов НЕ обязательно - можно пропустить;<br>- знак препинания можно "склеить" с идущим перед ним словом<br><br>Примеры вариантов записи одного и того же правила:<div class="codebox"><p>CODE: </p><pre><code>*благодар* лорда_ *_ за_ все_ ,/ что_ он_ для_=благодар лорда _ за_ всё_ ,/ что_ он_ для_*благодар* лорда_ *_ за_ все_ ,/ что_ он_ для_=благодар лорда _ за всё, что он для</code></pre></div>Пример текста для тестирования:<br><strong class="text-strong">Возблагодарим лорда Бекингема за все, что он для нас сделал!</strong><br><br>Вместо "_" (нижнее подчеркивание) и / (слэш) вы можете использовать свой любой <em class="text-italics">не</em> буквенно/цифровой символ, сделав соответствующие замены в словаре.<br><br>*Напоминаю, эта схема имеет смысл только для правил со звездочками:<br>-в которых звёздочка находится на конце слова и после этого слова идет следующее слово;<br>или<br>-звёздочка означает отдельно идущее целое слово.<br><br>Идея вышеописанной схемы - что бы звездочка в словаре DIC всегда трактовалась ТОЛЬКО как "любое слово/часть слова без прилегающих к нему знаков препинания".<p>Статистика: Добавлено  <a href="https://mytts.info/memberlist.php?mode=viewprofile&amp;u=51">tonio_k</a> — 13 фев 2020 12:19</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[flegont]]></name></author>
		<updated>2019-03-22T12:01:19+03:00</updated>

		<published>2019-03-22T12:01:19+03:00</published>
		<id>https://mytts.info/viewtopic.php?t=127&amp;p=1889#p1889</id>
		<link href="https://mytts.info/viewtopic.php?t=127&amp;p=1889#p1889"/>
		<title type="html"><![CDATA[Словарь DIC алгоритм работы со звездочкой (*)]]></title>

		
		<content type="html" xml:base="https://mytts.info/viewtopic.php?t=127&amp;p=1889#p1889"><![CDATA[
<strong class="text-strong">Неоднозначность dic-правил с отдельно стоящими звездочками</strong><br>Если в шаблоне поиска есть <em class="text-italics">отдельно стоящие звездочки</em>, то программа предполагает, что каждому слову шаблона соответствует слово замены из правой части правила.<br><br><strong class="text-strong"><span style="color:#0040BF">все</span> * <span style="color:#008040">*ло</span>=<span style="color:#0040BF">всё</span> <span style="color:#008040">ло</span></strong><br><br>Если однозначное соответствие левой и правой частей отсутствует, то результат применения "звездного правила" будет далек от ожидаемого.<br><br><strong class="text-strong"><span style="color:#0040BF">не </span><span style="color:#008040">о</span> <span style="color:#FF0080">чем</span> * * * *вать=<span style="color:#0040BF">нЕочем</span> вать</strong><br><br><strong class="text-strong">Не о чем нам с вами разговаривать!</strong> ==&gt; <strong class="text-strong">нЕочем вать нам с вами разговари!</strong>  <img class="smilies" src="./images/smilies/evil.gif" width="39" height="25" alt=":evil:" title="эмоция"> <br><br>Решение:<br><strong class="text-strong">не о чем * * * *вать=нЕочем ~ ~ вать<br>~=</strong><br><br><strong class="text-strong">Не о чем нам с вами разговаривать!</strong> ==&gt; <strong class="text-strong">нЕочем нам с вами разговаривать!</strong> <img class="smilies" src="./images/smilies/bf.gif" width="40" height="26" alt=":ok:" title="эмоция"><p>Статистика: Добавлено  <a href="https://mytts.info/memberlist.php?mode=viewprofile&amp;u=53">flegont</a> — 22 мар 2019 12:01</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[tonio_k]]></name></author>
		<updated>2019-03-20T16:18:43+03:00</updated>

		<published>2019-03-20T16:18:43+03:00</published>
		<id>https://mytts.info/viewtopic.php?t=127&amp;p=1883#p1883</id>
		<link href="https://mytts.info/viewtopic.php?t=127&amp;p=1883#p1883"/>
		<title type="html"><![CDATA[Словарь DIC алгоритм работы со звездочкой (*)]]></title>

		
		<content type="html" xml:base="https://mytts.info/viewtopic.php?t=127&amp;p=1883#p1883"><![CDATA[
<blockquote class="uncited"><div>Т.е. полный аналог (\w+) в регулярных выражениях rex</div></blockquote>к сожалению, как оказалось, не полный. <br><br>Выше обозначенный алгоритм имеет один недостаток:<br>правила, имеющие, например, вид:<br><strong class="text-strong">выгнул<span style="color:#FF0000">*</span> брови_=выгнул брОви</strong> - все равно может сработать и на тексте:<br><strong class="text-strong">выгнул<span style="color:#FF0000">?</span> Брови</strong> <br>т.е. <span style="text-decoration:underline">НЕ</span> в пределах одного предложения.<br>А в таком виде:<br><strong class="text-strong">выгнул<span style="color:#FF0000">*_</span> брови_=выгнул_ брОви_</strong> правило вообще не работает.<br><br>Добавил маленькие изменения в алгоритм:<blockquote class="uncited"><div>1) первый словарь - REX </div></blockquote><div class="spoilwrapper" style="margin:1em 0;font-weight:normal;padding:4px 10px;background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;color:#333"><div class="spoiltitle" style="margin:0;padding:0;width:100%"><span class="spoilbtn" style="margin:2px 5px;text-transform:uppercase;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:11px;font-weight:bold;display:block;cursor:pointer;color:#333" data-show="► Показать" data-hide="▼ Скрыть">► Показать</span></div><div class="spoilcontent" style="color:#333;display:none;padding:5px;border-top:1px solid #ccc"><div class="codebox"><p>CODE: </p><pre><code>([а-яё])\b=$1_([а-яё]_\.)=$1 z.k([а-яё]_\,)=$1 z,k([а-яё]_\:)=$1 z:k([а-яё]_\;)=$1 z:k([а-яё]_\?)=$1 z?k([а-яё]_\!)=$1 z!k</code></pre></div></div></div><blockquote class="uncited"><div>3) словарь чистки - запускать ОБЯЗАТЕЛЬНО - в режиме прямого перебора.</div></blockquote><div class="spoilwrapper" style="margin:1em 0;font-weight:normal;padding:4px 10px;background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;color:#333"><div class="spoiltitle" style="margin:0;padding:0;width:100%"><span class="spoilbtn" style="margin:2px 5px;text-transform:uppercase;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:11px;font-weight:bold;display:block;cursor:pointer;color:#333" data-show="► Показать" data-hide="▼ Скрыть">► Показать</span></div><div class="spoilcontent" style="color:#333;display:none;padding:5px;border-top:1px solid #ccc"><div class="codebox"><p>CODE: </p><pre><code>*. z.k=.*, z,k=,*: z:k=:*; z;k=;*? z?k=?*! z!k=!*_*=* ,*=, * .*=. * ;*=; * ?*=? * !*=! *   *= *  *= * »*=» </code></pre></div></div></div>Теперь любое правило:<br><strong class="text-strong">ещё_ *_ минут<span style="color:#FF0000">*</span> и_ дома_ закончились_=ещё _ минут и домА закончились<br>выгнул<span style="color:#FF0000">*</span> брови_=выгнул брОви</strong><br>и даже:<br><strong class="text-strong"><span style="color:#FF0000">*</span>нул<span style="color:#FF0000">*</span> брови_=нул брОви</strong><br>сработают на соответствующем им тексте, при условии что нет знаков препинания <strong class="text-strong">.,:;!?</strong><br><br>Вот теперь полный аналог (\w+)  <img class="smilies" src="./images/smilies/bf.gif" width="40" height="26" alt=":ok:" title="эмоция"><hr><br><br><span style="font-size:85%;line-height:116%"><span style="color:green">Отправлено спустя    4 часа 38 минут 38 секунд:</span></span><br>Небольшое дополнение.<br><br>правило<strong class="text-strong"> ([а-яё]_\.)=$1 z.k</strong> может некорректно заменить троеточие "..."<br><br>поэтому в 1) словаре надо перед этим правилом добавить:<div class="codebox"><p>CODE: </p><pre><code>\.\.\.=…([а-яё]_\…)=$1 z…k</code></pre></div>а в 3) словаре аналогично добавить строку:<div class="codebox"><p>CODE: </p><pre><code>*… z…k=...</code></pre></div>Еще момент. Если очень нужно, то 1) словарь (rex) можно заменить словарем DIC  - применять ОБЯЗАТЕЛЬНО - в режиме прямого перебора.<div class="spoilwrapper" style="margin:1em 0;font-weight:normal;padding:4px 10px;background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;color:#333"><div class="spoiltitle" style="margin:0;padding:0;width:100%"><span class="spoilbtn" style="margin:2px 5px;text-transform:uppercase;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:11px;font-weight:bold;display:block;cursor:pointer;color:#333" data-show="► Показать" data-hide="▼ Скрыть">► Показать</span></div><div class="spoilcontent" style="color:#333;display:none;padding:5px;border-top:1px solid #ccc"><div class="codebox"><p>CODE: </p><pre><code>*а=а_*б=б_*в=в_*г=г_*д=д_*е=е_*ё=ё_*ж=ж_*з=з_*и=и_*й=й_*к=к_*л=л_*м=м_*н=н_*о=о_*п=п_*р=р_*с=с_*т=т_*у=у_*ф=ф_*х=х_*ц=ц_*ч=ч_*ш=ш_*щ=щ_*ъ=ъ_*ы=ы_*ь=ь_*э=э_*ю=ю_*я=я_*...=…*_…=_… z…k*_.=_. z.k*_,=_, z,k*_:=_: z:k*_?=_? z?k*_!=_! z!k</code></pre></div></div></div><p>Статистика: Добавлено  <a href="https://mytts.info/memberlist.php?mode=viewprofile&amp;u=51">tonio_k</a> — 20 мар 2019 16:18</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[flegont]]></name></author>
		<updated>2018-11-29T20:58:24+03:00</updated>

		<published>2018-11-29T20:58:24+03:00</published>
		<id>https://mytts.info/viewtopic.php?t=127&amp;p=1108#p1108</id>
		<link href="https://mytts.info/viewtopic.php?t=127&amp;p=1108#p1108"/>
		<title type="html"><![CDATA[Словарь DIC алгоритм работы со звездочкой (*)]]></title>

		
		<content type="html" xml:base="https://mytts.info/viewtopic.php?t=127&amp;p=1108#p1108"><![CDATA[
Да, действительно, полный аналог \w+ Без любых препинаний, только буквенно-цифровые символы. Отличный результат.<p>Статистика: Добавлено  <a href="https://mytts.info/memberlist.php?mode=viewprofile&amp;u=53">flegont</a> — 29 ноя 2018 20:58</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[tonio_k]]></name></author>
		<updated>2018-11-29T20:23:40+03:00</updated>

		<published>2018-11-29T20:23:40+03:00</published>
		<id>https://mytts.info/viewtopic.php?t=127&amp;p=1107#p1107</id>
		<link href="https://mytts.info/viewtopic.php?t=127&amp;p=1107#p1107"/>
		<title type="html"><![CDATA[Словарь DIC алгоритм работы со звездочкой (*)]]></title>

		
		<content type="html" xml:base="https://mytts.info/viewtopic.php?t=127&amp;p=1107#p1107"><![CDATA[
Скажу сразу, Этот словарь должен работать в режиме быстрого алгоритма. Так как в результате исправлений, текст становится уникальным и повторно к одному и тому же участку текста правила, которые находятся ниже не сработают. Если режим прямого перебора включен в настройках по умолчанию. То рекомендуется Этот словарь отсортировать по стандарту для словарей DIC. Хотя можно заморочиться и правую часть правила сразу записывать  с концовкой На каждом слове. Тогда последовательный перебор будет применим.<br><br>Думаю это словарь будет работать по времени так же как обычный словарь dic со звёздочками. Зависит от алгоритма.<hr><br><br><span style="font-size:85%;line-height:116%"><span style="color:green">Отправлено спустя     6 минут 18 секунд:</span></span><br>Главное приемущество это быстрота и удобство в работе со словарем. Не требует особых знаний, как в rex словарях. Скопировал, вставил, добавил концовку добавил *_ и правило готово.<hr><br><br><span style="font-size:85%;line-height:116%"><span style="color:green">Отправлено спустя     15 минут 10 секунд:</span></span><br>Самое то главное не отметил!<br>( *_ ) - это значит что слово будет найдено без запятых! Т.е. полный аналог (\w+) в регулярных выражениях rex<p>Статистика: Добавлено  <a href="https://mytts.info/memberlist.php?mode=viewprofile&amp;u=51">tonio_k</a> — 29 ноя 2018 20:23</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[flegont]]></name></author>
		<updated>2018-11-29T19:49:51+03:00</updated>

		<published>2018-11-29T19:49:51+03:00</published>
		<id>https://mytts.info/viewtopic.php?t=127&amp;p=1106#p1106</id>
		<link href="https://mytts.info/viewtopic.php?t=127&amp;p=1106#p1106"/>
		<title type="html"><![CDATA[Словарь DIC алгоритм работы со звездочкой (*)]]></title>

		
		<content type="html" xml:base="https://mytts.info/viewtopic.php?t=127&amp;p=1106#p1106"><![CDATA[
Любопытная методика! Принцип разделения буквенных и небуквенных символов.<br>Интересно, а как по затратам времени на больших словарях? И/или больших текстах - размером с книжку.<p>Статистика: Добавлено  <a href="https://mytts.info/memberlist.php?mode=viewprofile&amp;u=53">flegont</a> — 29 ноя 2018 19:49</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[tonio_k]]></name></author>
		<updated>2018-11-29T19:26:55+03:00</updated>

		<published>2018-11-29T19:26:55+03:00</published>
		<id>https://mytts.info/viewtopic.php?t=127&amp;p=1105#p1105</id>
		<link href="https://mytts.info/viewtopic.php?t=127&amp;p=1105#p1105"/>
		<title type="html"><![CDATA[Словарь DIC алгоритм работы со звездочкой (*)]]></title>

		
		<content type="html" xml:base="https://mytts.info/viewtopic.php?t=127&amp;p=1105#p1105"><![CDATA[
<img class="smilies" src="./images/smilies/cheerleaderkid.gif" width="63" height="60" alt=":cheerleaderkid:" title="эмоция"> ура! эврика!<br><br>Нашел схему, которая работает!<br>Проблемы, обсуждаемые в этой ветке с ограничением звездочки на предмет знаков препинания и перескакивания на следующее предложение типа:<strong class="text-strong">из * воды=из воды</strong> для словарей DIC больше не существует!<br><br>Схема:<br><span class="glow" style="display:inline;padding:0 6px;color:#fff;text-shadow:0 0 1em red,0 0 1em red,0 0 1.2em red">Данная схема работает только в программе Демагог!</span><br>Нужно все правила со звездами, окруженные пробелами, перенести в отдельный словарь.Для их выявления Можно воспользоваться поиском по шаблону rex <strong class="text-strong">^(.)*\s\*\s(.)*=(.)*(.)*$</strong><br><br>Всего нужно 3 словаря:<br>1) словарь подготовки (REX )<br>2) словарь со звездочками (DIC)<br>3) словарь - чистка (DIC)<br>Словари должны сработать строго друг за другом между собой:<br><br>1) первый словарь - REX  всего одна строка:<div class="codebox"><p>CODE: </p><pre><code>([а-яё])\b=$1_</code></pre></div>2) второй словарь - каждое слово, в том числе и звездочка, в правиле (в <span style="text-decoration:underline">его левой части</span>) на конце должно иметь концовку "_", (обратите внимание как отделяются знаки препинания). Символ Концовка может быть любой - главное что бы он была уникальным (не встречался в тексте) и удобным при наборе и редактирования правил в словаре. <div class="spoilwrapper" style="margin:1em 0;font-weight:normal;padding:4px 10px;background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;color:#333"><div class="spoiltitle" style="margin:0;padding:0;width:100%"><span class="spoilbtn" style="margin:2px 5px;text-transform:uppercase;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:11px;font-weight:bold;display:block;cursor:pointer;color:#333" data-show="► Показать" data-hide="▼ Скрыть">► Показать</span></div><div class="spoilcontent" style="color:#333;display:none;padding:5px;border-top:1px solid #ccc"><div class="codebox"><p>CODE: </p><pre><code>ещё_ *_ минут* и_ дома_ закончились_=ещё _ минут и домА закончились не_ дам_ *_ ордера_ на_ арест_ *ка_=не дам _ Ордера на арест ка из_ *_ тянулись_ проводки_=из _ тянулись проводкИ с_ *_ простеньким_ замком_=с _ простеньким замкОм между_ вами_ *_ пропасть_=между вами _ прОпасть между_ нами_ *_ пропасть_=между нами _ прОпасть между_ ними_ *_ пропасть_=между ними _ прОпасть воспринимать_ *_ черта_=воспринимать _ чёрта голоса_, *_ доносился_=гОлоса_, _ доносился в_ стол_, под_ *_ замок_=в_ стол_, под _ замОк температура_ *_ спала_=температура _ спАла запирая_ *_ на_ замок_=запирая _ на замОк </code></pre></div></div></div><br>Что бы "любое слово" соответствующее звездочке подставилось корректно, надо в правой части правила в том месте где оно должно подставиться - вставляем знак концовки "_" - окруженный пробелами.<br><br>3) словарь чистки - запускать ОБЯЗАТЕЛЬНО - в режиме прямого перебора. <div class="spoilwrapper" style="margin:1em 0;font-weight:normal;padding:4px 10px;background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;color:#333"><div class="spoiltitle" style="margin:0;padding:0;width:100%"><span class="spoilbtn" style="margin:2px 5px;text-transform:uppercase;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:11px;font-weight:bold;display:block;cursor:pointer;color:#333" data-show="► Показать" data-hide="▼ Скрыть">► Показать</span></div><div class="spoilcontent" style="color:#333;display:none;padding:5px;border-top:1px solid #ccc"><div class="codebox"><p>CODE: </p><pre><code>*_*=* ,*=,* .*=.* ;*=;* ?*=?* !*=!*  *= </code></pre></div></div></div>Пример для тестирования (правила для словаря см. выше):<div class="spoilwrapper" style="margin:1em 0;font-weight:normal;padding:4px 10px;background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;color:#333"><div class="spoiltitle" style="margin:0;padding:0;width:100%"><span class="spoilbtn" style="margin:2px 5px;text-transform:uppercase;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:11px;font-weight:bold;display:block;cursor:pointer;color:#333" data-show="► Показать" data-hide="▼ Скрыть">► Показать</span></div><div class="spoilcontent" style="color:#333;display:none;padding:5px;border-top:1px solid #ccc">ещё несколько минуток и дома закончились.<br>не дам ему ордера на арест преступника<br>из трещины тянулись проводки<br>с очень простеньким замком<br>между вами большая пропасть<br>между нами глубокая пропасть<br>между ними опасная пропасть <br>того голоса, что доносился из другой комнаты<br>положил в стол, под декоративный замок</div></div>после обработки тремя словарями на выходе получаем:<div class="spoilwrapper" style="margin:1em 0;font-weight:normal;padding:4px 10px;background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;color:#333"><div class="spoiltitle" style="margin:0;padding:0;width:100%"><span class="spoilbtn" style="margin:2px 5px;text-transform:uppercase;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:11px;font-weight:bold;display:block;cursor:pointer;color:#333" data-show="► Показать" data-hide="▼ Скрыть">► Показать</span></div><div class="spoilcontent" style="color:#333;display:none;padding:5px;border-top:1px solid #ccc"># Текст "" измененный по "40.0_ЭКСПЕРИМЕНТ REX.rex, 40.1_ЭКСПЕРИМЕНТ ЗВЕЗДЫ ОКОНЧАНИЯ - копия.dic, 40.2_ЭКСПЕРИМЕНТ восстановление.dic" (0:00:00)<br><br>   ещё несколько минуток и домА закончились.<br>  не дам ему Ордера на арест преступника<br>  из трещины тянулись проводкИ<br>  с очень простеньким замкОм<br>  между вами большая прОпасть<br>  между нами глубокая прОпасть<br>  между ними опасная прОпасть<br>  того гОлоса, что доносился из другой комнаты<br>  положил в стол, под декоративный замОк </div></div><p>Статистика: Добавлено  <a href="https://mytts.info/memberlist.php?mode=viewprofile&amp;u=51">tonio_k</a> — 29 ноя 2018 19:26</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[flegont]]></name></author>
		<updated>2018-11-13T18:53:34+03:00</updated>

		<published>2018-11-13T18:53:34+03:00</published>
		<id>https://mytts.info/viewtopic.php?t=127&amp;p=963#p963</id>
		<link href="https://mytts.info/viewtopic.php?t=127&amp;p=963#p963"/>
		<title type="html"><![CDATA[Словарь DIC алгоритм работы со звездочкой (*)]]></title>

		
		<content type="html" xml:base="https://mytts.info/viewtopic.php?t=127&amp;p=963#p963"><![CDATA[
Принцип работы со звездочкой в dic-словарях меняться не будет. Звездочка - это <em class="text-italics">любые символы</em>. Это - общепринято и всем привычно.<br><br>Что же касается возможности для пользователей творить собственные алгоритмы словарных замен, на уровне скриптов, исключительно средствами Lua, не обращаясь к таким заимствованиям из Демагога, как функция WFilter() - будущее покажет.<p>Статистика: Добавлено  <a href="https://mytts.info/memberlist.php?mode=viewprofile&amp;u=53">flegont</a> — 13 ноя 2018 18:53</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[tonio_k]]></name></author>
		<updated>2018-11-13T17:57:11+03:00</updated>

		<published>2018-11-13T17:57:11+03:00</published>
		<id>https://mytts.info/viewtopic.php?t=127&amp;p=960#p960</id>
		<link href="https://mytts.info/viewtopic.php?t=127&amp;p=960#p960"/>
		<title type="html"><![CDATA[Словарь DIC алгоритм работы со звездочкой (*)]]></title>

		
		<content type="html" xml:base="https://mytts.info/viewtopic.php?t=127&amp;p=960#p960"><![CDATA[
<blockquote class="uncited"><div>регексы с поиском по окончанию, коварны</div></blockquote> именно по этой причине у меня все правила со звёздочками вынесены в отдельный словарь и применяются к тексту первыми по очереди перед всеми остальными обычными словарями DIC. Так сказать от, обобщенных правил статистически средне вероятным (со звездочкой), к более конкретным и однозначным от двух слов в правиле к тресм словам и более. Тему звёзд поднял так как текущий алгоритм статистически уж "слишком" обобщен.<p>Статистика: Добавлено  <a href="https://mytts.info/memberlist.php?mode=viewprofile&amp;u=51">tonio_k</a> — 13 ноя 2018 17:57</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[balaamster]]></name></author>
		<updated>2018-11-13T17:33:12+03:00</updated>

		<published>2018-11-13T17:33:12+03:00</published>
		<id>https://mytts.info/viewtopic.php?t=127&amp;p=959#p959</id>
		<link href="https://mytts.info/viewtopic.php?t=127&amp;p=959#p959"/>
		<title type="html"><![CDATA[Словарь DIC алгоритм работы со звездочкой (*)]]></title>

		
		<content type="html" xml:base="https://mytts.info/viewtopic.php?t=127&amp;p=959#p959"><![CDATA[
<blockquote class="uncited"><div>*ого рога=ого рогА</div></blockquote>Правила со звёздочками, как и регексы с поиском по окончанию, коварны <br>"Обладатель большого рОга"<br>Я попался на правиле:<br>*ие руки=ие рУки<br><br>Но: движение рукИ, две тонкие рукИ<br>Хотя, вероятность таких сочетаний ниже, чем сильные рУки, маленькие рУки <br>Возможно, таким можно и принебречь<p>Статистика: Добавлено  <a href="https://mytts.info/memberlist.php?mode=viewprofile&amp;u=74">balaamster</a> — 13 ноя 2018 17:33</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[tonio_k]]></name></author>
		<updated>2018-11-13T17:11:58+03:00</updated>

		<published>2018-11-13T17:11:58+03:00</published>
		<id>https://mytts.info/viewtopic.php?t=127&amp;p=958#p958</id>
		<link href="https://mytts.info/viewtopic.php?t=127&amp;p=958#p958"/>
		<title type="html"><![CDATA[Словарь DIC алгоритм работы со звездочкой (*)]]></title>

		
		<content type="html" xml:base="https://mytts.info/viewtopic.php?t=127&amp;p=958#p958"><![CDATA[
Рассмотрим Простую схему предложения:<br>Прилагательное глагол существительное.<br>Если взять в контексте существительное и недалеко стоящее в предложении Прилагательное или глагол не разделенные знаками препинания, то с вероятностью 90% это Прилагательное или глагол относятся по смыслу к существительному. Это так же применимо во всех их комбинациях между собой.<br>Правила в словарях и ищут эти контексты так как смысловая нагрузка программе не доступна.<br>Более сложные сочетания со знаками препинания - это уже более сложные в выявлении закономерностей особенности русского языка.<br>Идём от простого к сложному:<br>применение звездочки <em class="text-italics">как части</em> слова вполне логична - так как облегчает замены связанные с закономерностями связок прилагаттельное с существительным<br><strong class="text-strong"> *ого рога=ого рогА</strong><br>С учетом закономерностей русского языка можно предположить, что: "<strong class="text-strong">*ого </strong>(с оговоркой или уточнением) <strong class="text-strong">рога</strong>" тоже на выходе будет звучать как <strong class="text-strong">рогА</strong> Пример:<br><strong class="text-strong">разбитого топором рогА</strong><br> Причем вместо "топором" может быть "мечом", "<strong class="text-strong">силой мысли</strong>" и т.д. - т.е. непредсказуемое слово или два, а может и три!<br><br>Давайте вместо "<strong class="text-strong">силой мысли</strong>" применим ту же звездочку:<br>*тые * * рога=тые рогА<br><br>Но тут  звездочка в Демагоге "перескакивает" простой по логике схему: <strong class="text-strong">звездочка = только слово</strong>, и сразу включает в себя дополнительные комбинации, которые к 90% вероятности правильности составления правила дает минус 10-20% на ложные срабатывания. Пример:<br><strong class="text-strong">Проклятые рога. Два рога торчали из за камня.</strong><br><br>Если <strong class="text-strong">*тые * * рога=тые рогА</strong> поставить как первое правило для срабатывания. а уточняющие правила при алгоритме перебора в конец:<br><strong class="text-strong">Два рога=Два рОга<br>рога торчали=рогА торчали</strong><br>то эти правила "подчистят" ложные срабатывания. <br><br>Но с другой стороны, если звездочку сделать ТОЛЬКО слово без знаков препинания, то придумать ошибочное срабатывание в контексте предложения <strong class="text-strong">*тые * * рога=тые рогА </strong>не так просто и мало вероятно встретить в реальном тексте.<br><br>Так что мое мнение, что звездочка очень эффективна как часть слова, но применяя ее в качестве отдельного слово а иногда и в качестве окончания слова - уже применять не сильно хочется.<br><br>А вот если * сделать как аналог (\w+) в rex словарях - то её применение станет на много удобнее и эффективнее.<br><br>На вопрос а что делать если нужен знак препинания? Его что, каждый раз прописывать?<br>Отвечу - да! <br>Если посмотреть словари которые применяются на практике, то правила, где "нужно" прописать какой либо знак препинания - обычно словосочетание, которое без этого знака наоборот делает правило ошибочным. Причем не какой угодно знак, а конкретный - например только точка или только запятая. Более того - есть правила, где нужно прописать ВСЕ знаки препинания КРОМЕ схемы: слово пробел слово. А звездочка и тут не применима, так как включает в себя не только знак препинания но и его отсутствие.<br><br>Вот мои рассуждения про сегодняшний алгоритм работы звездочки для Демагога.<hr><br><br><span style="font-size:85%;line-height:116%"><span style="color:green">Отправлено спустя     29 минут 1 секунду:</span></span><br>Пример <strong class="text-strong">рога торчали=рогА торчали</strong> - некорректный. Извините <img class="smilies" src="./images/smilies/ah.gif" width="25" height="25" alt=":boy_blushed:" title="эмоция"><p>Статистика: Добавлено  <a href="https://mytts.info/memberlist.php?mode=viewprofile&amp;u=51">tonio_k</a> — 13 ноя 2018 17:11</p><hr />
]]></content>
	</entry>
	</feed>
