токенизаторы и анализаторы могут подойти?
"Труба 32412 d50 L 3 1,5" разбиралась на следующие токены:
Буду писать по словам
Труба: "Тр", "Тру", "Труб", "Труба", "ру", "руб", "руба", "уб", "уба", "ба"
32412: "32","324","3241","32412","24","241","2412","41","412","12"
d50: "d","50"
L: "L"
3: "3"
1,5 : "1,5"
По шагам:
1. Фраза делится на части по пробелам и разделительным знакам препинания.
2. Все эти части сохраняются как отдельные токены.
3. Дальше эти части ещё делятся на токены в зависимости от того из каких символов они состоят:
3.1 Если токен состоит только из букв и его длина > 1, то к нему применяется ngram от 2 до 6.
3.2 Если токен состоит только из цифр и его длина > 1, то к нему применяется ngram от 2 до 6.
3.3 Если токен вещественное число, то сохраняем целиком.
3.4 Если токен состоит из Букв и цифр, то разделяем его например DN500 -> "DN" и "500" и применяем к каждому из получившихся токенов последовательно правила 2., 3.1, 3.2, 3.3, 3.4
https://cgit.freedesktop.org/libreoffice/dictionaries/tree/
Обсуждают сегодня