35 lines
2.7 KiB
Markdown
35 lines
2.7 KiB
Markdown
# 文本归类、抽取和翻译
|
||
|
||
先用 `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`。结合模型逐行复核可修正规则结果;用户要求完整语义抽取时,不以关键词命中结果代替未完成的理解工作。
|