Сплит урду слова на основе несуществующего пространства

У меня есть слово урду "لاعلم" и более похожие слова. Как я могу разделить слова, которые я получаю "لا" и "علم" отдельно в массиве? Я пытался преобразовать слова в символы Юникода, но не могу определить разрыв между "لا" и "علم".

Английские слова могут быть легко разделены на основе пробелов, но я застрял на разделении слов урду, где нет пробелов.

1 ответ

Там нет места, потому что его единственное слово означает "невежественный". На самом деле, разделенные "لا" и "علم" ничего бы не значили.

Пробел вставлен в урду (и арабский шрифт) для практической необходимости разграничить слова, когда шрифт автоматически лигатурирует его со смежными символами. Единственный способ отменить лигатуру - вставить лишние пробелы между символами. Технически, ZERO WIDTH NON-JOINER (U+200C) как раз для этой цели, но люди не спешат учиться, и пространство легко вставить.

Есть некоторые символы, которые не соединяются со следующими буквами, например, "ا" не соединяется ни с одним последующим символом, но может с предшествующим символом, таким как "ل", образовывать лигатуру "لا". Вы можете использовать этот список символов (те же правила для арабского языка) и написать собственный тонизатор, который оканчивает слово после символов "Right Joining", ZWNJ или пробела.

Другие вопросы по тегам