wechat-robot-skills/skills/xlsx/references/text-analysis.md

2.7 KiB
Raw Blame History

文本归类、抽取和翻译

先用 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:

{
  "method": "classify",
  "source": {"sheet": "反馈", "columns": {"评价": "C"}},
  "column": "评价",
  "rules": [
    {"label": "配送问题", "keywords": ["迟到", "物流慢"]},
    {"label": "服务正向", "keywords": ["服务好", "态度好"]}
  ]
}

规则采用不区分大小写的字面子串匹配。单一命中输出该类别,多类别命中为“需复核”,未命中为“未知”;输出命中标签及证据关键词,并在另一张 sheet 汇总互斥类别的记录数和占比。不会自动推断未列出的同义词、否定含义或新类别。

后续将生成的 spec_path 交给原 apply_workbook.py。结合模型逐行复核可修正规则结果;用户要求完整语义抽取时,不以关键词命中结果代替未完成的理解工作。