Нет, под Ёлочку! Теперь точно с Ё, потому что это статья про ёфикацию!
И не просто теория или скрипты из командной строки, а настоящая рабочая программа, которую можно использовать как на компе так и на телефоне.
ссылка на сайт — пользуйтесь!
Как работает программа?
Она загружает файл с ёфицированными словами, потом деёфицирует их все.
(база взята вот отсюда) — http://python.anabar.ru/yo.htm
потом ищет каждое из этих слов в исходном тексте и если они там есть, запоминает где это слово.
Это происходит довольно быстро.
Дальше то что происходит медленно…
Программа ищет, что бы заменить — заменяет все Е где нужно на Ё (большие на большие, маленькие на маленькие).
Всё это происходит через Parallel.For в столько потоков сколько у вас есть.
Дальше программа предлагает сохранить файл куда вы хотите (на компе), или в папку Documents/Yo на телефоне. Оттуда его можно переместить куда угодно и открывать в любой читалке.
Поддерживаемые форматы:
txt, fb2, fb2.zip
Сохраняет в таком же формате, в каком и открывает. Если надо запаковать в zip то запаковывает. fb2 разбирает на элементы и не пытается просматривать binary для ускорения работы
Самое интересное то, что программа работает одинаково на всех платформах, алгоритм полностью портируемый! За это слава Microsoft, петя Core 3.1 и вася .net standard 2.1
Теперь у меня будет единая кодовая база и для мобильников, и для сервера и для десктопа. Чему я несказанно рад! Надо ещё научиться шарить картинки и ресурсы между проектами, чтобы не копировать вручную логотип и словарь.
Почему я так рад? Потому что теперь не буду читать искалеченные книги, которые скачиваю из интернета. Никаких больше ежиков, ее, еще и е-мое. Только Ё, только хардкор!
Торопился сделать всем подарок на новый год, поэтому пока есть некоторые ограничения:
- пока нет поддержки epub
- иногда не показывает куда сохранила (на телефоне)
- пока работает только с кодировкой UTF-8
- если txt то не показывает progress bar, но работает
- пока ёфицирует только однозначно определяемые слова (все от всё не отличает, но я буду работать над этим)
Планы:
кроме улучшения интерфейсов и декоративных вещей, планирую сделать
поддержку docx, epub
progressbar для текста
сервис по ёфикации на сайте
API для подключения сторонних сервисов
выложить в открытый доступ исходники
редактор ё-словаря (сейчас там не все ругательства, их надо обязательно добавить!)
редактор исходных и ёфицированных текстов
автоматическое обучение сложным случаям
анализ контекста
вылаживание apk в PlayMarket
консольный режим, поддержка Drag & Drop — спасибо за идею KorDen32
А теперь — Ёфицируй это!
Всех с новый годом!
P.S.… И в лесу родилась, наконец-то, Ёлочка!
(upd 31.12.2019 13:36 — всё настроил, apk качается)
Комментарии (71)
Rsa97
31.12.2019 01:08«Там и передохнёте». Или «передо?хнете»?
Как быть со словами, у которых есть обе формы?3263927 Автор
31.12.2019 01:12со временем сделаю контекстный анализ, а пока "там" никто не выживет...
justhabrauser
31.12.2019 03:33со временем сделаю контекстный анализ
Х-х-хех… Да Вы, батенька, оптимист.
Хотя, в принципе… "Со временем" — оно же растяжимое, правда?
В том веке никому времени не хватило, так у нас же вечность спереди!3263927 Автор
31.12.2019 13:36ну как вам сказать… это же pet project, я его делаю в том числе и для себя… сам люблю читать с ё, но теперь если вы напишите что вам это тоже надо для меня это будет ответственность — и я буду этому проекту уделять больше времени
Nickrus
31.12.2019 02:03Классно! А давайте ещё плагин для браузера, который во всех текстах будет на лету оформлять причастные и деепричастные обороты запятыми, принудительно.
3263927 Автор
31.12.2019 02:04это не ко мне, я сам пишу как хочу а не по правилам, так что… сам писать не буду.
но если вы займётесь то с разработкой помогу!Igor_O
31.12.2019 18:05+1Причастные и деепричастные обороты запятыми — ну будут запятые… И что?
Вот «тся» и «ться», как в «он заботится» против «надо заботиться» — это да. Но когда «он заботиться» или «надо заботится»… Это выбешивает… И, кажется, не так сложно парсить…
Methos
31.12.2019 13:08ну, моё расширение уже работает, которое заменяет imho на моё мнение.
искать по слову imhoreplacer
tvr
31.12.2019 13:561: Пока Славик ходил курить, обучили его Аутлук старословянскому ))
2: Эт как? )
1: Врубили ему автозамену список=свиток, чтобы=дабы, ну и там воистину, ибо и т.д. Главное, чтобы в глаза не бросалось )
1: Так он очень удивился, когда на письмо с фразой "… посему высылаю всем свиток свободных айпишников, не забывайте!" ему стали приходить ответы типа «Челом бьем, боярин! Не прибежал еще со свитком гонец» ))
bash.im
3263927 Автор
31.12.2019 13:38кстати, вот скрипт который заглавные буквы расставляет. для себя написал, может кому-то пригодится. сам никогда не люблю ставить заглавные буквы поэтому легче скрипт написать))
var ui = DocumentApp.getUi(); // Or FormApp.getUi(). function onOpen() { ui.createMenu('Scripts') .addItem('Capitalize', 'onCapitalize') .addToUi(); } function onCapitalize() { var selection = DocumentApp.getActiveDocument().getSelection(); if(selection) { var elements = selection.getSelectedElements(); for (var i = 0; i < elements.length; i++) { var element = elements[i]; var text = element.getElement().editAsText(); text.setText(fcap(text.getText())); } } } function fcap(str) { var pieces = str.split(". "); for ( var i = 0; i < pieces.length; i++ ) { var j = pieces[i].charAt(0).toUpperCase(); pieces[i] = j + pieces[i].substr(1); } return pieces.join(". "); }
A-Stahl
31.12.2019 06:49Э, не-е… С помощью таких вот маленьких кусочков (ё, базовая пунктуация, ться) можно чуть лучше понять кто автор. Так что пусть они остаются.
3263927 Автор
31.12.2019 13:57это для книг. я увидел какую-то книгу интересную, скачал на телефон, сразу ёфицируешь и читаешь. для комментариев это не очень нужно, хотя тоже помогло бы… наверное разное восприятие у всех, меня например запинают слова без ё где она должна быть, мозг как будто останавливается на мгновение. в художественных произведениях где важно погружение это мешает, поэтому и хотел сделать сразу на мобильных
kababok
А вот "Рёнтген" там, наверное, нет… ;)
3263927 Автор
действительно нет, проверил. даже если добавлю то сейчас не будет его ёфицировать, потому что неоднозначно — есть же ещё рентген без ё…
kababok
Мне кажется, что сам термин "рентген" именно здесь пал жертвой "обез-ёчивания" :))
Ибо город, где сделано открытие, без проблем передаётся на русском "как есть": Wurzburg = Вюрцбург — именно с учётом умлаута.
Но при этом Rontgen устоялось не как "Рёнтген", а как сейчас имеем. :)
Немцы говорят и имя, и фамилию именно с "ё".
3263927 Автор
да, много разных слов так странно видоизменяются! я поэтому предпочитаю лучше на английском термины писать и фамилии на всякий случай…
технически можно добавить, но эта программа для индивидуального же пользования — если вам удобнее читать рёнтген и вы хотите чтобы она автоматически это делала добавьте в словарь это слово, по идее должно сработать.
Igor_O
Как так получается, что Рёнтген выговаривают, а ёлочка… ну и остальные русские слова с ё… — ни у одного пока не получилось? Может быть они все же говорят не ё, а что-то другое?..
Это был сарказм. И да, немцы говорят другое. Никакого отношения к русскому «ё» не имеющее.
Просто послушаейте произношение на викшионари. И во всех остальных источниках. Оно «роэнтген». Никакого ё там близко нет. «О» там может быть достаточно коротким. Но оно «о». Для звука «ё» важно, что предыдушая согласная — мягкая. У немцев этого нет. У них согласная твердая, потом «о», потом, иногда «э», иногда что-то похожее на «е». В некоторых ситуациях что-то похожее на безэмоциональное американское «oh-yeah!» Но… Никаких «ё»!
chapuza
Как в слове «ёлочка»?
Cerberuser
А кто скажет, что "й" — твёрдая?
3263927 Автор
тот первый бросит в меня камень
chapuza
А кто скажет, что «й» в слове «ёлочка» — предыдущая согласная?
Igor_O
От же ж зануды собрались. Ну да, нет в слове «ёлочка» согласной. Написанной. Но, когда буква «ё» первая в слове, часто предполагается наличие «й» перед ней. И да, «й» — очень часто, и в этом случае тоже, может быть согласной. В качестве домашнего задания, найдите немецкое слово, где буква «oe» — первая в слове или без согласной перед ней. Или где что-то похожее на «й» — первая буква в слове…