Утилита для извлечения текста из файлов (blb2txt.exe)

Программа "Балаболка" предназначена для воспроизведения звуков человеческого голоса с использованием любого речевого синтезатора, установленного на компьютере.

Модератор: balabolka

Аватара пользователя
balabolka
V.I.P.

Утилита для извлечения текста из файлов (blb2txt.exe)

#51

Сообщение balabolka »

Версия 1.82
  • Добавлена возможность использования переменной %FileName% в шаблоне для имени файла. При извлечении текста и сохранении на диске переменная будет заменяться именем входного текстового файла в имени нового файла.
  • Добавлено распознавание формата входного документа для файлов с неизвестными расширениями.
Если имя входного файла имеет расширение, неизвестное утилите (например, INPUT.ZZZ), будут выполнены следующие шаги:
  • программа попытается распознать формат входного файла по его содержимому;
  • программа постарается найти подходящий IFilter, установленный в операционной системе;
  • если предыдущие попытки не удались, входной документ будет обработан как обычный текстовый файл.

Аватара пользователя
balabolka
V.I.P.

Утилита для извлечения текста из файлов (blb2txt.exe)

#52

Сообщение balabolka »

Версия 1.83
  • Добавлены параметры для вставки дополнительного текста в сноски и примечания при извлечении данных из файлов форматов DOCX, FB2, FB3 и ODT.
  • Добавлен параметр для указания формата входного файла. (Это может быть полезно для тех случаев, когда имя файла имеет неизвестное расширение или когда данные поступают из стандартного потока ввода.)

Аватара пользователя
balabolka
V.I.P.

Утилита для извлечения текста из файлов (blb2txt.exe)

#53

Сообщение balabolka »

Версия 1.84
  • Улучшено распознавание типов данных для формата EML.
  • Обновлено извлечение текста из файлов форматов FB2 и FB3.

Аватара пользователя
balabolka
V.I.P.

Утилита для извлечения текста из файлов (blb2txt.exe)

#54

Сообщение balabolka »

Версия 1.85
  • Добавлено извлечение текста для файлов в формате Markdown (разметка Markdown будет удалена из документа, останется только текст).

Аватара пользователя
balabolka
V.I.P.

Утилита для извлечения текста из файлов (blb2txt.exe)

#55

Сообщение balabolka »

Версия 1.86
  • Исправлено извлечение текста для файлов в формате Markdown.

Аватара пользователя
balabolka
V.I.P.

Утилита для извлечения текста из файлов (blb2txt.exe)

#56

Сообщение balabolka »

Версия 1.87
  • Небольшие улучшения.

Аватара пользователя
balabolka
V.I.P.

Утилита для извлечения текста из файлов (blb2txt.exe)

#57

Сообщение balabolka »

Версия 1.88
  • Исправлено извлечение текста из файлов формата EPUB.
  • Исправлено применение регулярных выражений к текстам на немецком языке.

Аватара пользователя
Lecron
Обыватель

Утилита для извлечения текста из файлов (blb2txt.exe)

#58

Сообщение Lecron »

balabolka писал(а):Добавлена настройка "Искать римские числа" в окно "Заменить числа словами".
Планируете ли добавить в blb2txt?
Как реализовано распознание одиночных символов, особенно "I" и "X"? Много ли ложных срабатываний?

Аватара пользователя
balabolka
V.I.P.

Утилита для извлечения текста из файлов (blb2txt.exe)

#59

Сообщение balabolka »

Lecron писал(а):
30 мар 2020 15:21
Планируете ли добавить в blb2txt?
Нет, так как замена чисел словами в "Балаболке" выполняется в интерактивном режиме. Для автоматической замены надо использовать словари.
Lecron писал(а):
30 мар 2020 15:21
Как реализовано распознание одиночных символов, особенно "I" и "X"?
Никак не реализовано: "Балаболка", встретив такой символ в тексте, предложит заменить его словом. Решение принимает человек.

Аватара пользователя
Lecron
Обыватель

Утилита для извлечения текста из файлов (blb2txt.exe)

#60

Сообщение Lecron »

Не знаю, ошибка это fb2-файла или программы, но если заголовок файла содержит

Код: Выделить всё

<FictionBook xmlns="http://www.gribuser.ru/xml/fictionbook/2.1" 
текст не извлекается. Замена 2.1 на 2.0 все исправляет.

Аватара пользователя
balabolka
V.I.P.

Утилита для извлечения текста из файлов (blb2txt.exe)

#61

Сообщение balabolka »

Lecron писал(а):
15 апр 2020 11:03
Замена 2.1 на 2.0 все исправляет.
Спасибо за информацию, учту это в следующей версии программы.

