Форум » KooBAudio 2.0 » Словарный анализ текста » Ответить

Словарный анализ текста

bobo4ka: Возможно, Вы просто его ещё не доработали, но на текущий момент (бэта 4 фикс) пользоваться им не очень удобно в отдельных моментах.. В данный момент застрял на Именах. Работаю я в режиме "Автоматически произносить слово при выделении". Если стать на любое "Имя" из "списка имён" в окошке ниже сразу отображаются все его словоформы. Это безусловно удобно, если бы не несколько "но". 1. Я хочу просто "пробежаться мышкой" по списку этих "похожих" слов с целью послушать их звучание. При перемещении в "окне похожих слов" я не хочу автоматически "перемещаться (устанавливать фокус)" на это слово и в основном окне "списка всех найденных имён" и автоматически запускать поиск похожих слов я тоже не хочу. Я хочу просто услышать звучание этого найденного похожего слова и продолжать находится в этом списке "похожих слов"... А вот режим "перехода вглубь" с последующим поиском похожих слов можно было бы повесить на "дабл-клик". Повторюсь - это только для окна со списком похожих слов. 2.В текущий момент если в словаре уже есть правило, определяющее звучание одного из найденных похожих слов, то при "становлении" на это слово (в окне похожих слов) в текущий момент ничего не происходит - это слово не произносится вслух, на него не перемещается фокус в "основном списке имён" и не запускается механизм поиска похожих на него слов... Как бы не удобно.. Похоже я понял почему: в момент добавления нового правила те Имена, которые подпадают под зону действия этого правила, исчезают/удаляются из основного Списка Имён.. Но при этом эти имена продолжают отображаться в окне найденных "похожих слов".. Кроме того, при удалении "такого правила", эти Имена автоматически не возвращаются в "список Имён", и даже кнопка "Перезагрузить словари" не помогает в этом. 3. Можно ли в списке "похожих слов" те слова, звучание которых уже изменено пользовательскими правилами выделять другим цветом и по правому клику мышки на таком слове отображать доп.окно с теми правилами которые определяют его звучание (с возможностью дальнейшего перехода к редактированию/удалению любого из этих правил).

Ответов - 28, стр: 1 2 All

MoppoH: Как я заметил если включено сначала рег выражения (это выражения где 2 и более слов) то слова заменяются если несколько словарей сначала из словаря начинающегося с допустим "a" и дальше в алфавитном порядке, к примеру если в словаре "а" есть выражение *го по<ля, а в словаре "б" есть *его поля< то будет только замена *го поля, а *его поля он уже не найдет, и вопрос к автору: выражения из 4 слов раньше заменяется чем из двух слов или нет?

bobo4ka: Просто недавно добавлял новые правила в словарик: #(?i)(?<=(?:ой|часть|ей|ье|ью|ем)\s*)\bруки\b=руки< руки = ру<ки рассчитывал, что вначале текст будет обрабатываться первым правилом, а для всех иных случае будет срабатывать второе правило.. Однако задумка не сработала. Пришлось второе правило тоже оформлять в виде регулярного выражения - только в этом случае работало так как надо #(?i)(?<=(?:ой|часть|ей|ье|ью|ем)\s*)\bруки\b=руки< #(?i)\b(Р|р)уки\b=$1у<ки Хотя, следуя логике, всё должно было работать и в первом случае.. Почему не сраболо - мне не понятно - именно это и породоило цепь вопросов к разработчику изложенных выше..

Cminant: KOMODOR пишет: 4. Синхронизация. Правила небольшими кусками выкладываются либо сюда, либо в гуглодокумент, либо еще куда... Поразмышлял на эту тему. Пока что мне видится такое решение: добавить в программу поддержку "составных словарей" - т.е. допустим будет несколько файлов вида: [pre2] Main.Cminant.dic Main.KOMODOR.dic Main.MoppoH.dic Main.Vasya_pupkin.dic и т.д.[/pre2] В редакторе словарей будут отображаться правила из всех таких файлов, но новые будут добавляться только в "свою" часть, файл которой можно будет выложить тут на форуме... По сути это то же самое как если бы каждый автор делал собственный словарь, однако с той лишь разницей, что результат совместной работы будет сразу перед глазами, что в какой-то мере позволит избежать повторов в словарях...


