Функция tokenize работает неправильно
Код:
from razdel import tokenize
[_.text for _ in tokenize("стяжкa нейлоновая под винт")]
Вывод
['стяжк', 'a', 'нейлоновая', 'под', 'винт']
Возможно ли исправить эту проблему?
Да, я могу добавить это слово в исключения, но если таких слов будет много, что можно придумать?
Этот метод токенизации мне нравится, так как он может отделять токены так:
[_.text for _ in tokenize("привет100")]
Вывод:
['привет', '100']
Ответы (2 шт):
Автор решения: Сергей
→ Ссылка
Буква а набрана в английской раскладке на клавиатуре, замените на а в русской раскладке и все заработает нормально.
Автор решения: CrazyElf
→ Ссылка
Хотел ещё вчера дать ответ, но вопрос был удалён. Как понять, что с вашим текстом что-то не так - проверить коды символов. Видно, что в первом слове последняя буква английская, а не русская:
for x in "стяжкa нейлоновая под винт":
print(f'{ord(x):>4}', x, '!!!' if ord(' ') < ord(x) < ord('А') else '')
Вывод:
1089 с
1090 т
1103 я
1078 ж
1082 к
97 a !!!
32
1085 н
1077 е
1081 й
1083 л
1086 о
1085 н
1086 о
1074 в
1072 а
1103 я
32
1087 п
1086 о
1076 д
32
1074 в
1080 и
1085 н
1090 т