В октябре 2019 года на немецкоязычном ИТ-портале был опубликован отчет о 70-летней истории обработки текстов heise.de . На мой взгляд, очень интересно. Удивительно, как все начиналось и какие возможности у нас есть сегодня. В повседневной работе я часто использую Microsoft Word. Кроме того, я поклонник простого текста ASCII и Markdown.
Благодаря статье я вспомнил кое-что из своей работы в свободное время по интеллектуальному анализу текста. В то время я работал над реализацией алгоритма Porter-Stemmer для немецкого языка в ABAP. Кроме того, я также внедрил очень простой алгоритм расстановки переносов для автоматического разделения немецких слов.
Такие алгоритмы расстановки переносов широко использовались. Поскольку в прошлом было мало свободного места на диске. Поскольку в некоторых случаях они не дают хороших результатов, насколько я знаю. Сегодня используются комплексные словари со всеми комбинациями.
Поскольку алгоритм не очень сложный, вот выдержка. Полный исходный код можно найти на GitHub (проверьте abapGit). В качестве подсказки: некоторые инструкции типа “DATA (current_character)” в сочетании с инструкцией DO не рекомендуются руководством по стилю Clean ABAP.
[..] DATA(word_length) = strlen( word_to_separate ). DATA(current_position) = word_length - 1. DO. IF current_position
Некоторые тесты быстро показывают слабые места в буквосочетаниях “sch”. “ss” (“β”) или “ck”.
Таким образом, все еще есть большой потенциал для улучшения
В чем преимущество алгоритма? С одной стороны, это приятное упражнение для студентов и стажеров. Особенно если вы обеспечиваете точность своих результатов с помощью модульных тестов и пытаетесь устранить недостатки. Как показано выше. Потому что тогда у вас есть небольшая закрытая тема. Которую вы можете проработать в течение нескольких часов.
С другой стороны, это еще раз напоминает нам всем о технических возможностях. Которые мы имеем сегодня. В SAPUI5 существует стандартное решение для расстановки переносов для управления текстом. Я еще не работал с ним. Но звучит интересно.
В этом смысле. Счастливого взлома и спасибо за чтение
Майкл
P. S.: Если алгоритм не представляет интереса. Вы также можете взглянуть на этот генератор изображений ASCII.