Skip to content

Text-extend-tools/python-rurecoder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

6e3949e · Aug 10, 2019

History

3 Commits
May 12, 2018
May 12, 2018
May 12, 2018
May 12, 2018
Aug 10, 2019
May 12, 2018
May 12, 2018
May 12, 2018

Repository files navigation

rurecoder

Назначение

Пакет нужен чтобы чинить "кракозябры" (или "краказябры") в читаемый текст. Например: "õîğîøèé òåêñò" => "хооший текст".

Установка

$ git clone https://github.com/zvezdochiot/python-rurecoder #(based https://bitbucket.org/dkuryakin/recoder.git)
$ cd python-rurecoder && python setup.py install

или

$ pip install rurecoder

Полезные команды

Использование как консольная тулза.

$ echo "Îñíîâíàÿ Îëèìïèéñêàÿ äåðåâíÿ â" | python -mrecoder [coding]

По умолчанию, coding=utf-8.

Использование в коде

Чаще всего с кракозябрами справится такой базовый пример:

from rurecoder.cyrillic import Recoder
rec = Recoder()
broken_text = u'Îñíîâíàÿ Îëèìïèéñêàÿ äåðåâíÿ â'
fixed_text = rec.fix_common(broken_text)
print fixed_text.encode('utf-8')

Если базовый пример не справился, можно поиграться с настройками:

from rurecoder.cyrillic import Recoder
rec = Recoder(depth=4)
broken_text = u'...'
fixed_text = rec.fix(broken_text)  # fix работает дольше и сложнее чем fix_common
...

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

from rurecoder.cyrillic import Recoder
rec = Recoder(use_plus_words=True)
...

Замечания

В данный момент поддерживается только кириллица.

Расширение

Если хочется расширить библиотеку не только кириллицей, предусмотренна удобная тулза:

$ cat some_learning_text.txt | python -mrurecoder.builder [coding]

По-умолчанию, coding=utf-8. На stdin подавать текстовку для обучения. На выходе получится 2 файлика: 3grams.json и plus_words.json. Далее всё делается по аналогии с recoder.cyrillic.

Тесты

Тут всё просто:

$ git clone https://github.com/zvezdochiot/python-rurecoder #(based https://bitbucket.org/dkuryakin/recoder.git)
$ cd python-rurecoder && python setup.py test

See also CHANGELOG.rst