| Утилита для извлечения текста из файлов | |
|
|
Автор | Сообщение | Утилита для извлечения текста из файлов |
---|
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 03.03.13 17: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.
Сообщений : 1212
Репутация : 986
 | |
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | |
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 16.04.13 19:38 |  |
| Вышла версия 1.03. Добавлено извлечение текста из файлов формата PDF.
-pwd текст Задать пароль для извлечения текста из файла формата PDF. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 03.08.13 13:03 |  |
| Вышла версия 1.05. Исправлено извлечение текста из файлов форматов EPUB и PDF. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | |
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | |
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | |
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | |
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | |
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 24.04.14 1:43 |  |
| Версия 1.11. Небольшие улучшения. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 18.05.14 17:59 |  |
| Версия 1.12. Исправлены мелкие ошибки. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 24.05.14 23:46 |  |
| Версия 1.13. Исправлено извлечение текста из файлов формата FB2. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 30.08.14 22:37 |  |
| Версия 1.14. Небольшие улучшения. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 27.09.14 16:34 |  |
| Версия 1.15. Исправлено извлечение текста из файлов формата CHM. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 11.10.14 16:01 |  |
| Версия 1.16. Небольшие улучшения. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | |
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 07.06.15 19:42 |  |
| Версия 1.18 Обновлено применение правил из словарей формата REX. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 20.07.15 21:14 |  |
| Версия 1.19 Обновлен метод деления текста на части: если задан размер частей текста, это значение будет использовано как верхний предел, а не как целевое значение. Текст будет поделен на части одинакового размера. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 06.08.15 16:42 |  |
| Версия 1.20 Исправлено извлечение текста из файлов формата EPUB. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 03.01.16 14:18 |  |
| Версия 1.22 Исправлено извлечение текста из файлов формата HTML. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 23.04.16 18:09 |  |
| Версия 1.24 Исправлена запись текста в STDOUT. |
|
|
 | |
Dimsok Участник
Сообщений : 55
Репутация : 1
 | |
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 24.04.16 22:04 |  |
| Версия 1.25 Исправлено чтение текста из STDIN. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 24.04.16 22:33 |  |
| Dimsok Чтение текста из стандартного потока я вообще не тестировал, моя вина; спасибо за сообщение об ошибке. Выложил исправленную версию на сервер. Заодно, к сожалению, пришлось отказаться от компрессии исполняемых файлов - по какой-то непонятной причине программа в сжатом виде работает неправильно, если запускать ее как конвейер в командной строке.
Однако, результат всё равно может Вас разочаровать: Ваша командная строка должна извлекать из архивов файлы форматов FB2, DOC, PDF и т.д. и пересылать их в STDOUT, а моя утилита ожидает, что STDIN будет содержать только лишь обычный текст. Программа не может распознать, что STDIN содержит электронный документ, и в моих планах нет добавления такой возможности. Это будет уж слишком хитроумно. Проще, все-таки, читать файлы с диска, определяя формат по расширению имени файла.
Вам придется изменить текст команды и распаковывать файлы на диск, прежде чем извлекать из них текст. Мне жаль, но сейчас это единственный способ. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 27.04.16 1:38 |  |
| Версия 1.26 Исправлено чтение данных из STDIN.
При чтении из STDIN формат файла автоматически определяется по содержимому потока данных. |
|
|
 | |
Dimsok Участник
Сообщений : 55
Репутация : 1
 | 27.04.16 9:20 |  |
| - Цитата :
- Исправлено чтение данных из STDIN
Вот спасибо, попозже потестирую |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 28.05.16 15:50 |  |
| Версия 1.27 Небольшие улучшения. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 02.07.16 20:28 |  |
| Версия 1.28 Добавлена возможность использования переменной %FirstLine% в шаблоне для имени файла (параметр -p). При делении документа на части переменная будет заменяться первой строкой текста из каждой части. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 16.07.16 17:17 |  |
| Версия 1.29 Исправлено извлечение текста из файлов форматов DOCX и ODT. |
|
|
 | |
