Given a dataset of companies (companies.jsonl), the system classifies each company against three intent queries:
| Query | Description |
|---|---|
ev_battery_supply_chain |
Companies in the EV battery manufacturing/supply chain |
fintech_growth_proxy |
High-growth fintech companies with recent funding signals |
supplier_role_detection |
Tier-1/Tier-2 suppliers in automotive, aerospace, or industrial sectors |
- QueryRule abstraction: Each query is defined as a
QueryRulewith positive evidence groups (AND across groups, OR within group), negative signals, and confidence boosters. - Negative filtering: Explicit negative signals disqualify false positives early.
- Confidence scoring: Base confidence + booster bonuses, capped at 1.0.
- Reranker: A lightweight reranking layer resolves ambiguous multi-query matches.
solution.py # Main classifier
queries.txt # The three intent queries
final_results.csv # Output: company -> query matches with confidence
WRITEUP.md # Architecture, tradeoffs, error analysis, scaling
companies.jsonl # Input dataset (Veridion-provided)
python solution.pyOutputs final_results.csv with columns: company_name, query, confidence, matched.
Python 3.8+, no external dependencies.
The classifier processes all companies in companies.jsonl and outputs per-company match results with confidence scores. Companies that match no query are recorded with matched=False.