From 28ccfbfc51068a663a80764e14074df5edf2b5ba Mon Sep 17 00:00:00 2001
From: kongdeqiang <kongdeqiang960204@163.com>
Date: 星期五, 13 三月 2026 17:41:41 +0800
Subject: [PATCH] 提交
---
fun_text_processing/text_normalization/de/verbalizers/fraction.py | 32 +++++++++++++++++++++-----------
1 files changed, 21 insertions(+), 11 deletions(-)
diff --git a/fun_text_processing/text_normalization/de/verbalizers/fraction.py b/fun_text_processing/text_normalization/de/verbalizers/fraction.py
index a77e26d..e926d4b 100644
--- a/fun_text_processing/text_normalization/de/verbalizers/fraction.py
+++ b/fun_text_processing/text_normalization/de/verbalizers/fraction.py
@@ -1,4 +1,3 @@
-
import pynini
from fun_text_processing.text_normalization.en.graph_utils import (
DAMO_NOT_QUOTE,
@@ -26,27 +25,38 @@
def __init__(self, ordinal: GraphFst, deterministic: bool = True):
super().__init__(name="fraction", kind="verbalize", deterministic=deterministic)
- optional_sign = pynini.closure(pynini.cross("negative: \"true\"", "minus ") + pynutil.delete(" "), 0, 1)
- change_one = pynini.cdrewrite(
- pynutil.add_weight(pynini.cross("eins", "ein"), weight=-0.0001), "[BOS]", "[EOS]", DAMO_SIGMA
+ optional_sign = pynini.closure(
+ pynini.cross('negative: "true"', "minus ") + pynutil.delete(" "), 0, 1
)
- change_numerator_two = pynini.cdrewrite(pynini.cross("zweitel", "halbe"), "[BOS]", "[EOS]", DAMO_SIGMA)
- integer = pynutil.delete("integer_part: \"") + change_one + pynutil.delete("\" ")
- numerator = pynutil.delete("numerator: \"") + change_one + pynutil.delete("\" ")
+ change_one = pynini.cdrewrite(
+ pynutil.add_weight(pynini.cross("eins", "ein"), weight=-0.0001),
+ "[BOS]",
+ "[EOS]",
+ DAMO_SIGMA,
+ )
+ change_numerator_two = pynini.cdrewrite(
+ pynini.cross("zweitel", "halbe"), "[BOS]", "[EOS]", DAMO_SIGMA
+ )
+ integer = pynutil.delete('integer_part: "') + change_one + pynutil.delete('" ')
+ numerator = pynutil.delete('numerator: "') + change_one + pynutil.delete('" ')
denominator = (
- pynutil.delete("denominator: \"")
+ pynutil.delete('denominator: "')
+ pynini.closure(DAMO_NOT_QUOTE)
@ (
- pynini.cdrewrite(pynini.closure(ordinal.ordinal_stem, 0, 1), "", "[EOS]", DAMO_SIGMA)
+ pynini.cdrewrite(
+ pynini.closure(ordinal.ordinal_stem, 0, 1), "", "[EOS]", DAMO_SIGMA
+ )
+ pynutil.insert("tel")
)
@ change_numerator_two
- + pynutil.delete("\"")
+ + pynutil.delete('"')
)
integer += insert_space + pynini.closure(pynutil.insert("und ", weight=0.001), 0, 1)
- denominator_one_half = pynini.cdrewrite(pynini.cross("ein halbe", "ein halb"), "[BOS]", "[EOS]", DAMO_SIGMA)
+ denominator_one_half = pynini.cdrewrite(
+ pynini.cross("ein halbe", "ein halb"), "[BOS]", "[EOS]", DAMO_SIGMA
+ )
fraction_default = (numerator + insert_space + denominator) @ denominator_one_half
--
Gitblit v1.9.1