Dimsok Участник
Сообщений : 55
Репутация : 1
 | 09.10.16 22:36 |  |
| Mht, сохранённые из оперы, не переводятся в текст корректно, вместо них закорючки. Пробовал в разных кодировках. Программа японского разработчика "xdoc2txt" переводит корректно. Пример файла: https://yadi.sk/d/7-YJlE2nwYMjv |
|
|
 | |
Dimsok Участник
Сообщений : 55
Репутация : 1
 | 10.10.16 1:16 |  |
| При конвертации mht в ansi (без ключа -e), txt получаются в кодировке utf8 |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 10.10.16 12:20 |  |
| Dimsok Спасибо за сообщение, постараюсь решить проблему в следующей версии. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 11.10.16 21:07 |  |
| Версия 1.31 Исправлено извлечение текста из файлов формата MHTML. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 15.10.16 15:54 |  |
| Версия 1.32 Добавлено извлечение текста из файлов формата Corel WordPerfect (*.WPD).
Утилита переименована в "blb2txt.exe".
Исправлены мелкие ошибки. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 27.10.16 21:52 |  |
| Версия 1.33 Добавлена поддержка формата PalmDoc eBooks (*.PDB). Поддерживаемые форматы PDB: PalmDOC, Palm Reader/eReader, zTXT.
Добавлена поддержка формата книг Psion/EPOC (*.TCR).
Исправлено извлечение текста из файлов формата AZW3.
Небольшие улучшения. |
|
|
 | |
Dimsok Участник
Сообщений : 55
Репутация : 1
 | 27.10.16 22:14 |  |
| Отлично, ещё Lit и Djvu добавить, и сравняется с балаболкой по количеству форматов. А там может и до Sony Lrf дело дойдёт. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 05.11.16 16:12 |  |
| Версия 1.34 Добавлено извлечение текста из файлов формата PDB (Plucker). |
|
|
 | |
Dimsok Участник
Сообщений : 55
Репутация : 1
 | 19.11.16 16:09 |  |
| Слияние файлов не выходит. С ключом -u программа сообщает об ошибке |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 20.11.16 2:18 |  |
| Dimsok Спасибо за сообщение, исправлю в следующей версии. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 26.11.16 16:19 |  |
| Версия 1.35 Добавлена возможность использования интерфейса IFilter для извлечения текста. IFilter будет использован для неизвестных программе форматов файлов.
Исправлены мелкие ошибки. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 21.01.17 15:50 |  |
| Версия 1.36 Добавлена возможность использования переменной %Number% в шаблоне для имени файла (параметр -p). Используйте переменную, чтобы поменять позицию порядкового номера внутри имени файла. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 28.01.17 16:16 |  |
| Версия 1.37 Добавлено извлечение текста из файлов формата DjVu. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 05.02.17 14:54 |  |
| Версия 1.38 Добавлено извлечение текста из файлов формата LIT. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 11.02.17 17:23 |  |
| Версия 1.39 Добавлена поддержка новых специальных символов для регулярных выражений (\U, \L, \E, \u, \l). |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 18.02.17 21:04 |  |
| Версия 1.40 Исправлено извлечение текста из файлов, когда количество файлов очень большое. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 21.03.17 20:43 |  |
| Версия 1.41 Исправлены мелкие ошибки. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 02.04.17 16:15 |  |
| Версия 1.42 Исправлено извлечение текста из файлов формата HTML. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 08.09.17 20:26 |  |
| Версия 1.43 Исправлено извлечение текста из файлов формата EPUB. |
|
|
 | |
balabolka V.I.P.
Сообщений : 1212
Репутация : 986
 | 14.09.17 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 Использовать одиночные кавычки как ограничитель строк. |
|
|
 | |
| Утилита для извлечения текста из файлов | |
|
Утилита для извлечения текста из файлов |
---|