///|
/// MoonLabelKit 主程序入口:执行多模态标注数据治理巡检流程并输出报告
fn main {
let args = @env.args()
let options = match parse_cli(args) {
Some(value) => value
None => return
}
match options.input {
Some(path) => {
let content = @fs.read_file_to_string(path) catch {
err => {
println("Error: cannot read input file `\{path}`: \{Repr(err)}")
return
}
}
let format = resolve_format(options, path)
let dataset = parse_input(content, options, format) catch {
err => {
println("Error: cannot parse input file `\{path}`: \{err}")
return
}
}
println(generate_governance_report(dataset))
return
}
None => ()
}
println("==========================================================")
println(" 🌌 MoonLabelKit v0.1.3 - Annotation Data Governance Engine ")
println("==========================================================\n")
// 1. 使用 Parser 从 JSONL 文本构建一个真实场景的多标注情感分类数据集
let jsonl_sample =
#|{"id": "rev_001", "text": "This phone camera is absolutely stunning and super fast!", "label": "Positive", "annotator": "Alice", "split": "train"}
#|{"id": "rev_001", "text": "This phone camera is absolutely stunning and super fast!", "label": "Positive", "annotator": "Bob", "split": "train"}
#|{"id": "rev_001", "text": "This phone camera is absolutely stunning and super fast!", "label": "Neutral", "annotator": "Charlie", "split": "train"}
#|{"id": "rev_002", "text": "Battery drains in just 3 hours. Terrible quality control.", "label": "Negative", "annotator": "Alice", "split": "train"}
#|{"id": "rev_002", "text": "Battery drains in just 3 hours. Terrible quality control.", "label": "Negative", "annotator": "Bob", "split": "train"}
#|{"id": "rev_003", "text": "OK phone for the price, decent screen.", "label": "Neutral", "annotator": "Alice", "split": "dev"}
#|{"id": "rev_004", "text": "x", "label": "Positive", "annotator": "Alice", "split": "test"}
#|{"id": "rev_005", "text": "Invalid product tag here.", "label": "SuperGood", "annotator": "Bob", "split": "train"}
#|{"id": "rev_006_dup", "text": "OK phone for the price, decent screen.", "label": "Positive", "annotator": "Charlie", "split": "train"}
let dataset = @parser.parse_jsonl_dataset(
jsonl_sample,
"Mobile_Phone_Reviews_MultiAnn_v1",
@core.TaskType::Classification,
["Positive", "Negative", "Neutral"],
) catch {
err => {
println("Error parsing dataset: \{err}")
return
}
}
// 2. 生成综合数据治理报告
let report = generate_governance_report(dataset)
println(report)
}