# 文本归类、抽取和翻译 先用 `inspect_workbook.py` 分批读取目标文字列及必要上下文,确定抽取字段、标签定义和输出位置。原文与原工作表保留,分类或译文写入新列、新 sheet 或副本,记录 source_sheet、source_row、source_col。不要把前 15 行的标签直接套给未读取的全部行。 ## 模型逐行理解 摘要、实体抽取、语义分类和翻译由模型基于已读取原文完成,再用 `apply_workbook.py` 的 `set_cells` 或 `write_rows` 写回。按任务保留:原文、清洗文本、要点、观点、实体、类别、子类别、多标签、标准化结果、证据片段、不确定说明;不要求每次都增加全部字段。 - 分类体系以用户定义为准;缺少重要定义时提出精确问题,普通边界样本可以标为“未知/需复核”。多标签要注明分母是记录数还是标签次数。 - 标准化只处理明确同义词、空白和格式,不抹去否定词、程度词、时间、主体等会改变含义的信息。 - 词典匹配是规则判断,不能直接当作深度语义或情感理解。例如“服务不错,但物流很慢”需要保留冲突信息。 - 翻译前确定目标语言及术语表;保留数字、产品编号、专名、公式、链接和日期。按实际读取的单元格翻译,不翻译表名或改结构,除非用户要求。 - `value` 写入译文/标签,包括以 `=` 开头的普通文本;真正公式使用 `formula`。不要通过重建整个 DataFrame 覆盖原工作簿来翻译,避免丢失模板、公式和宏。 - 当前流程不调用外部翻译服务,无需 deep-translator。完成后核对处理单元格数、原文对应关系、术语一致性以及未处理项,不能因为某一格成功就报告全表完成。 ## 可重复的规则分类 已有明确关键词规则时,用 `analyze_workbook.py`: ```json { "method": "classify", "source": {"sheet": "反馈", "columns": {"评价": "C"}}, "column": "评价", "rules": [ {"label": "配送问题", "keywords": ["迟到", "物流慢"]}, {"label": "服务正向", "keywords": ["服务好", "态度好"]} ] } ``` 规则采用不区分大小写的字面子串匹配。单一命中输出该类别,多类别命中为“需复核”,未命中为“未知”;输出命中标签及证据关键词,并在另一张 sheet 汇总互斥类别的记录数和占比。不会自动推断未列出的同义词、否定含义或新类别。 后续将生成的 `spec_path` 交给原 `apply_workbook.py`。结合模型逐行复核可修正规则结果;用户要求完整语义抽取时,不以关键词命中结果代替未完成的理解工作。