LTAL, проект: Word Break
Идея: Проектирайте и внедрете в Python алгоритъма на Knuth-Liang за автоматично пренасяне на тире. Трябва да напишете програма, която чете списък с думи (например текст) и отпечатва тези думи с указанието на тирета, които се считат за законни, напр.:

Като се има предвид, че препознаването на присъщото достойнство на всички членове на човешкото семейство и на техните равни и неотменни права представлява основата на свободата, справедливостта и мира в света,
Като се има предвид, че пренебрегването и пренебрегването на правата на човека са довели до актове на бар-ба-ри, които револтират съзнанието за хуманност и че появата на свят, в който хората ще бъдат свободни да говорят и вярват, безплатно от терор и половинчатост, е провъзгласена за най-висшата пи-рация на човека,
Като се има предвид, че е от съществено значение правата на човека да бъдат защитени от върховенството на закона, така че човек да не бъде ограничен, с най-голямо уважение, на бунта срещу тиранията и опозицията,
Като се има предвид, че е от съществено значение да се сътрудничи за развитието на приятелски отношения между нациите,
Като се има предвид, че в Хартата народите на ООН са провъзгласили своята вяра в основните човешки права, в достойнството и в ценността на човешката личност, в равенството на правата на мъжете и жените и че са решили да се преразгледа, за да се направят просоциалните и да се наложат по-добри условия на живот при по-голяма свобода, .
За вашите тестове вземете някои литературни текстове на френски език, по които сме работили, различни от "Декларацията". Ако желаете, сравнете решението си с резултата, предоставен от JavaScript, споменат по-долу. Някои малки разлики може да продължат, няма да обработвате изключения.
Въведение
Ето теста. Променете ширината на страницата, проверете как се променя запълването на реда. (Тук системата за пренасяне на символи вмъква HTML "условен тире" в думите:, видима само когато се случва пренасянето).
Техниката е сравнително сложна, тъй като правилата за преноса често са разнородни, фонетични, морфологични и етимологични (семантични), с няколко изключения. В италианския език доминира доста механичното разделение на срички, еуфонично (отрязано преди съгласна). Но на полски или френски семантиката на фрагментите от думи е по-важна от сричките и правилата са повече от десет пъти по-големи.
Модели от Лианг
Локално правило може да бъде обезсилено от друго: трансамериканско, но трансакционно и транспортерно. След това: mas-to-donte apos-trophe, но de-struc-tu-rer (и според някои „апостроф“ е бил лошо нарязан, тъй като „апо“ и „строфа“ са морфологични образувания.)
Идеята е да се събере (ръчно или полуавтоматично) определен брой (десетки или хиляди.) От шаблони: комбинации от букви, където намираме, разпръснати, малки цели числа: 1, 2, 3. Липсата на число е равно на нула. Нечетно число означава, че изрязването е разрешено, четно число: забранено. Ако моделите пречат (няколко декларирани по този начин комбинации са с дума, на едно и също място - по-големият брой „печели“).