-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
41 lines (30 loc) · 1.16 KB
/
Copy pathmain.py
File metadata and controls
41 lines (30 loc) · 1.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
"""Command-line scorer for already-computed GreenRisk signals."""
from __future__ import annotations
import argparse
from rule_base import ANTS, format_trace, score_paragraph
def probability(value: str) -> float:
parsed = float(value)
if not 0.0 <= parsed <= 1.0:
raise argparse.ArgumentTypeError("expected a probability in [0, 1]")
return parsed
def build_parser() -> argparse.ArgumentParser:
parser = argparse.ArgumentParser(
description="Score one paragraph from precomputed GreenRisk signal probabilities."
)
parser.add_argument("--specificity", required=True, type=probability)
parser.add_argument("--commitment", required=True, type=probability)
parser.add_argument(
"--sentiment-asymmetry",
dest="sentiment_asymmetry",
required=True,
type=probability,
)
parser.add_argument("--netzero", required=True, type=probability)
return parser
def main() -> None:
args = build_parser().parse_args()
signals = {name: getattr(args, name) for name in ANTS}
risk, trace = score_paragraph(signals)
print(format_trace(signals, risk, trace))
if __name__ == "__main__":
main()