Подскажите, где Вы нашли такие книги FB2 (или в каком редакторе они были созданы).

Аватара пользователя
Lecron
Обыватель

Утилита для извлечения текста из файлов (blb2txt.exe)

#62

Сообщение Lecron »

balabolka писал(а):
15 апр 2020 16:36
Подскажите, где Вы нашли такие книги FB2 (или в каком редакторе они были созданы).
Вряд ли поможет. КУРЧЕНКО ВЛАДЛЕНА - Королева ордена, но скачана не самиздата, а с флибусты. Дата создания — 2014 год. Может софт уже починили.
Встречаю ошибку извлечения нечасто, но бывает. Обычно достаточно почистить заголовок от "лишних" полей. Даже не углублялся в детали, что могло конфликтовать. А сейчас не прокатило.

Аватара пользователя
balabolka
V.I.P.

Утилита для извлечения текста из файлов (blb2txt.exe)

#63

Сообщение balabolka »

Lecron
Спасибо за ссылку. Скачал эту книгу, буду разбираться.

Рекомендую всем всегда присылать мне те книги, из которых "Балаболка" не может извлечь текст. Только так можно выявить ошибки в алгоритмах извлечения текста.

Аватара пользователя
balabolka
V.I.P.

Утилита для извлечения текста из файлов (blb2txt.exe)

#64

Сообщение balabolka »

Версия 1.89
  • Исправлено извлечение текста из файлов формата FB2.

Аватара пользователя
Lecron
Обыватель

Утилита для извлечения текста из файлов (blb2txt.exe)

#65

Сообщение Lecron »

Спасибо за исправление. Прогнал ~1500 книг своего архива, ни одного сбоя.

Несколько предложений на перспективу развития.
1.Убрать отдельные ключи для работы stdin/out, используя стандартное обозначение знаком дефиса "-f -" и "-out -". А еще более привычно "-i" и "-o" :-), а файл там или пайп, дело десятое.
2.Следуя принципу единичной ответственности, разбить утилиту на две. Для преобразования текста, собственно blb2txt, и для работы с фрагментами, возможно blb2split. Будет легче парсить и комбинировать параметры, а пользователям легче разбираться.
3.Если это выходит за рамки, хотя бы выделите ключи разбиения в отдельный визуальный блок в help-е, похожий с блоком remove, csv, eml

PS. Будет повод сбросить большое число минорной версии и перейти к 2.0 :-)

Аватара пользователя
balabolka
V.I.P.

Утилита для извлечения текста из файлов (blb2txt.exe)

#66

Сообщение balabolka »

Lecron
Обещаю подумать над Вашими предложениями, но сразу могу сказать, что не стану делить утилиту на две отдельные программы. Это даже не обсуждается.

speeck
Обыватель

Утилита для извлечения текста из файлов (blb2txt.exe)

#67

Сообщение speeck »

Спасибо за программу, очень удобно работать!
Небольшие пожелания, может быть вы решите их добавить:
1. Сделать возможно указания порядка Автор-Название. Сейчас идет название книги, ниже автор, хотелось бы также иметь возможность, чтобы сначала следовало имя автора, затем название книги. На мой взгляд так даже логичнее.
2. Сделать возможность указания шаблона вставки примечаний. Сейчас, если сделать автоматическую вставку примечаний, их затем приходится вручную править (я предпочитаю слышать когда начинается примечание и когда заканчивается, так удобнее слушать книги).
Приходится искать все [ и ], исправлять их на "Начало примечания", "Конец примечания". Само по себе это не сложно, сложности появляются, когда в книгах кроме примечаний в [] идут просто вставки текста, которые не нужно исправлять. Вот здесь можно засесть на долго, корректируя вручную.
Также в примечаниях, на мой взгляд, не нужны цифры, какой в них смысл? Мы же не ищем их в конце книги. Достаточно было бы обозначения "Начало примечания", "Конец примечания" (крайне желательно с правкой шаблона, т.к. в разных синтезах их идеально указывать по разному).
Надеюсь услышите голос вопиющего. Всех благ.

Аватара пользователя
balabolka
V.I.P.

Утилита для извлечения текста из файлов (blb2txt.exe)

#68

Сообщение balabolka »

speeck писал(а):
06 май 2020 11:58
Сделать возможно указания порядка Автор-Название.
Как я понял, речь идет о книгах формата FB2, об извлечении аннотации из файла.

