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/en/verbalizers/fraction.py | 46 ++++++++++++++++++++++++++++++++--------------
1 files changed, 32 insertions(+), 14 deletions(-)
diff --git a/fun_text_processing/text_normalization/en/verbalizers/fraction.py b/fun_text_processing/text_normalization/en/verbalizers/fraction.py
index fc5279d..03c4683 100644
--- a/fun_text_processing/text_normalization/en/verbalizers/fraction.py
+++ b/fun_text_processing/text_normalization/en/verbalizers/fraction.py
@@ -1,7 +1,10 @@
-
-
import pynini
-from fun_text_processing.text_normalization.en.graph_utils import DAMO_NOT_QUOTE, DAMO_SIGMA, GraphFst, insert_space
+from fun_text_processing.text_normalization.en.graph_utils import (
+ DAMO_NOT_QUOTE,
+ DAMO_SIGMA,
+ GraphFst,
+ insert_space,
+)
from fun_text_processing.text_normalization.en.verbalizers.ordinal import OrdinalFst
from pynini.examples import plurals
from pynini.lib import pynutil
@@ -22,13 +25,19 @@
super().__init__(name="fraction", kind="verbalize", deterministic=deterministic)
suffix = OrdinalFst().suffix
- integer = pynutil.delete("integer_part: \"") + pynini.closure(DAMO_NOT_QUOTE) + pynutil.delete("\" ")
- denominator_one = pynini.cross("denominator: \"one\"", "over one")
- denominator_half = pynini.cross("denominator: \"two\"", "half")
- denominator_quarter = pynini.cross("denominator: \"four\"", "quarter")
+ integer = (
+ pynutil.delete('integer_part: "')
+ + pynini.closure(DAMO_NOT_QUOTE)
+ + pynutil.delete('" ')
+ )
+ denominator_one = pynini.cross('denominator: "one"', "over one")
+ denominator_half = pynini.cross('denominator: "two"', "half")
+ denominator_quarter = pynini.cross('denominator: "four"', "quarter")
denominator_rest = (
- pynutil.delete("denominator: \"") + pynini.closure(DAMO_NOT_QUOTE) @ suffix + pynutil.delete("\"")
+ pynutil.delete('denominator: "')
+ + pynini.closure(DAMO_NOT_QUOTE) @ suffix
+ + pynutil.delete('"')
)
denominators = plurals._priority_union(
@@ -41,18 +50,24 @@
DAMO_SIGMA,
).optimize()
if not deterministic:
- denominators |= pynutil.delete("denominator: \"") + (pynini.accep("four") @ suffix) + pynutil.delete("\"")
+ denominators |= (
+ pynutil.delete('denominator: "')
+ + (pynini.accep("four") @ suffix)
+ + pynutil.delete('"')
+ )
- numerator_one = pynutil.delete("numerator: \"") + pynini.accep("one") + pynutil.delete("\" ")
+ numerator_one = pynutil.delete('numerator: "') + pynini.accep("one") + pynutil.delete('" ')
numerator_one = numerator_one + insert_space + denominators
numerator_rest = (
- pynutil.delete("numerator: \"")
+ pynutil.delete('numerator: "')
+ (pynini.closure(DAMO_NOT_QUOTE) - pynini.accep("one"))
- + pynutil.delete("\" ")
+ + pynutil.delete('" ')
)
numerator_rest = numerator_rest + insert_space + denominators
numerator_rest @= pynini.cdrewrite(
- plurals._priority_union(pynini.cross("half", "halves"), pynutil.insert("s"), DAMO_SIGMA),
+ plurals._priority_union(
+ pynini.cross("half", "halves"), pynutil.insert("s"), DAMO_SIGMA
+ ),
"",
"[EOS]",
DAMO_SIGMA,
@@ -68,7 +83,10 @@
graph = integer + graph
graph @= pynini.cdrewrite(
- pynini.cross("and one half", "and a half") | pynini.cross("over ones", "over one"), "", "[EOS]", DAMO_SIGMA
+ pynini.cross("and one half", "and a half") | pynini.cross("over ones", "over one"),
+ "",
+ "[EOS]",
+ DAMO_SIGMA,
)
self.graph = graph
--
Gitblit v1.9.1