Skip to content

自然语言处理

自然语言处理研究如何让计算机处理、理解和生成语言。语言具有歧义、上下文依赖和开放表达,同一句话在不同场景可能有完全不同的含义。

典型任务

任务输入与输出示例
文本分类文本 -> 类别情感、意图、工单类型
序列标注文本 -> 每个位置的标签实体识别、词性标注
信息抽取文本 -> 结构化字段合同主体、金额、日期
检索查询 -> 相关文档搜索、知识库召回
翻译与摘要文本 -> 新文本多语言和内容压缩
问答与对话问题和上下文 -> 回答客服、知识助手

文本如何进入模型

现代模型通常先进行 Tokenization,把文本转换为 Token ID,再查询 Embedding 得到向量。位置信息和上下文关系随后通过 Transformer 等网络处理。

text
原始文本 -> 规范化 -> Token -> Embedding -> 编码或生成模型 -> 任务输出

中文处理不能简单等同于按单个汉字切分。不同分词器可能把词、字、数字和英文组合成不同 Token,直接影响长度、成本和领域词识别。

从传统 NLP 到预训练模型

传统方法使用词袋、TF-IDF、n-gram 和人工特征,配合线性模型或树模型完成分类。它们速度快、成本低,在数据和任务稳定时仍然有效。

预训练模型先从大规模语料学习语言表示,再通过微调或提示完成具体任务。Embedding 模型适合检索和聚类,Encoder 模型适合理解任务,Decoder 模型适合生成。

大模型不是所有 NLP 任务的默认答案

以下情况可以先用简单模型:

  • 标签固定、训练数据充足的高并发分类。
  • 对延迟和成本要求非常严格。
  • 输出必须完全确定。
  • 任务只依赖少量明确关键词和规则。

需要开放理解、复杂抽取、跨任务泛化或生成时,大模型更有优势。

评估

  • 分类:Precision、Recall、F1、混淆矩阵。
  • 实体识别:实体级 Precision、Recall、F1。
  • 检索:Recall@K、MRR、NDCG。
  • 生成:事实正确性、完整性、引用、人工偏好和任务成功率。

BLEU、ROUGE 等自动指标只能反映部分表面重合,不能单独证明答案正确。

工程风险

  • 文本编码、清洗和分词前后不一致。
  • 训练数据包含隐私或版权风险。
  • 长文档截断后丢失关键内容。
  • 生成内容流畅但缺少事实依据。
  • 多语言效果差异被总指标掩盖。
  • 用户输入诱导模型泄露系统提示或内部资料。

一个文本分类项目

  1. 定义互斥且可执行的类别体系。
  2. 制定标注说明并检查标注一致性。
  3. 用 TF-IDF + 线性模型建立基线。
  4. 再比较预训练 Encoder 或大模型方案。
  5. 按文本长度、语言、渠道和类别分析错误。
  6. 部署后收集低置信度和人工改判样本。

从基线开始可以看清复杂模型到底解决了哪些问题,也便于判断增加的成本是否值得。

别急,先让缓存热一下。