Идея Ваша понятна. Да, сейчас жёстко задан набор полей и их порядок при извлечении из FB2-файла: сначала название, затем автор и описание книги. Почему первым идет название книги, полагаю, очевидно: мои программы умеют давать названия новым файлам (текстовым и звуковым), используя первую строку текста; так как у одного автора может быть несколько произведений, то лучше включать в имя нового файла название книги, а не имя ее автора.

Сейчас мне бы не хотелось добавлять в свою утилиту новые параметры для настройки способа извлечения аннотаций из файлов FB2 и FB3. В этих аннотациях много разных полей: пришлось бы перечислять их где-то в документации, придумывать какие-то обозначения, придумывать способ форматирования извлеченных аннотаций. Например, напомню, что в аннотации файла формата FB2 имя, отчество и фамилия автора - это три разных поля, так что информацию об авторе можно записать и как "Лев Толстой", и как "Лев Николаевич Толстой", и как "Толстой, Лев Николаевич". (Кстати, авторов может быть несколько или не быть совсем.)

Информация из аннотации файла FB2 не кажется мне настолько важной, что ради нее надо усложнять программу. Утилита и так имеет много параметров.

Обещаю еще подумать над этим.
speeck писал(а):
06 май 2020 11:58
Сделать возможность указания шаблона вставки примечаний.
А это как раз подтверждение того, о чем писал выше: в программе так много настроек, что пользователи иногда повторно просят реализовать то, что уже есть в параметрах.
--insert-note-begin текст или -inb текст
Вставить слова в начало сносок и примечаний внутри текста (например: Примечание редактора.). Параметр используется при извлечении текста из файлов форматов DOCX/FB2/FB3/ODT.

--insert-note-end текст или -ine текст
Вставить слова в конец сносок и примечаний внутри текста (например: Конец примечания.). Параметр используется при извлечении текста из файлов форматов DOCX/FB2/FB3/ODT.
Насчет чисел внутри примечаний: это сложный вопрос. Кому-то они не нужны, так как рядом с числом есть полный текст примечания. Кто-то, наоборот, требует, чтобы извлеченный текст был похож на исходный текст в электронный книге, с номерами примечаний. Большинству пользователей всё равно. Сейчас я не готов добавить какой-либо специальный параметр для всего этого.

Если задан текст для вставки в начало примечания, то номер примечания не извлекается.

speeck
Обыватель

Утилита для извлечения текста из файлов (blb2txt.exe)

#69

Сообщение speeck »

balabolka писал(а):
06 май 2020 14:03
Сейчас мне бы не хотелось добавлять в свою утилиту новые параметры для настройки способа извлечения аннотаций из файлов FB2 и FB3
Спасибо, понял, в целом согласен с Вами, нагромождение настроек только усложняет систему, а не делает её удобной
balabolka писал(а):
06 май 2020 14:03
в программе так много настроек, что пользователи иногда повторно просят реализовать то, что уже есть в параметрах
Вот те раз! Вероятно я работал со старой версией программы, т.к. не помню таких настроек. Спасибо!

Аватара пользователя
balabolka
V.I.P.

Утилита для извлечения текста из файлов (blb2txt.exe)

#70

Сообщение balabolka »

Версия 1.90
  • Для извлечения текста из старых документов, созданных в Microsoft Word 6.0/95, используется текстовый редактор LibreOffice Writer (если офисный пакет LibreOffice установлен на компьютере).

Аватара пользователя
balabolka
V.I.P.

Утилита для извлечения текста из файлов (blb2txt.exe)

#71

Сообщение balabolka »

Версия 1.91
  • Обновлено извлечение текста из файлов формата EPUB.

speeck
Обыватель

Утилита для извлечения текста из файлов (blb2txt.exe)

#72

Сообщение speeck »

balabolka писал(а):
06 май 2020 14:03
--insert-note-begin текст или -inb текст
Вставить слова в начало сносок и примечаний внутри текста (например: Примечание редактора.). Параметр используется при извлечении текста из файлов форматов DOCX/FB2/FB3/ODT.
--insert-note-end текст или -ine текст
Вставить слова в конец сносок и примечаний внутри текста (например: Конец примечания.). Параметр используется при извлечении текста из файлов форматов DOCX/FB2/FB3/ODT.
Здравствуйте! Почему-то кракозябры вместо кириллицы. Вот например как прописалось "Конец примечания":
.╨Ъ╨╛╨╜╨╡╤Ж ╨┐╤А╨╕╨╝╨╡╤З╨░╨╜╨╕╤П.
Программу запускаю через cmd-файл, кодировку в самом файле менял на Utf8 и Ansi.
Полный вызов выглядит так:
blb2txt -f "d:\Audbooks\*.fb2" -v "d:\Audbooks\" -b -e utf8 -ap -sn -in 1 -inb "Примечание: " -ine ".Конец примечания."

