[{{mminutes}}:{{sseconds}}] X
Пользователь приглашает вас присоединиться к открытой игре игре с друзьями .

Форум «Программное обеспечение» / Функция парсера книг

Fenex Сообщение #1 13 января 2019 в 00:12
Клавомеханик
48
Выложена в доступ функция, разбивающая книги на отрывки, а также необходимый инструмент для изменения и тестирования новых алгоритмов.

Установка, настройка и запуск описаны в самом репозитории: https://github.com/klavogonki-dev/vocbook-split

Попробуйте свои силы в улучшении алгоритма!
Phemmer Сообщение #2 13 января 2019 в 13:43
Супермен
71
http://klavogonki.ru/u/#/231371/journal/56...bf62de3768b4567 тут список самых частых замен, которые следует произвести над заливающейся книгой. Может пригодится.
Сударушка Сообщение #3 14 января 2019 в 15:47
Маньяк
58
К сожалению, программировать не умею.
Могу лишь сформулировать некоторые моменты, которые, на мой взгляд, было бы неплохо, чтобы были реализованы.

Что касается окончания отрывков на знаках отличающихся от точки и их корректного отображения, не знаю, вероятно, это проблема не парсера книг, а в целом КГ.
Очень хотелось бы, чтобы она была решена.
Если этот момент преодолен быть не может, при делении на знаках ? ! ... ?.. !..
при заливке словарей-книг, добавлять принудительную точку в конце отрывка для правильного отображения знака препинания.
________________________________________________

Реализовать функцию премодерации книг до осуществления заливки.
Сообщать о следующих моментах:
1) В случае наличия Аннотации в начале, Примечаний (notes) в конце автору заливки предлагать их убрать.
2) В заливаемой книге количество символов незначительно (менее 10%) недостает до книг 100к, 300к, 600к, 1000к.
3) Предоставление всех случаев неотображаемых в Публичных словарях символах (в контексте встречаемых соседних слов).
________________________________________________

Включить символ восклицательного знака в символы, на которых может заканчиваться отрывок.
Для книг на английском языке неплохо бы и кавычки, если это конец абзаца, т. к. из-за особенности пунктуации в английском языке книги делятся на отрывки весьма неравномерно.
________________________________________________

В случае, если предложения (отрывки) слишком большие, производить принудительное деление на отрывки по каким-либо из этих знаков:
?» !» ...» ; ,

с добавлением точки в конце, если данный момент в книгах ли, на КГ ли не может быть преодолен.
________________________________________________

Исключить перенос в разные отрывки инициалов, сокращений типа т. д., т. п., т. е. и др.
Для английского языка исключить окончание отрывка на сокращениях Mr., Mrs., Dr. и возможно, других.

________________________________________________

При разбиении на отрывки исключить случаи деления, когда новый отрывок начинается с
"– слово с маленькой буквы" во избежание разрыва части диалога.
А также "слово с маленькой буквы".

Пример:
– Правда? Сразу видно, что вы не здешний!
новый отрывок
– проговорил доктор. – Завтракать будете?

Правильный вариант разбиения:
– Правда? Сразу видно, что вы не здешний! – проговорил доктор.
новый отрывок
– Завтракать будете?


Аналогично, было бы хорошо, чтобы при разбиении не отрывались от абзаца отрывки размером, скажем, менее 15 символов.

Пример:
– Вязовая улица, – пробормотал он. И оттолкнулся еще раз. – Пересечение с Мерцающей.
новый отрывок
Да.
Он вернулся.
До улицы Паточной Шахты было рукой подать...

Правильный вариант разбиения:
– Вязовая улица, – пробормотал он. И оттолкнулся еще раз. – Пересечение с Мерцающей. Да.
новый отрывок
Он вернулся.
До улицы Паточной Шахты было рукой подать...
Последний раз отредактировано 14 января 2019 в 15:48 пользователем Сударушка
Сударушка Сообщение #4 14 января 2019 в 15:49
Маньяк
58
Позже попробую сформулировать описательным алгоритмом, как делить книги на отрывки.

Для этого, Fenex, прошу ответить на несколько вопросов.

1. Можно ли ожидать решения данной проблемы.
Что касается окончания отрывков на знаках отличающихся от точки и их корректного отображения, не знаю, вероятно, это проблема не парсера книг, а в целом КГ.
Очень хотелось бы, чтобы она была решена.


2. Планируется ли реализация возможности чтения книг в формате, желаемом клавогонщиками, - 5-ти, 10-ти минутных марафонов?

