claimcheck-rules / rules /numeric.json
NagaYu's picture
ClaimCheck v1.1.0: rule pack, policy presets and 158-case bilingual evaluation set
e518d03 verified
Raw
History Blame Contribute Delete
2.43 kB
{
"rules_version": "1.1.0",
"description": "Numeric literal recognition and normalisation.",
"pattern": "(?<![0-9A-Za-z._\\-])(?P<sign>[-+▲△])?(?:(?P<cur>(?:US\\$|USD|JPY|EUR|GBP|KRW|CNY|[$¥€£₩]))\\s{0,2})?(?P<num>(?:[0-9]{1,3}(?:,[0-9]{3})+(?:\\.[0-9]+)?|[0-9]+(?:\\.[0-9]+)?|\\.[0-9]+))(?P<exp>[eE][-+]?[0-9]{1,3})?\\s?(?P<mag>(?:千|万|億|兆|[kKmMbB](?![A-Za-z0-9])))?\\s?(?P<pct>(?:%|パーセント|ポイント|割))?(?:\\s?(?P<unit>(?:円|ドル|ユーロ|元|ウォン|件|人|名|社|店|台|個|本|枚|冊|回|倍|点|位|票|室|席|品|語|文字|字|行|列|頁|ページ|年度|年間|年|ヶ月|か月|カ月|ヵ月|箇月|週間|日間|時間|分間|秒|分|時|日|歳|才|km|cm|mm|kg|mg|GB|MB|TB|KB|PB|Mbps|Gbps|bps|kHz|MHz|GHz|Hz|kW|MW|W|mL|L|m2|㎡|平方メートル|立方メートル|℃|°C|°F|m|g|t|V|A))(?![A-Za-z]))?",
"components": {
"number_core": "(?:[0-9]{1,3}(?:,[0-9]{3})+(?:\\.[0-9]+)?|[0-9]+(?:\\.[0-9]+)?|\\.[0-9]+)",
"currency": "(?:US\\$|USD|JPY|EUR|GBP|KRW|CNY|[$¥€£₩])",
"magnitude": "(?:千|万|億|兆|[kKmMbB](?![A-Za-z0-9]))",
"percent": "(?:%|パーセント|ポイント|割)",
"unit": "(?:円|ドル|ユーロ|元|ウォン|件|人|名|社|店|台|個|本|枚|冊|回|倍|点|位|票|室|席|品|語|文字|字|行|列|頁|ページ|年度|年間|年|ヶ月|か月|カ月|ヵ月|箇月|週間|日間|時間|分間|秒|分|時|日|歳|才|km|cm|mm|kg|mg|GB|MB|TB|KB|PB|Mbps|Gbps|bps|kHz|MHz|GHz|Hz|kW|MW|W|mL|L|m2|㎡|平方メートル|立方メートル|℃|°C|°F|m|g|t|V|A)"
},
"magnitude_factors": {
"千": "1000",
"万": "10000",
"億": "100000000",
"兆": "1000000000000",
"k": "1000",
"K": "1000",
"m": "1000000",
"M": "1000000",
"b": "1000000000",
"B": "1000000000"
},
"notes": [
"Leading ▲/△ and parenthesised values are negative (Japanese/financial accounting notation).",
"3割 normalises to 30 with kind=percent.",
"Percent keeps its displayed magnitude (15% -> 15); the 15 <-> 0.15 equivalence is tried separately.",
"Bare integers 0-10 with no unit are never marked contradicted: they are near everything.",
"An exact sign flip is decided BEFORE the derivation search, so a loss reported as a profit cannot be excused by a coincidental formula.",
"ISO currency codes are excluded from entity extraction so 'USD 45,000' keeps its number."
]
}