| Утилита для извлечения текста из файлов | |
|
|
Автор | Сообщение | Утилита для извлечения текста из файлов |
---|
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Мар 03 2013, 19:08 | Вс Мар 03 2013, 19:08 | |
| Программа позволяет извлекать текст из файлов различных форматов. Извлеченный текст может быть объединен в один файл и/или разбит на несколько файлов. К тексту могут быть применены правила из словарей коррекции произношения программы "Балаболка". Поддерживаемые форматы файлов: AZW, AZW3, CHM, DOC, DOCX, EPUB, FB2, HTML, MHT, MOBI, ODT, PRC, RTF, TXT.
Утилита не имеет графического интерфейса и выполняется в текстовом режиме. Режим работы программы может быть задан при помощи параметров командной строки или файла конфигурации.
Программа выполняет операции в следующем порядке:
- Извлечь текст из файла.
- Форматировать текст (если заданы соответствующие параметры).
- Объединить текст в один файл (если задан соответствующий параметр).
- Разбить текст на части (если заданы соответствующие параметры).
- Применить правила коррекции произношения (если заданы соответствующие параметры).
- Сохранить файл или файлы на диске.
Командная строка
Программа может быть настроена с помощью параметров командной строки. Они отделяются друг от друга пробелом и начинаются с символа "-" (дефис). Полный список параметров командной строки можно получить, введя команду balabolka_text.exe с параметрами -? или -h.
-f имя_файла Имя файла или маска для имен файлов, из которых требуется извлечь текст. Командная строка может содержать несколько параметров -f.
-v имя_папки Имя папки для сохранения файла с извлеченным текстом.
-p имя_файла Шаблон для имени файла с извлеченным текстом (например, "Текстовый документ"). Если параметр не задан, используется имя исходного файла.
-i Читать текст из стандартного потока ввода (STDIN). Если параметр задан, параметр -f игнорируется.
-o Записать текст в стандартный поток вывода (STDOUT). Если параметр задан, параметры -v и -p игнорируются.
-u Объединить текст из нескольких файлов в один файл.
-b Добавить порядковый номер перед именем файла.
-a Добавить порядковый номер после имени файла.
-n число Установить стартовый порядковый номер файла. По умолчанию значение равно 1.
-e кодировка Кодировка файла с извлеченным текстом ("ansi", "utf8" or "unicode"). По умолчанию значение равно "ansi".
-t число Задать способ разбиения текста: использование заданного размера файла. Число обозначает количество килобайт.
-k ключевое_слово Задать способ разбиения текста: поиск ключевого слова в исходном файле. Параметр является регистрозависимым. Командная строка может содержать несколько параметров -k.
-r ключевое_слово Поделить текст на ключевом слове и удалить его из текста. Параметр является регистрозависимым. Командная строка может содержать несколько параметров -r.
-w Задать способ разбиения текста: поиск двух пустых строк подряд.
-l Задать способ разбиения текста: поиск строки, где все буквы заглавные.
-d имя_файла Использовать словарь для коррекции произношения (файл с расширением *.REX или *.DIC). Командная строка может содержать несколько параметров -d.
-? или -h Показать описание параметров командной строки.
--remove-spaces Удалить лишние пробелы (два и более пробела подряд, неразрывные пробелы).
--remove-hyphens Удалить знаки переноса на концах строк в тексте.
--remove-linebreaks Удалить разрывы строк внутри абзацев.
--remove-empty-lines Удалить все пустые строки.
--replace-empty-lines Заменить несколько пустых строк одной пустой строкой.
--remove-square-brackets Удалить текст внутри [квадратных скобок].
--remove-curly-brackets Удалить текст внутри {фигурных скобок}.
--remove-angle-brackets Удалить текст внутри <угловых скобок>.
--fix-ocr-errors Исправить ошибки, возникшие при распознавании текста (только для языков с кириллическими алфавитами).
Примеры команд запуска утилиты для извлечения текста:
balabolka_text.exe -f "d:\Docs\book.doc" -v "d:\Text\" -p "Новая книга"
balabolka_text.exe -f "d:\Docs\*.doc" -f "d:\Docs\*.rtf" -v "d:\Text\" -e "utf8" --replace-empty-lines
balabolka_text.exe -f "d:\Docs\*.*" -v "d:\Text\" -p "Документ" -u
balabolka_text.exe -f "d:\Docs\1.doc" -v "d:\Text\" -p "Документ" -a -n 20 -t 100
balabolka_text.exe -f "d:\Book\book.fb2" -v "d:\Text\" -p "Книга" -k "ГЛАВА" -k "ОГЛАВЛЕНИЕ"
balabolka_text.exe -f "d:\Book\book.epub" -v "d:\Text\" -p "Книга" -r "###"
balabolka_text.exe -i -o --remove-spaces --remove-linebreaks --replace-empty-lines
Файл конфигурации
Параметры можно сохранить как файл конфигурации balabolka_text.cfg в той же папке, что и консольное приложение.
Пример содержимого файла: - Код:
-
-f d:\Docs\*.rtf -f d:\Books\*.epub -f d:\Books\*.fb2 -v d:\Text -b -n 1 -t 25 -e utf8 -d d:\rex\rules.rex -d d:\dic\rules.dic --remove-spaces --remove-linebreaks --replace-empty-lines Программа может комбинировать параметры из файла конфигурации и командной строки.
Веб-страница: http://www.cross-plus-a.ru/btext.html |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Мар 31 2013, 18:13 | Вс Мар 31 2013, 18:13 | |
| Вышла версия 1.01. Исправлены мелкие ошибки. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Апр 14 2013, 17:58 | Вс Апр 14 2013, 17:58 | |
| Вышла версия 1.02. Обновилась библиотека DELZIP190.DLL. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вт Апр 16 2013, 20:38 | Вт Апр 16 2013, 20:38 | |
| Вышла версия 1.03. Добавлено извлечение текста из файлов формата PDF.
-pwd текст Задать пароль для извлечения текста из файла формата PDF. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Сб Авг 03 2013, 14:03 | Сб Авг 03 2013, 14:03 | |
| Вышла версия 1.05. Исправлено извлечение текста из файлов форматов EPUB и PDF. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Ср Авг 14 2013, 16:11 | Ср Авг 14 2013, 16:11 | |
| Вышла версия 1.06. Обновлен способ извлечения текста из файлов формата PDF. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Авг 18 2013, 16:52 | Вс Авг 18 2013, 16:52 | |
| Вышла версия 1.07. Исправлена поддержка кодировки текста для STDOUT.
Библиотека DELZIP190.DLL не используется. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Дек 01 2013, 17:16 | Вс Дек 01 2013, 17:16 | |
| Вышла версия 1.08. Улучшено извлечение текста из файлов формата DOCX и ODT. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Янв 19 2014, 17:15 | Вс Янв 19 2014, 17:15 | |
| Вышла версия 1.09. Небольшие улучшения. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Янв 26 2014, 20:52 | Вс Янв 26 2014, 20:52 | |
| Версия 1.10. Исправлено извлечение текста из файлов формата EPUB. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Чт Апр 24 2014, 02:43 | Чт Апр 24 2014, 02:43 | |
| Версия 1.11. Небольшие улучшения. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Май 18 2014, 18:59 | Вс Май 18 2014, 18:59 | |
| Версия 1.12. Исправлены мелкие ошибки. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Май 25 2014, 00:46 | Вс Май 25 2014, 00:46 | |
| Версия 1.13. Исправлено извлечение текста из файлов формата FB2. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Сб Авг 30 2014, 23:37 | Сб Авг 30 2014, 23:37 | |
| Версия 1.14. Небольшие улучшения. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Сб Сен 27 2014, 17:34 | Сб Сен 27 2014, 17:34 | |
| Версия 1.15. Исправлено извлечение текста из файлов формата CHM. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Сб Окт 11 2014, 17:01 | Сб Окт 11 2014, 17:01 | |
| Версия 1.16. Небольшие улучшения. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Апр 12 2015, 23:47 | Вс Апр 12 2015, 23:47 | |
| Версия 1.17. Добавлено удаление мягких переносов в форматирование текста. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Июн 07 2015, 19:42 | Вс Июн 07 2015, 19:42 | |
| Версия 1.18 Обновлено применение правил из словарей формата REX. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Пн Июл 20 2015, 21:14 | Пн Июл 20 2015, 21:14 | |
| Версия 1.19 Обновлен метод деления текста на части: если задан размер частей текста, это значение будет использовано как верхний предел, а не как целевое значение. Текст будет поделен на части одинакового размера. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Чт Авг 06 2015, 16:42 | Чт Авг 06 2015, 16:42 | |
| Версия 1.20 Исправлено извлечение текста из файлов формата EPUB. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Янв 03 2016, 15:18 | Вс Янв 03 2016, 15:18 | |
| Версия 1.22 Исправлено извлечение текста из файлов формата HTML. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Сб Апр 23 2016, 18:09 | Сб Апр 23 2016, 18:09 | |
| Версия 1.24 Исправлена запись текста в STDOUT. |
|
|
| |
Dimsok Участник
Сообщений : 55
Репутация : 1
| Dimsok | :: Вс Апр 24 2016, 18:22 | Вс Апр 24 2016, 18:22 | |
| А stdin работает корректно?
Вот эта кнопка для тотал коммандер к примеру срабатывает, читает текст из архивов
- Код:
-
TOTALCMD#BAR#DATA %ComSpec% /c for /f "delims=" %# in ('type %WF') do "c:\Program Files\7-Zip\7z.exe" e "%%#" -so| "%%COMMANDER_PATH%%\Plugins\exe\balabolka\balabolka_cp.exe" -i -n Alyona -q -tray -d "c:\Program Files\Total Commander\Plugins\exe\balabolka\dicts\bi_Eng_Rachel.rex" %COMMANDER_PATH%\Plugins\exe\balabolka\balabolka_cp.exe Read text aloud from archives (query) (ru+eng)
1 -1
А вот эта уже нет, вместо запакованных книг почему-то все время читает пособие по руководству:
- Код:
-
TOTALCMD#BAR#DATA %ComSpec% /c for /f "delims=" %# in ('type %WF') do "c:\Program Files\7-Zip\7z.exe" e "%%#" -so| "%%COMMANDER_PATH%%\Plugins\exe\balabolka\Text extract\balabolka_text" -i -o | "%%COMMANDER_PATH%%\Plugins\exe\balabolka\balabolka_cp.exe" -i -n Alyona -q -tray -d "c:\Program Files\Total Commander\Plugins\exe\balabolka\dicts\bi_Eng_Rachel.rex" %COMMANDER_PATH%\Plugins\exe\balabolka\balabolka_cp.exe Read ebooks aloud from archives (query) (ru+eng)
1 -1
|
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Апр 24 2016, 22:04 | Вс Апр 24 2016, 22:04 | |
| Версия 1.25 Исправлено чтение текста из STDIN. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Апр 24 2016, 22:33 | Вс Апр 24 2016, 22:33 | |
| Dimsok Чтение текста из стандартного потока я вообще не тестировал, моя вина; спасибо за сообщение об ошибке. Выложил исправленную версию на сервер. Заодно, к сожалению, пришлось отказаться от компрессии исполняемых файлов - по какой-то непонятной причине программа в сжатом виде работает неправильно, если запускать ее как конвейер в командной строке.
Однако, результат всё равно может Вас разочаровать: Ваша командная строка должна извлекать из архивов файлы форматов FB2, DOC, PDF и т.д. и пересылать их в STDOUT, а моя утилита ожидает, что STDIN будет содержать только лишь обычный текст. Программа не может распознать, что STDIN содержит электронный документ, и в моих планах нет добавления такой возможности. Это будет уж слишком хитроумно. Проще, все-таки, читать файлы с диска, определяя формат по расширению имени файла.
Вам придется изменить текст команды и распаковывать файлы на диск, прежде чем извлекать из них текст. Мне жаль, но сейчас это единственный способ. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Ср Апр 27 2016, 01:38 | Ср Апр 27 2016, 01:38 | |
| Версия 1.26 Исправлено чтение данных из STDIN.
При чтении из STDIN формат файла автоматически определяется по содержимому потока данных. |
|
|
| |
Dimsok Участник
Сообщений : 55
Репутация : 1
| Dimsok | :: Ср Апр 27 2016, 09:20 | Ср Апр 27 2016, 09:20 | |
| - Цитата :
- Исправлено чтение данных из STDIN
Вот спасибо, попозже потестирую |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Сб Май 28 2016, 15:50 | Сб Май 28 2016, 15:50 | |
| Версия 1.27 Небольшие улучшения. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Сб Июл 02 2016, 20:28 | Сб Июл 02 2016, 20:28 | |
| Версия 1.28 Добавлена возможность использования переменной %FirstLine% в шаблоне для имени файла (параметр -p). При делении документа на части переменная будет заменяться первой строкой текста из каждой части. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Сб Июл 16 2016, 17:17 | Сб Июл 16 2016, 17:17 | |
| Версия 1.29 Исправлено извлечение текста из файлов форматов DOCX и ODT. |
|
|
| |
Dimsok Участник
Сообщений : 55
Репутация : 1
| Dimsok | :: Вс Окт 09 2016, 22:36 | Вс Окт 09 2016, 22:36 | |
| Mht, сохранённые из оперы, не переводятся в текст корректно, вместо них закорючки. Пробовал в разных кодировках. Программа японского разработчика "xdoc2txt" переводит корректно. Пример файла: https://yadi.sk/d/7-YJlE2nwYMjv |
|
|
| |
Dimsok Участник
Сообщений : 55
Репутация : 1
| Dimsok | :: Пн Окт 10 2016, 01:16 | Пн Окт 10 2016, 01:16 | |
| При конвертации mht в ansi (без ключа -e), txt получаются в кодировке utf8 |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Пн Окт 10 2016, 12:20 | Пн Окт 10 2016, 12:20 | |
| Dimsok Спасибо за сообщение, постараюсь решить проблему в следующей версии. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вт Окт 11 2016, 21:07 | Вт Окт 11 2016, 21:07 | |
| Версия 1.31 Исправлено извлечение текста из файлов формата MHTML. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Сб Окт 15 2016, 15:54 | Сб Окт 15 2016, 15:54 | |
| Версия 1.32 Добавлено извлечение текста из файлов формата Corel WordPerfect (*.WPD).
Утилита переименована в "blb2txt.exe".
Исправлены мелкие ошибки. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Чт Окт 27 2016, 21:52 | Чт Окт 27 2016, 21:52 | |
| Версия 1.33 Добавлена поддержка формата PalmDoc eBooks (*.PDB). Поддерживаемые форматы PDB: PalmDOC, Palm Reader/eReader, zTXT.
Добавлена поддержка формата книг Psion/EPOC (*.TCR).
Исправлено извлечение текста из файлов формата AZW3.
Небольшие улучшения. |
|
|
| |
Dimsok Участник
Сообщений : 55
Репутация : 1
| Dimsok | :: Чт Окт 27 2016, 22:14 | Чт Окт 27 2016, 22:14 | |
| Отлично, ещё Lit и Djvu добавить, и сравняется с балаболкой по количеству форматов. А там может и до Sony Lrf дело дойдёт. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Сб Ноя 05 2016, 17:12 | Сб Ноя 05 2016, 17:12 | |
| Версия 1.34 Добавлено извлечение текста из файлов формата PDB (Plucker). |
|
|
| |
Dimsok Участник
Сообщений : 55
Репутация : 1
| Dimsok | :: Сб Ноя 19 2016, 17:09 | Сб Ноя 19 2016, 17:09 | |
| Слияние файлов не выходит. С ключом -u программа сообщает об ошибке |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Ноя 20 2016, 03:18 | Вс Ноя 20 2016, 03:18 | |
| Dimsok Спасибо за сообщение, исправлю в следующей версии. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Сб Ноя 26 2016, 17:19 | Сб Ноя 26 2016, 17:19 | |
| Версия 1.35 Добавлена возможность использования интерфейса IFilter для извлечения текста. IFilter будет использован для неизвестных программе форматов файлов.
Исправлены мелкие ошибки. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Сб Янв 21 2017, 16:50 | Сб Янв 21 2017, 16:50 | |
| Версия 1.36 Добавлена возможность использования переменной %Number% в шаблоне для имени файла (параметр -p). Используйте переменную, чтобы поменять позицию порядкового номера внутри имени файла. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Сб Янв 28 2017, 17:16 | Сб Янв 28 2017, 17:16 | |
| Версия 1.37 Добавлено извлечение текста из файлов формата DjVu. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Фев 05 2017, 15:54 | Вс Фев 05 2017, 15:54 | |
| Версия 1.38 Добавлено извлечение текста из файлов формата LIT. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Сб Фев 11 2017, 18:23 | Сб Фев 11 2017, 18:23 | |
| Версия 1.39 Добавлена поддержка новых специальных символов для регулярных выражений (\U, \L, \E, \u, \l). |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Сб Фев 18 2017, 22:04 | Сб Фев 18 2017, 22:04 | |
| Версия 1.40 Исправлено извлечение текста из файлов, когда количество файлов очень большое. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вт Мар 21 2017, 21:43 | Вт Мар 21 2017, 21:43 | |
| Версия 1.41 Исправлены мелкие ошибки. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Апр 02 2017, 16:15 | Вс Апр 02 2017, 16:15 | |
| Версия 1.42 Исправлено извлечение текста из файлов формата HTML. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Пт Сен 08 2017, 20:26 | Пт Сен 08 2017, 20:26 | |
| Версия 1.43 Исправлено извлечение текста из файлов формата EPUB. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Чт Сен 14 2017, 21:31 | Чт Сен 14 2017, 21:31 | |
| Версия 1.44 Добавлено извлечение текста из файлов форматов XLS, XLSX, ODS. Текст извлекается в виде CSV; это текстовый формат, предназначенный для представления табличных данных:
- Каждая строка - это одна строка таблицы.
- Колонки отделены друг от друга запятыми.
- Поля, содержащие зарезервированные символы (двойная кавычка, запятая, точка с запятой), обрамляются двойными кавычками.
Новые параметры командной строки:
--csv-comma Использовать запятую как разделитель значений колонок при извлечении данных из файлов форматов XLS/XLSX/ODS (используется по умолчанию).
--csv-semicolon Использовать точку с запятой как разделитель значений колонок.
--csv-space Использовать пробел как разделитель значений колонок.
--csv-tab Использовать табуляцию как разделитель значений колонок.
--csv-double-quote Использовать двойные кавычки как ограничитель строк при извлечении данных из файлов форматов XLS/XLSX/ODS (используются по умолчанию).
--csv-single-quote Использовать одиночные кавычки как ограничитель строк. |
|
|
| |
| Утилита для извлечения текста из файлов | |
|
Утилита для извлечения текста из файлов |
---|