3. Возможна ли при наборе книги реализация отображения части предыдущего текста (конец последнего отрывка), а также части последующего (начала следующего).
Последний раз отредактировано 14 января 2019 в 17:06 пользователем Сударушка
Fenex Сообщение #5 15 января 2019 в 03:09
Клавомеханик
48
Сударушка писал(а):
1. Можно ли ожидать решения данной проблемы.
Что касается окончания отрывков на знаках отличающихся от точки и их корректного отображения, не знаю, вероятно, это проблема не парсера книг, а в целом КГ.
Очень хотелось бы, чтобы она была решена.

Алгоритм разбивки должен реализовывать адекватную разбивку книги без учёта каких-либо сторонних факторов, за исключением особых модификаторов, например, приватный/публичный словарь. В общем, если завершать отрывки знаками "!", "?", "." логично, то следует так и делать.

Сударушка писал(а):
2. Планируется ли реализация возможности чтения книг в формате, желаемом клавогонщиками, - 5-ти, 10-ти минутных марафонов?

Да, но разбивать на отрывки всё равно надо.

Сударушка писал(а):
3. Возможна ли при наборе книги реализация отображения части предыдущего текста (конец последнего отрывка), а также части последующего (начала следующего).

В теории возможно сделать, но пока не будет переделываться страница заезда /g/, говорить об этом рано.
Последний раз отредактировано 15 января 2019 в 13:12 модератором Fenex
legitimate_GONE Сообщение #6 20 января 2019 в 18:31
Супермен
30
Сам книги не загружал и не набирал, может поэтому не понимаю.. есть рабочий алгоритм, в чем он должен быть усовершенствован?
С чем он не справляется?
Сударушка Сообщение #7 20 января 2019 в 19:05
Маньяк
58
legitimate писал(а):
Сам книги не загружал и не набирал, может поэтому не понимаю.. есть рабочий алгоритм, в чем он должен быть усовершенствован?
С чем он не справляется?

Как минимум с перечисленными моментами.
А также в алгоритм может быть встроена предварительная подготовка книги, как сказано здесь.
Сейчас она осуществляется не всеми заливающими книги, что приводит иногда к косякам в книгах.
legitimate_GONE Сообщение #8 21 января 2019 в 01:03
Супермен
30
Для предварительной подготовки книги Phemmer всё что нужно сделал (расписал пункты и написал программу) эту программу переписать на php очень легко.
С 1-6 пункт использовать str_replace для пробелов и переносов, с 7-11 регулярку для поиска нестандартных символов (опять же готова). Поэтому наверняка эта проверка предварительная будет включена в функционал сайта. Тут проблем возникнуть не должно.


Сударушка Сообщение #9 21 января 2019 в 10:30
Маньяк
58
legitimate писал(а):
Для предварительной подготовки книги Phemmer всё что нужно сделал (расписал пункты и написал программу) эту программу переписать на php очень легко.

Эта часть на php переписана Наконец-то достаточно давно http://www.mobintech.ru/cleaner/.
Просто я ответила на твой вопрос.

В части деления книг кроются основные моменты, требующие решения.
Учитывая, что пользоваться памяткой памяткой Phemmer'а труда особого не составляет.
Очевидно, что мой список не полный.
Набирающие книги, вероятно, могли бы его пополнить.
Последний раз отредактировано 21 января 2019 в 10:34 пользователем Сударушка
legitimate_GONE Сообщение #10 22 января 2019 в 12:09
Супермен
30
при клонировании много нужных файлов не установилось, лучше вручную устанавливать
Последний раз отредактировано 22 января 2019 в 18:36 пользователем legitimate_GONE
Fenex Сообщение #11 22 января 2019 в 18:02
Клавомеханик
48
legitimate писал(а):
настраиваю эти 3 пункта, не работает

"эти" - это какие?

`parser.php` должен быть вручную скопирован из папки /parsers/ (любой php файл на выбор)
`autoloader.php` должен быть на месте в обязательном порядке, вместе с другими классами.

Об этом написано в инструкциях к запуску в README.md. step-by-step делал?
legitimate_GONE Сообщение #12 24 января 2019 в 16:17
Супермен
30
Что klavogonki.php что sample.php - делают одно и тоже - делят книгу на отрывки, какой еще нужен алгоритм?) что бы это делать тремя способами?)
Количество символов на которые делить отрывки регулируется (сейчас на сайте это фиксированная длина?), код убирающий неправильные символы и лишние пробелы тоже есть.
Последний раз отредактировано 24 января 2019 в 16:17 пользователем legitimate_GONE
КРАСНОРЕЧИВЫЙ Сообщение #13 24 января 2019 в 17:06
Новичок
15
Sul поделил бы все на /0

Чтобы писать в форуме, нужно зарегистрироваться.


Связаться
Выделить
Выделите фрагменты страницы, относящиеся к вашему сообщению
Скрыть сведения
Скрыть всю личную информацию
Отмена