Начиная с сотен, числа выражаются систематически, например, «три миллиона двести пятьдесят две тысячи шестьсот девяносто один» для «3 252 691».
Как видите, выне нужно ни захватывать *
, ни " все числа ", а скорее комбинацию только нескольких возможных фрагментов.
concept:(digits) ["one", "two", ...]
concept:(tens) ["ten", "twenty", ...]
concept:(number_tens) {~tens} {~digits}
concept:(number_hundreds) {~digit hundred{s}} ~number_tens
concept:(number) {~number_hundreds million{s}} {~number_hundreds thousand{s}} ~number_hundreds
u:(_~number}
$number_out=$1
ALMemory
событие с именем number_out
должно быть поднято со значением, когда число совпадает.Вы можете подписаться на него и обработать его сценарием для преобразования естественного языка в числа, как, например, предложите здесь .