MCPcopy Create free account
hub / github.com/MoonInTheRiver/DiffSinger / ChineseNumberUnit

Class ChineseNumberUnit

utils/text_norm.py:77–110  ·  view source on GitHub ↗

中文数字/数位字符 每个字符除繁简体外还有一个额外的大写字符 e.g. '陆' 和 '陸'

Source from the content-addressed store, hash-verified

75
76
77class ChineseNumberUnit(ChineseChar):
78 """
79 中文数字/数位字符
80 每个字符除繁简体外还有一个额外的大写字符
81 e.g. '陆''陸'
82 """
83
84 def __init__(self, power, simplified, traditional, big_s, big_t):
85 super(ChineseNumberUnit, self).__init__(simplified, traditional)
86 self.power = power
87 self.big_s = big_s
88 self.big_t = big_t
89
90 def __str__(self):
91 return '10^{}'.format(self.power)
92
93 @classmethod
94 def create(cls, index, value, numbering_type=NUMBERING_TYPES[1], small_unit=False):
95
96 if small_unit:
97 return ChineseNumberUnit(power=index + 1,
98 simplified=value[0], traditional=value[1], big_s=value[1], big_t=value[1])
99 elif numbering_type == NUMBERING_TYPES[0]:
100 return ChineseNumberUnit(power=index + 8,
101 simplified=value[0], traditional=value[1], big_s=value[0], big_t=value[1])
102 elif numbering_type == NUMBERING_TYPES[1]:
103 return ChineseNumberUnit(power=(index + 2) * 4,
104 simplified=value[0], traditional=value[1], big_s=value[0], big_t=value[1])
105 elif numbering_type == NUMBERING_TYPES[2]:
106 return ChineseNumberUnit(power=pow(2, index + 3),
107 simplified=value[0], traditional=value[1], big_s=value[0], big_t=value[1])
108 else:
109 raise ValueError(
110 'Counting type should be in {0} ({1} provided).'.format(NUMBERING_TYPES, numbering_type))
111
112
113class ChineseNumberDigit(ChineseChar):

Callers 1

createMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected