首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >为文字预测建立数学模型

为文字预测建立数学模型

作者头像
江南一点雨
发布2026-03-26 17:18:19
发布2026-03-26 17:18:19
1170
举报
文章被收录于专栏:AI应用开发实践AI应用开发实践

周末和小伙伴们随便聊聊。

语言模型(Language Model, LM)是自然语言处理(NLP)领域的核心技术之一。简单来说,它是一个可以预测单词(或字符)序列概率的模型。

想象一个“文字接龙”游戏:

  • 输入: “今天天气很____”

此时,语言模型就会分析整个输入序列“今天天气很____”,然后计算在无数可能接在“很”后面的词语中(如:好、晴朗、热、冷、糟糕、蓝、不错、舒服...),哪个词出现的概率最高。这个概率是基于其在训练数据中学到的规律(比如,“今天天气很好”比“今天天气很苹果”出现的频率高得多,最后输出一个预测,比如最可能出现的下一个词是:好。

简单来说,语言模型的核心功能是:

  1. 评估一个序列(句子或短语)在给定语言中出现的可能性(概率)。
  2. 在给定前文的情况下,预测下一个最可能出现的词(或符号)。

一 经典语言建模

先来了解一个最经典也最简单的语言建模。

比如我现在有如下一段话:

今天晚上我想吃___

后面该如何跟呢?

我们可以建立一个简单的数学模型:

  • 表示一个句子中的字符序列,而则表示字符在语料库中出现的概率。
  • 表示在已知的字符概率,字符出现的概率。

根据这样一个简单的模型,我们就可以根据上文,预测出下文的字符,并最终得到完整的语句出现概率。

假设我们现在填空有三个不同的选项,分别是:

  • 牛肉泡馍
  • 菜夹馍
  • 臊子面

再假设 牛、菜、臊三个字的自然分布概率分别为 0.0008、0.0003、以及0.0005。

什么是文字的自然分布概率? 文字的自然分布概率指单个文字在大型真实语料库(如新闻、书籍、网页文本等)中出现的频率统计,即: P(c)=语料中所有汉字的总出现次数/汉字 c 在语料中出现的次数 例如,“的”字在中文中出现频率极高(约4%),而“龘”字极低(<0.0001%)。

那么今晚我想吃___后面就紧跟 牛 吗?因为牛字的概率最高!

并非如此。

在计算后面跟什么字的时候,我们需要依赖当前上下文,在此前提条件下,计算空格处出现每个字的概率,这样我们可以得到一个条件概率公式:

通过条件概率分别计算出 牛、菜以及臊的概率,并追加到文本后面。

循环计算,直到得出完整句子。

二 N-gram

N-gram 模型是一种基于统计的语言模型,通过分析文本中连续出现的 N 个词(或字符)的分布规律来捕捉语言的局部统计特征。其核心思想是马尔可夫假设:当前词的出现概率仅依赖于前 N-1 个词。

一般来说,N-gram:由 N 个连续词组成的序列。例如:

  • Unigram (1-gram):单个词(如“语言”)
  • Bigram (2-gram):两个连续词(如“自然语言”)
  • Trigram (3-gram):三个连续词(如“处理文本数据”)

N-gram 模型简化了第一小节的语言模型,第一小节的语言模型在计算时,当句子非常长的时候,会导致计算变得异常复杂,而 N-gram 则在一定程度上简化了计算。

N-gram 模型的数学基础如下:

例如,句子“我爱自然语言”的Bigram概率为:

如果利用 N-gram 计算第一小节的问题,那么我们可以省去 今晚 两个字,而直接基于“我想吃”三个字去推断后面的内容。

那么最终得到的公式类似下面这样:

上面这个公式算到最后会有一个问题。就是越算值越无限接近于零,最终可能会计算越界。

三 概率 Log 化

语言模型的 Log 化(Logarithmic Transformation)是将概率计算转换为对数空间的核心技术,主要用于解决概率连乘的数值计算问题。

语言模型计算句子概率时需连乘多个条件概率,例如前面的 N-gram 模型:

这个数学公式会有什么问题呢?

  1. 下溢(Underflow):概率值范围 [0,1],连乘后急剧趋近 0(如),超出浮点数精度范围。
  2. 计算效率低:浮点数乘法比加法慢数倍(CPU/GPU 硬件特性)。
  3. 优化困难:梯度计算在接近 0 时不稳定。

log 化就是对概率取自然对数。

这样转换之后,有三个优势:

  1. 单调性:log函数单调递增,不改变概率大小关系。
  2. 乘法转加法:
  3. 数值稳定性:概率范围 [0,1] → Log概率范围 (],避免下溢。

接下来松哥通过一个简单的例子来说明 log 函数的应用。

假设现在有如下任务:

检测句子 他的性恪温和 并纠错(正确应为性格)。

Log 化前:

现在的问题是: 在乘法中易丢失精度。

Log 化后:

性格

性恪

这样一来,计算的差值从 0.0056 放大为 -5.19 vs -16.34,模型可明确选择性格。

简单来说,Log 化是语言模型的计算基石,通过:

  1. 乘法转加法 → 解决下溢与提速;
  2. 拉大数值间距 → 增强决策鲁棒性;
  3. 衔接损失函数 → 优化训练稳定性;

在输入法、机器翻译、语音识别等场景中,只要涉及概率比较或长序列生成,Log 化都是不可或缺的工程手段。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-07-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 江南一点雨 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一 经典语言建模
  • 二 N-gram
  • 三 概率 Log 化
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档