Low-Resource Automatic ICD Coding for Chinese Electronic Medical Records: An Interpretable Multi-View Linear Framework with Audited Clinical Rules
Listed in
This article is not in any list yet, why not save it to one of your lists.Abstract
ICD coding is the backbone of medical-record structuring, insurance payment, and clinical research. Today’s best automatic coders are deep models, but they assume tens of thousands of labeled records, GPU servers, and machine-learning engineers. Many hospitals, especially small ones, have none of these. We study Chinese electronic medical records (EMRs) under a hard budget: 2,200 labeled records, CPU only, and fully interpretable decisions. Our method is lightweight and follows the way human coders work. First, codebook knowledge injection marks standard disease and operation names in the text as useful clues. Second, multi-view field weighting gives more weight to the clinical sections that matter most. Third, character n-gram TF-IDF features feed linear classifiers that score each candidate code. Fourth, a small set of clinical rules acts as a final safety check. Our main methodological finding is about this last step: naively applied rules do more harm than good (overall F1 drops from 0.8070 to 0.7995, and main-operation accuracy from 0.9727 to 0.9432). We therefore audit each rule on held-out data by counting how often it fixes a wrong prediction or breaks a correct one, and we remove rules that do more harm than good. This turns rule post-processing into a safety check that never hurts. On the CCL2026-Eval Task 6 dataset, our method reaches macro-F1 of 0.899 (main diagnosis) and 0.966 (main operation) in 5-fold cross-validation. A frequency-stratified analysis shows a clear long-tail limit: codes seen fewer than three times score zero F1. In a head-to-head test, a fine-tuned Chinese pretrained encoder scores lower than our method on all four tasks at this training size, while needing a GPU. Ablation tests show that the gains come mainly from field-weighted text. The framework trains in about 40 minutes on an ordinary CPU, and every prediction can be broken down into interpretable feature contributions.