Замена слов с буквой ё

Автор 24pm, 9 сентября 2015, 11:10

0 Пользователи и 1 гость просматривают эту тему.

24pm

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

[Name] Заменить "е" на "ё" во всех словах, где она используется
  [Find]\<ее\>
  [Replace]её
  [Parameters]   MsgOff  Regular 
  [Command] ReplaceAll

   ;ёлка, ёлками, ёлкам, ёлкой
  [Find]\<елк
  [Replace]ёлк
  [Parameters]   MsgOff  Regular 
  [Command] ReplaceAll
...

Но подумал, что скриптом это делать будет более красиво и быстро. Есть ли у кого-нибудь наработки по этому поводу?

rami

Цитата: 24pm от  9 сентября 2015, 09:10Но подумал, что скриптом это делать будет более красиво и быстро. Есть ли у кого-нибудь наработки по этому поводу?
Для того, чтобы менять что-то на что-то другое нужны списки слов поиска и замены. У вас они есть?

24pm

Цитата: rami от  9 сентября 2015, 11:20
Цитата: 24pm от  9 сентября 2015, 09:10Но подумал, что скриптом это делать будет более красиво и быстро. Есть ли у кого-нибудь наработки по этому поводу?
Для того, чтобы менять что-то на что-то другое нужны списки слов поиска и замены. У вас они есть?
Да. А у вас есть скрипт?

rami

Цитата: 24pm от  9 сентября 2015, 10:09Да. А у вас есть скрипт?
Нет, но при желании можно написать. Сколько слов с буквой "ё" у вас есть? В зависимости от количества слов можно попробовать разные варианты решения. Ещё стоит посмотреть в сторону CyrillicTools, может быть, поможет(я в нём не разбираюсь)

24pm

Цитата: rami от  9 сентября 2015, 12:27
Цитата: 24pm от  9 сентября 2015, 10:09Да. А у вас есть скрипт?
Нет, но при желании можно написать. Сколько слов с буквой "ё" у вас есть? В зависимости от количества слов можно попробовать разные варианты решения. Ещё стоит посмотреть в сторону CyrillicTools, может быть, поможет(я в нём не разбираюсь)
В той стороне видно, что "Расширение представляет собой набор макросов, решающих две основные задачи:
    Перекодировка латиницы в кириллицу (Writer и Calc);
    Генерирование суммы прописью (Calc)."
То есть для нашей задачи этот инструмент не подходит. Подробнее: http://myooo.ru/content/view/114/90/

У меня сейчас есть список из около 30 слов и словоформ с "ё". Если удастся в скрипте использовать регулярные выражения, то, полагаю, будет достаточно около 100 записей, если же обрабатывать каждую словоформу отдельно, т.е. как в случае с "ёлкой" (см. выше), нужно будет обрабатывать также ёлками, ёлкам, ёлкой и т.д., то, думаю, потребуется около 1000 записей. Точно не могу сказать. Нет статистики. Определённо нужно будет иметь возможность пополнять этот список в будущем.

Yakov

На мой взгляд, это логично делать через спеллчекер, при условии, что установлен словарь "только Ё"

24pm

#6
Цитата: Yakov от  9 сентября 2015, 13:21
На мой взгляд, это логично делать через спеллчекер, при условии, что установлен словарь "только Ё"
Ну так это же придётся делать вручную, подтверждая каждую замену (пусть даже и облегчая несколько задачу нажатием "Заменить всё". Хотелось бы всё-таки автоматизировать этот процесс.

Кстати, было бы интересно, если бы скрипт сам мог выбирать из словаря спелчекера все слова на "ё" и менять их в тексте. Хорошая идея!

Хотя по использованию спелчекера тоже нужно ещё подумать, т.к. в его базе есть слова. которые пишутся как с "е", так и с "ё". Например: небо - нёбо, все - всё и т.п. Ну хобя бы из него можно будет получить первоначальную базу слов, которую потом можно будет просеять. А автоматизировать можно будет только замену слов использующих только "ё".

Yakov

Пример макросов по доступу к спеллчекеру LO/OOo можно посмотреть здесь:
https://forum.openoffice.org/en/forum/viewtopic.php?f=20&t=1222&sid=6a2fbf91a94719b6e43f0f81b506dda2

rami

#8
Цитата: Yakov от 10 сентября 2015, 09:41Пример макросов по доступу к спеллчекеру LO/OOo можно посмотреть здесь:
https://forum.openoffice.org/en/forum/viewtopic.php?f=20&t=1222&sid=6a2fbf91a94719b6e43f0f81b506dda2
Ссылка хорошая, но это не решение задачи. Макрос создаёт список слов отсутствующих в словаре, но нужен не список, надёжная автоматическая замена "е" на "ё".

Нужно писать макрос замены "с нуля", но это большой кусок работы.

24pm

Цитата: rami от 10 сентября 2015, 10:00Нужно писать макрос замены "с нуля", но это большой кусок работы.
С нуля это будет действительно очень большая работа. К счастью уже есть наработки на разных языках программирования. Отправной точкой может послужить набор ссылок на сайте "Пишите по-русски":
http://info-7.ru/RusYaz/Ssylki.shtml
или ссылки в статье "Ёфикатор" на Википедии:
https://ru.wikipedia.org/wiki/%D0%81%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D1%80

На данный момент нашёл для себя такое решение: есть замечательная программа e2yo
https://sites.google.com/site/e2yosupport/
позволяющая не только автоматезировать замену в txt и rtf файлах, но и в открытом в MS Word'е файле, который понимает (хоть и с руганью) формат odt. Поддержка этой программой OLE Automation позволяет интерактивно переходить в Word к позиции текста для замены.
Причём замена идёт не сразу, после запуска анализа, составляется список слов на замену, где перечислены в том числе неоднозначности. Пройдя по списку и поставив галочки в нужных заменах, запускаем замену по всему тексту.
Программа e2yo очень понравилась и была бы идеальна, если бы поддерживала LibreOffice также как MS Office и запускалась также под Linux. Переписать бы её, скажем, на Qt, но автор, к сожалению не ответил на письмо. Может кто-нибудь его знает лично?

AllPo

#10
Для этого просто надо установить новое обновление словаря и удалить все старые. В приложениях есть новый словарь (базированный на АОТ) с ё, где нет разногласий. Кроме того, такой словарь работает уже давно в браузерах.
Общаюсь с каждой персоной только на ты вне зависимости от возраста и сексуальной ориентации (М или Ж) -- в единственном лице (даже если у кого-то коллективный аккаунт или аватар): у меня в глазах не двоится и не мерещится -- не трепите себе нервы упрёками и выканиями.