speeck
Обыватель

Утилита для извлечения текста из файлов (blb2txt.exe)

#73

Сообщение speeck »

speeck писал(а):
25 май 2020 18:04
Почему-то кракозябры вместо кириллицы. Вот например как прописалось "Конец примечания":
.╨Ъ╨╛╨╜╨╡╤Ж ╨┐╤А╨╕╨╝╨╡╤З╨░╨╜╨╕╤П.
Программу запускаю через cmd-файл
Вместо cmd сделал простой ярлык, и добавил все параметры туда, теперь все в норме.
В целом вопрос закрыт, но можно иметь в виду, что через командную строку может не корректно передавать кириллицу, либо нужны доп. ковыряния, что наверное и не нужно.

Аватара пользователя
balabolka
V.I.P.

Утилита для извлечения текста из файлов (blb2txt.exe)

#74

Сообщение balabolka »

speeck писал(а):
25 май 2020 18:04
Почему-то кракозябры вместо кириллицы.
Это не имеет отношения к моей программе. Ищите в интернете, как решить проблему с передачей кириллицы в командной строке. Например:
Как добиться правильной работы пакетных файлов (*.bat, *.cmd), содержащих кириллические пути?

Насколько я помню, можно добавить в начало BAT-файла команду CHCP для изменения текущей кодовой страницы:

Код: Выделить всё

@echo off
chcp 1251
balabolka -rn "Это русский текст"
Это поможет.

speeck
Обыватель

Утилита для извлечения текста из файлов (blb2txt.exe)

#75

Сообщение speeck »

balabolka писал(а):
06 май 2020 14:03
Почему первым идет название книги, полагаю, очевидно: мои программы умеют давать названия новым файлам (текстовым и звуковым), используя первую строку текста; так как у одного автора может быть несколько произведений, то лучше включать в имя нового файла название книги, а не имя ее автора.

Сейчас мне бы не хотелось добавлять в свою утилиту новые параметры для настройки способа извлечения аннотаций из файлов FB2 и FB3. В этих аннотациях много разных полей: пришлось бы перечислять их где-то в документации, придумывать какие-то обозначения, придумывать способ форматирования извлеченных аннотаций. Например, напомню, что в аннотации файла формата FB2 имя, отчество и фамилия автора - это три разных поля, так что информацию об авторе можно записать и как "Лев Толстой", и как "Лев Николаевич Толстой", и как "Толстой, Лев Николаевич". (Кстати, авторов может быть несколько или не быть совсем.)
Здравствуйте. Насчет возможности настройки отображения имени автора. Все же было бы удобно иметь таковую, по меньшей мере для книг формата FB2. Связано это, в том числе, с тем, что имя автора часто дублируется в начале файла, в полях first-name / last-name, а затем уже непосредственно в тексте, перед самым началом:
<body>
<title>
<p>Стивен Кинг</p>.
Я посмотрел справку по Вашей программе, есть предложение сделать настройку, подобно настройки аннотаций, параметр:
--include-notes <число> или -in <число>.
Как вариант решения:

Код: Выделить всё

--include-author-name <число> или -ia <число>
   Добавить имя автора из файлов форматов FB2 (/FB3?). Возможные значения для числового параметра:
   0 - не добавлять
   1 - сначала идет имя, затем фамилия (first-name / last-name)
   2 - сначала идет фамилия, затем имя (last-name / first-name)
Лично я почти в каждой книге удаляю лишнюю пару ФИО, а кроме этого еще переставляю местами Имя и Фамилию. Впрочем, сейчас хочу написать для этого простой скрипт, но решил посоветоваться с Вами, возможно получится реализовать это в рамках самой утилиты.

Аватара пользователя
balabolka
V.I.P.

Утилита для извлечения текста из файлов (blb2txt.exe)

#76

Сообщение balabolka »

speeck
Может быть, Вам стоит просто игнорировать аннотацию в книге FB2/FB3 (параметр --skip-summary)? Будет извлекаться только содержимое книги.

В "Балаболке" аннотация для книг извлекается по умолчанию только потому, что так же поступал и скрипт для извлечения текста, написанный разработчиком формата FB2 Дмитрием Грибовым. Его скрипт вставлял из аннотации в начало текста ФИО автора (имя, отчество, фамилия), название книги и ее описание (а если книга входит в состав цикла книг, то еще и название цикла). Я просто сделал также, для единообразия.

