Může být částka záporné číslo: samostatná obchodní pravidla a pravidla typu
Všechna pole částky zapište jako `minimum: 0`, což na první pohled vypadá velmi přísně, ale zablokuje normální záznam o vrácení peněz. Zda byla částka extrahována do čísla a zda jsou v tomto podnikání povolena záporná čísla, jsou dvě otázky. Nejprve byste měli potvrdit význam dokumentu a poté napsat pravidla rozsahu.
Pokud provádíte strukturovanou extrakci objednávek, účtů nebo finančních dokumentů, je pole částky často místem s nejvyšším výskytem chyb. Mnoho lidí zapíše všechny částky jako minimum: 0, což se zdá velmi striktní, ale běžné záznamy o refundaci budou kvůli tomu odmítnuty.
Zda byla částka extrahována do čísla a zda jsou v tomto podnikání povolena záporná čísla, jsou dvě různé otázky. Nejprve potvrďte, co představuje záporné znaménko v dokumentu, a poté určete pravidla rozsahu, abyste zajistili, že typ je správný, aniž by došlo k náhodnému poškození přiměřených dat.
Tento článek používá syntetické vzorky k demonstraci metody zpracování. Kód byl zkontrolován s příklady v izolovaném prostředí; to nepředstavuje záruku všech skutečných souborů nebo výkonu produktu. Před zpracováním důležitých dokumentů si prosím uschovejte originály a zkontrolujte je podle hranic a přejímacích položek v textu.
Může být částka záporná? Závěr jednou větou
To, zda částka může být záporná, závisí na dohodě podniku, nikoli na typu pole samotného. Nejprve definujte význam záporného znaménka a poté nechejte typ určovat omezení.
| vaší situaci | Doporučené postupy | důvod |
|---|---|---|
| Náhrady ve smlouvě jsou vyjádřeny jako záporné částky | Pole poplatku je omezeno na nezáporné hodnoty a pro vrácení peněz jsou povoleny záporné hodnoty. | Symboly jsou obchodní sémantika a nemohou být univerzální |
| Systém používá „kladná částka plus typ refundace" | Částka je jednotně kladná a pole typu se používá k rozlišení refundací | Lze nastavit obě metody, ale pro stejné rozhraní lze vybrat pouze jednu. |
| Vyžaduje se striktně kladná částka | Místominimum: 0 použijte exclusiveMinimum | minimum obsahuje hranice a projde nulovými hodnotami |
| Negativní znaménka ve zdrojích mohou chybět nebo jsou špatně umístěna | Uložte původní fragment textu a zkontrolujte jej ručně. Neberte přímo absolutní hodnotu. | Automatická oprava může maskovat skutečné chyby |
Nejprve definujte, co představuje záporné znaménko
Syntetická dohoda v tomto článku stanoví, že běžné poplatky nejsou záporné a náhrady jsou vyjádřeny jako záporné částky. Skutečné systémy mohou také používat účetní metodu „kladná částka plus typ refundace". Obě metody lze zavést, ale nemůžete spoléhat na to, že čtenáři budou hádat ve stejném rozhraní.
Hranice nulového bodu je zde vzorový protokol a není jednotným standardem ve finančním odvětví.
Nechte typ určovat omezení
minimum schématu JSON obsahuje hranice, exclusiveMinimum hranice neobsahuje. Pokud je obchodní požadavek striktně kladný, minimum: 0 nelze použít.
Před výběrem klíčových slov uveďte nejprve scénáře, které umožňují nulové hodnoty, abyste se vyhnuli nesprávné interpretaci bezplatných položek, odpisů nebo odhadů jako chyb.
from jsonschema import Draft202012Validator
schema = {
"type": "object", "required": ["kind", "amount"],
"additionalProperties": False,
"properties": {"kind": {"enum": ["charge", "refund"]},
"amount": {"type": "number"}},
"allOf": [
{"if": {"properties": {"kind": {"const": "charge"}}},
"then": {"properties": {"amount": {"minimum": 0}}}},
{"if": {"properties": {"kind": {"const": "refund"}}},
"then": {"properties": {"amount": {"exclusiveMaximum": 0}}}}
]
}
v = Draft202012Validator(schema)
valid = lambda x: not list(v.iter_errors(x))
assert valid({"kind": "charge", "amount": 0})
assert valid({"kind": "refund", "amount": -12.5})
assert not valid({"kind": "refund", "amount": 12.5})
assert not valid({"kind": "charge", "amount": True})
assert not valid({"amount": 12.5})
Příklad závisí na jsonschema a je ověřen podle návrhu 2020-12. Neprovádí převod měn ani neověřuje vztah mezi položkami a součty.
Výpočty měn vyžadují jasnou přesnost a strategie zaokrouhlování. Jen proto, že hodnoty projdou ověřením schématu, nemůžete použít čísla s plovoucí desetinnou čárkou k akumulaci podle libosti.
Při hlášení chyby musíte uvést obchodní kontext
Když se ověření nezdaří, měla by chybová zpráva pomoci lidem určit příčinu, nikoli pouze označovat „nelegální".
| pozorovat | Zpracování zde | Ještě potřeba zkontrolovat |
|---|---|---|
| Vrácení peněz je kladné | odmítnout | Chybí symbol nebo zdroj používá jiný protokol? |
| Poplatek je nulový | přijmout strukturu | Je to bezplatný projekt? |
| Částka je řetězec | typ odmítnutí | Znaménko, měna a desítková pravidla pro tisíce míst |
| Chybí typ | odmítnout | Odhadněte typ dokumentu, aniž byste se spoléhali na znaménko částky |
K zakrytí chyb nepoužívejte automatické absolutní hodnoty
Chybějící pomlčky v OCR, pohybující se záporná znaménka během překladu nebo obchod využívající konvence opačných znamének se mohou projevit jako stejná anomálie.
Přímé voláníabs() by odstranilo důležité diagnostické stopy. Bezpečnějším přístupem je před analýzou uložit fragmenty původního textu, čísla stránek a řetězce a poté se rozhodnout, zda je znovu extrahovat, nebo je zkontrolovat ručně.
Při dodání zkontrolujte množství a typ
Při použití OmniDoc (produktový portál) ke zpracování dokumentů obsahujících částky můžete použít tuto tabulku pravidel jako součást přijetí po překladu: nejen zkontrolujte, zda se čísla neztratila, ale také zda se změnil kontext refundací, kreditů atd.
Nástroje mohou pomoci dokončit překlad, ale dohoda o částce by měla být stále jasná obchodní straně.
📊 Srovnání jádra
| praxe | Význam záporného znaménka | Vhodné pro scénu | Poznámka |
|---|---|---|---|
| Vrácení peněz se zápornou částkou | Záporné znaménko znamená vrácení peněz | Dohoda se dohodla na používání symbolů k rozlišení směrů | Pole poplatku musí být omezeno na nezáporné hodnoty a pole refundace umožňuje záporné hodnoty. |
| Kladná částka plus typ refundace | Záporné znaménko nemá obchodní význam | Systém rozlišuje refundace podle typu pole | Částka je jednotně kladná a zároveň musí být ověřen typ. |
minimum: 0 | Obsahuje nulovou hodnotu | Částky, které umožňují nulové hodnoty | Uvolní nulové hodnoty, které nejsou vhodné pro přísně pozitivní scénáře |
exclusiveMinimum: 0 | Neobsahuje nulovou hodnotu | Přísně vyžadováno, aby byla kladná částka | Je třeba potvrdit, že položky zdarma nebo storna nebudou omylem odmítnuty |
🎯 Která metoda je pro vás vhodná?
Pokud vaše smlouva uvádí pro vrácení peněz zápornou částku
- Nastavte nezáporná omezení pro pole poplatku, povolte záporné hodnoty pro pole refundace a zapište smlouvu do dokumentu.
Pokud váš systém používá „kladná částka plus typ refundace"
- Pole částky by mělo být jednotně kladné a zároveň by mělo být ověřeno pole typu, aby se zabránilo posuzování povahy dokumentu pouhým pohledem na čísla.
Pokud je částka obchodního požadavku přísně kladná
- Použijte
exclusiveMinimuma nejprve zkontrolujte, zda bezplatné položky, rabaty a odhady nebudou omylem odmítnuty.
Pokud může dojít ke ztrátě záporného znaménka zdrojového souboru
- Zachovejte původní fragmenty textu, čísla stránek a předem analyzované řetězce a před vložením do databáze je ručně zkontrolujte. Neberte přímo absolutní hodnotu.
❓ Často kladené otázky (FAQ)
1. Jaký je rozdíl mezi minimum a exclusiveMinimum?
minimum obsahuje hraniční hodnoty, exclusiveMinimum neobsahuje hraniční hodnoty. Pokud je obchodní požadavek striktně kladný, minimum: 0 nelze použít.
2. Pokud projde ověřením schématu, bude částka správná?
nejistý. Příklad neprovádí převod měny ani neověřuje vztah mezi položkami a součty; měnové výpočty také vyžadují jasnou přesnost a strategie zaokrouhlování.
3. Proč nelze částku akumulovat přímo pomocí čísel s pohyblivou řádovou čárkou?
Výpočty měn vyžadují jasnou přesnost a strategie zaokrouhlování. Čísla s plovoucí desetinnou čárkou nelze použít k náhodnému akumulaci jen proto, že hodnoty projdou ověřením schématu.
4. Když narazíte na výjimku se záporným znaménkem, můžete přímo vzít absolutní hodnotu?
Nedoporučuje se. Chybějící slova v OCR, pohyblivé záporné znaky v překladu nebo jiné konvence obchodních symbolů mohou způsobit abnormality. Přímé stanovení absolutní hodnoty odstraní diagnostické stopy.
📝 Shrnutí
Klíčem k poli množství je nejprve potvrdit, co představuje záporné znaménko, a poté nechat typ určit omezení. Oddělením obchodních pravidel a pravidel typu nemůžete ani omylem odmítnout vrácení peněz, ani přehlédnout skutečné chyby.
Vyzkoušejte to hned: Nahrajte dokument a začněte překládat při zachování původního rozvržení
Zdroje: Numerická omezení schématu JSON


