MCPcopy Create free account
hub / github.com/FunAudioLLM/Fun-ASR / create_system

Function create_system

tools/cn_tn.py:561–609  ·  view source on GitHub ↗

根据数字系统类型返回创建相应的数字系统,默认为 mid NUMBERING_TYPES = ['low', 'mid', 'high']: 中文数字系统类型 low: '兆' = '亿' * '十' = $10^{9}$, '京' = '兆' * '十', etc. mid: '兆' = '亿' * '万' = $10^{12}$, '京' = '兆' * '万', etc. high: '兆' = '亿' * '亿' = $10^{16}$, '京' = '兆' * '兆', etc. 返回对应的数字系统

(numbering_type=NUMBERING_TYPES[1])

Source from the content-addressed store, hash-verified

559# basic utils
560# ================================================================================ #
561def create_system(numbering_type=NUMBERING_TYPES[1]):
562 """
563 根据数字系统类型返回创建相应的数字系统,默认为 mid
564 NUMBERING_TYPES = ['low', 'mid', 'high']: 中文数字系统类型
565 low: '兆' = '亿' * '十' = $10^{9}$, '京' = '兆' * '十', etc.
566 mid: '兆' = '亿' * '万' = $10^{12}$, '京' = '兆' * '万', etc.
567 high: '兆' = '亿' * '亿' = $10^{16}$, '京' = '兆' * '兆', etc.
568 返回对应的数字系统
569 """
570
571 # chinese number units of '亿' and larger
572 all_larger_units = zip(
573 LARGER_CHINESE_NUMERING_UNITS_SIMPLIFIED,
574 LARGER_CHINESE_NUMERING_UNITS_TRADITIONAL,
575 )
576 larger_units = [
577 CNU.create(i, v, numbering_type, False) for i, v in enumerate(all_larger_units)
578 ]
579 # chinese number units of '十, 百, 千, 万'
580 all_smaller_units = zip(
581 SMALLER_CHINESE_NUMERING_UNITS_SIMPLIFIED,
582 SMALLER_CHINESE_NUMERING_UNITS_TRADITIONAL,
583 )
584 smaller_units = [
585 CNU.create(i, v, small_unit=True) for i, v in enumerate(all_smaller_units)
586 ]
587 # digis
588 chinese_digis = zip(
589 CHINESE_DIGIS,
590 CHINESE_DIGIS,
591 BIG_CHINESE_DIGIS_SIMPLIFIED,
592 BIG_CHINESE_DIGIS_TRADITIONAL,
593 )
594 digits = [CND.create(i, v) for i, v in enumerate(chinese_digis)]
595 digits[0].alt_s, digits[0].alt_t = ZERO_ALT, ZERO_ALT
596 digits[1].alt_s, digits[1].alt_t = ONE_ALT, ONE_ALT
597 digits[2].alt_s, digits[2].alt_t = TWO_ALTS[0], TWO_ALTS[1]
598
599 # symbols
600 positive_cn = CM(POSITIVE[0], POSITIVE[1], "+", lambda x: x)
601 negative_cn = CM(NEGATIVE[0], NEGATIVE[1], "-", lambda x: -x)
602 point_cn = CM(POINT[0], POINT[1], ".", lambda x, y: float(str(x) + "." + str(y)))
603 # sil_cn = CM(SIL[0], SIL[1], '-', lambda x, y: float(str(x) + '-' + str(y)))
604 system = NumberSystem()
605 system.units = smaller_units + larger_units
606 system.digits = digits
607 system.math = MathSymbol(positive_cn, negative_cn, point_cn)
608 # system.symbols = OtherSymbol(sil_cn)
609 return system
610
611
612def chn2num(chinese_string, numbering_type=NUMBERING_TYPES[1]):

Callers 2

chn2numFunction · 0.85
num2chnFunction · 0.85

Calls 3

NumberSystemClass · 0.85
MathSymbolClass · 0.85
createMethod · 0.45

Tested by

no test coverage detected