Предложенный Вами параметр добавить несложно, но так ли уж он нужен? Об этом я и писал в своем предыдущем сообщении: можно добавить много параметров для настройки показа текста, извлеченного из аннотации, но это не то, чем бы мне хотелось заниматься. Если пользователя не устраивает, как программа показывает аннотацию по умолчанию, можно просто не извлекать аннотацию вообще. Иначе можно настраивать ее показ до бесконечности (в спецификации для аннотации два десятка полей).

Кстати, а почему Вам так важно настроить показ ФИО? Я описал ситуацию с ФИО для примера, но мне лично способ записи имена автора не важен. Я бы не стал добавлять отдельный специальный параметр для своих нужд. (К тому же, надо дополнительно объяснять в документации, что параметр игнорирования аннотации и параметр настройки показа имени автора связаны между собой.)

Вывод. Согласен с Вами, что теоретически было бы неплохо иметь какой-то способ для настройки показа информации, извлеченной из аннотации книг FB2. Но пока мне не удалось найти элегантного решения: надо либо добавлять новые параметры для настройки, либо изобретать какой-то шаблон, либо что-то еще. Готов выслушать чужие идеи по этому поводу, так как, повторюсь, сам я не придумал хорошего варианта реализации.

speeck
Обыватель

Утилита для извлечения текста из файлов (blb2txt.exe)

#77

Сообщение speeck »

balabolka писал(а):
27 май 2020 02:25
В "Балаболке" аннотация для книг извлекается по умолчанию только потому, что так же поступал и скрипт для извлечения текста, написанный разработчиком формата FB2 Дмитрием Грибовым. Его скрипт вставлял из аннотации в начало текста ФИО автора (имя, отчество, фамилия), название книги и ее описание (а если книга входит в состав цикла книг, то еще и название цикла). Я просто сделал также, для единообразия.
Не знал про эту особенность, да, нужно проверить, сегодня займусь этим. Хотя аннотации (именно аннотации, без сопутствующего) иногда вполне годные и их неплохо было бы оставить.
balabolka писал(а):
27 май 2020 02:25
Кстати, а почему Вам так важно настроить показ ФИО?
Не знаю даже как сказать, в целом наверное не так важно, но оно сейчас есть, и я хотел это поднастроить. Еще раз повторюсь - для меня не составляет трудности состряпать для этого простейший скрипт, но если это можно было бы сделать в рамках единой программы, которая уже покрывает 98% потребностей, так было бы просто удобнее.

Аватара пользователя
balabolka
V.I.P.

Утилита для извлечения текста из файлов (blb2txt.exe)

#78

Сообщение balabolka »

speeck
Попробую добавить такой параметр (вместо --skip-summary).

Код: Выделить всё

--extract-summary <число> или -es <число>
  Извлечь аннотацию из файлов форматов FB2/FB3 и вставить в начало текста.
  Возможные значения для числового параметра:
  0 - не извлекать аннотацию
  1..4 - различные варианты форматирования текста аннотации
Варианты будут определять способы размещения имени автора и названия книги друг относительно друга.

1-ый вариант:

Код: Выделить всё

Горе от ума
Александр Грибоедов
2-ой вариант:

Код: Выделить всё

Александр Грибоедов
Горе от ума
3-ий вариант:

Код: Выделить всё

Александр Грибоедов. Горе от ума
4-ый вариант:

Код: Выделить всё

Горе от ума
Описание книги будет извлекаться для всех вариантов, от 1 до 4.

Аватара пользователя
Lecron
Обыватель

Утилита для извлечения текста из файлов (blb2txt.exe)

#79

Сообщение Lecron »

balabolka писал(а):
27 май 2020 11:44
--extract-summary <число> или -es <число>
Цифровое кодирование не дружелюбно. Предлагаю так

Код: Выделить всё

--extract-summary [default|empty|template]
Где
default - нынешнее поведение (по умолчанию)
empty - не извлекать данные
template, шаблонная строка в стиле %first-name% - %last-name%
Параметр повторяемый. Повторение означает следующую строку в txt файле. Например %annotation%. Или предусмотреть разделитель строк в задании шаблона.

Аватара пользователя
balabolka
V.I.P.

Утилита для извлечения текста из файлов (blb2txt.exe)

#80

Сообщение balabolka »

Lecron
Я же и писал как раз о том, что не хочу реализовывать никаких сложных шаблонов для такой мелкой опции. Оно того не стоит: только добавит проблем и пользователям, и мне.

Сейчас готов добавить несколько заранее заданных вариантов оформления текста, извлеченного из аннотации. Это максимум, чем согласен заняться.

Ответить

Вернуться в «Балаболка»