WeTextProcessing icon indicating copy to clipboard operation
WeTextProcessing copied to clipboard

金额读成数字问题

Open dawenxi-only opened this issue 11 months ago • 4 comments

在执行以下代码: from tn.chinese.normalizer import Normalizer normalizer = Nrmalizer() text = '起始金额一共有500、1000两个金额档' text_norm = normalizer.normalize(text)

输出text_norm为:起始金额一共有五零零、一千两个金额档。 将500读成了五零零,希望读成五百。

请问怎么正确的将500读成五百

dawenxi-only avatar Dec 31 '24 09:12 dawenxi-only

应该是tn/chinese/rules/cardinal.py里

phone = phone_digits**3 | phone_digits**5 | phone_digits**11

这一行的问题,迫使3位和5位数字都这么念了。我是注释掉了,重写了一个只对11位电话号码有效的处理

FlynnFlag avatar Jan 16 '25 09:01 FlynnFlag

应该是tn/chinese/rules/cardinal.py里

phone = phone_digits**3 | phone_digits**5 | phone_digits**11

这一行的问题,迫使3位和5位数字都这么念了。我是注释掉了,重写了一个只对11位电话号码有效的处理

感谢你的回复,我将 phone = phone_digits**3 | phone_digits**5 | phone_digits**11 修改为 phone = phone_digits**11 之后解决了该问题,但是如果是3位的电话号码,则会报错,例如110,有没有一种满足两种情况的方法呢。

dawenxi-only avatar Feb 10 '25 08:02 dawenxi-only

起始金额一共有¥500、¥1000 两个金额档, 结果是 起始金额一共有五百元、一百元零两个金额档.

wewaa avatar Jun 23 '25 06:06 wewaa

应该是tn/chinese/rules/cardinal.py里 phone = phone_digits**3 | phone_digits**5 | phone_digits**11 这一行的问题,迫使3位和5位数字都这么念了。我是注释掉了,重写了一个只对11位电话号码有效的处理

感谢你的回复,我将 phone = phone_digits**3 | phone_digits**5 | phone_digits**11 修改为 phone = phone_digits**11 之后解决了该问题,但是如果是3位的电话号码,则会报错,例如110,有没有一种满足两种情况的方法呢。

这个我是直接匹配所有电话号码开头的11位数,比如189,137这种,还有特殊电话号码,然后用字典转为汉字,送到后续TTS中

FlynnFlag avatar Aug 12 '25 03:08 FlynnFlag