MoppoH: Что то очень сложные какие то выражения у меня по другому #(?i)(?<=(ые)\b.{0,5})\bруки\b=ру<ки #(?i)(?<=(дойдут).{0,30})\bруки\b=ру<ки #(?i)\bруки\b(?=.{0,30}(не дошли|оторва))=ру<ки #(?i)(?<=(ание|вой|дней|дой|ения|йся|кой|лой|ние|нию|ной|оть|сть|тель|той|шей|шил|ься|вокруг)\b[^\.,]{0,5})\bруки\b=рукиъ< #(?i)(?<=(взмах|коснул|локте|подрезан|попросил|следы|тепло|хватало).{0,30})\bруки\b=рукиъ< а затем идет простое с большой буквы $Руки=Ру<ки

bobo4ka: MoppoH пишет: Что то очень сложные какие то выражения у меня по другому У вас выражения ничуть не проще но суть не в том у кого проще/лучше правила, а в том, как вообще работает алгоритм словарной замены.. Попробуйте преобразовать $Руки=ру<ки в руки =ру<ки и посмотрите что получится.. У меня в этом случае не срабатывает ниодно из впереди идущих регулярных выражений. такое впечатление что сначала текст изменяется правилом руки =ру<ки и лишь потом начинается обрабатывается правилами с рег.выражениями, которые уже не срабатывают, т.к "руки" уже превратились в "ру<ки"

Cminant: 1. В какой очередности правила применяются к тексту вообще и каков порядок если есть несколько словарей?. Словари загружаются в алфавитном порядке. Чтобы менять порядок можно использовать префиксы в именах файлов, например "001_names.dic" "002_authors.dic" ит.д. 2. Признак того, что правило построено на базе регулярных выражений влияет каким-либо образом на очерёдность применения этого правила? (допустим сначала применяются все правила основанные на регулярных выражениях а уж потом все остальные) ? Это все зависит от опции "оптимизация словарей" (Настройки->производительность) По-умолчанию она включена ("сначала простые") "Простым" считается правило, шаблон которого состоит из одного слова, без пробелов, подстановочных символов (звёздочек) и флага "RegEx", например: руки=ру<ки - простое правило Все остальные (из нескольких слов, со "звездочками" или рег выражениями) равны между собой и выполняются всегда в оригинальном порядке Если отключить оптимизацию, будет сохранен точный порядок обработки для всех правил. 3. Каждое из правил применяется к оригинальному неизменённому тексту или текст меняется динамически после обработки каждым из правил и каждое последующее правило работает с уже модифицированным текстом? Обрабатываемый текст меняется после каждого правила. При включенной оптимизации словарей для "простых правил" действует иной алгоритм: Исходный текст разбивается на отдельные слова, затем каждое слово ищется в списке "простых" правил и при совпадении заменяется на результат обработки соответствующего правила. Т.к. нужен всего один проход + сравнение идет по хешу, получаем огромный прирост производительности, но ломается общий порядок обработки...

MoppoH: вbobo4ka пишет: все просто создаем словарь "a" туда заносим все выражения которые должны замениться первыми, затем словарь "b" туда заносим что должно заменяться вторым и так далее, у меня именно так. Может есть какой нибудь другой вариант? или может Автор добавит функцию в каком порядке словарями обрабатывать текст.

bobo4ka: Спасибо. Теперь всё понятно.. Виной "непонятной" работы словарной обработки была оптимизация словерей.. Я то думал правила применяются в том порядке в котором записаны.



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