snakers4 / russian_stt_text_normalization

Russian text normalization pipeline for speech-to-text and other applications based on tagging s2s networks

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Окончания чисел

Oktai15 opened this issue · comments

from normalizer import Normalizer
 
text_list = [
    'в 23 кабинете', 
    'разделить на 2 части', 
    'нет 2 части', 
    'я хочу попасть в 156 квартиру'
]
norm = Normalizer()
 
results = [norm.norm_text(text) for text in text_list]
print(results)

Код выше выдает:

[
    'в двадцать три кабинете', 
    'разделить на два части', 
    'нет два части', 
    'я хочу попасть в сто пятьдесят шесть квартиру'
]

Часть примеров взяты из https://habr.com/ru/post/491260 -- возможно не тот pretrained выложен?

Это нормально, сетка плохо отрабатывает кейсы, с которыми не встречалась в трейне.
Т.е. 23 мая она отработает нормально, даже если никогда не видела точно такого же сочетания, но выучила, что перед мая всегда идёт порядковое числительное.

Конкретно, с вашими примерами сетка не встречалась, но соглашусь, что N кабинет/квартира - это очень частотный кейс. Думаю, стоит добавить его в следующий релиз.
Будет круто, если найдёте ещё парочку таких примеров и отпишитесь.

Часть примеров взяты из статьи

Верно, эти примеры публиковались в разделе про сложность общей задачи, сетка вполне может на них ошибаться.
Честно говоря, я не уверена, что даже идеальный seq2seq когда-нибудь сможет отличить 2 части - второй части от 2 части - две части, для этого нужно понимание языка.

seq2seq когда-нибудь сможет отличить 2 части - второй части от 2 части - две части, для этого нужно понимание языка.

аттеншен сетка думаю сможет, если подавать предложение с контекстом

@Islanna
предлагаю тебе завести тикет с логом всех найденных в т.ч. мной багов, которые ты планируешь включить в следующией релиз