二元组(bigram),又称双字母组(digram),是由一串词元中相邻的两个元素组成的序列,这些元素通常是字母、音节或单词。在形式定义上,二元组是n取值为2的n元组。给定字符串中所有二元组的频率分布,常用于许多应用中的简单文本统计分析,包括计算语言学、密码学和语音识别。
二元组是理解和处理自然语言的基础构建块。通过考察相邻项的共现情况,研究人员和工程师可以捕捉文本中的局部关系,这些关系对于从预测序列中的下一个词到识别文档语言等任务都很有用。它们代表了单字符或单词分析与更长n元组模型之间的中间地带,在计算效率与描述能力之间取得了平衡。
应用
二元组被用于许多与文本统计特性相关的领域。在计算语言学和自然语言处理中,它们是许多语言模型不可或缺的组成部分,尤其是在自动语音识别中使用的模型。这些模型依赖于给定前一个词时某个词出现的概率,这是二元组频率的直接应用,用于消除可能的语音解释之间的歧义并提高转录准确性。
在密码学中,二元组频率攻击是解决密码谜题(包括简单替换密码)的经典技术。通过将加密文本中字母对的频率与疑似语言中已知的分布进行比较,密码分析者可以推断出可能的字母映射。这种方法属于更广泛的频率分析范畴,后者利用了自然语言中字符及其组合的非均匀分布特性。
对于统计语言识别,二元组频率提供了一种直接的方法。通过为不同语言构建特征二元组分布的档案,系统可以通过测量未知文本样本的二元组频率与每个档案的匹配程度来对其进行分类。即使对于相对较短的文本片段,这种技术也很有效。
在休闲语言学(即文字游戏学)中,二元组是趣味探索的主题。爱好者们寻找以每种可能的二元组开头的英语单词,或尝试发现包含重复二元组字符串的单词,例如单词“logogogue”。这些活动凸显了英语单词构成中的奇特模式和局限性。
此外,间隙二元组(gappy bigram),也称为跳跃二元组,是允许组成词之间存在间隔的词对。这种变体允许建模更广泛的依赖关系,例如避免连接词或模拟类似于依存语法中的句法关系。这类二元组扩展了基本概念,以捕捉句子中更远距离的交互。
英语中的二元组频率
大型英语语料库中最常见字母二元组的频率遵循一种独特的分布。最常见的二元组是“th”,占所有二元组出现次数的3.56%,其次是“he”占3.07%,“in”占2.43%,“er”占2.05%,“an”占1.99%。其他常见二元组包括“re”占1.85%,“on”占1.76%,“at”占1.49%。
分布继续为“en”占1.45%,“nd”占1.35%,“ti”占1.34%,“es”占1.34%,“or”占1.28%,“te”占1.20%。二元组“of”出现频率为1.17%,“ed”也为1.17%。频率较低但仍值得注意的包括“is”占1.13%,“it”占1.12%,“al”占1.09%,“ar”占1.07%,“st”占1.05%,“to”占1.05%。
进一步向下,“nt”的频率为1.04%,“ng”为0.95%,“se”为0.93%,“ha”为0.93%,“as”为0.87%,“ou”为0.87%,“io”为0.83%,“le”为0.83%,“ve”为0.83%。二元组“co”和“me”各出现0.79%,其次是“de”和“hi”各占0.76%。其他较小百分比包括“ri”占0.73%,“ro”占0.73%,“ic”占0.70%,“ne”占0.69%,“ea”占0.69%,“ra”占0.69%,“ce”占0.65%。
这些频率数据对于密码学等应用至关重要,因为识别最常见的配对有助于破解密码,同时也用于优化键盘布局或文本压缩算法。
与其他n元组的关系
二元组是一般n元组技术的一个特例,其中n表示序列中的元素数量。一元组(n=1)考虑单个词元,而三元组(n=3)及更高阶的n元组捕捉更长的上下文。n的选择涉及一种权衡:更大的n值可以建模更复杂的依赖关系,但由于数据稀疏性,需要指数级更多的数据来可靠估计。
在现代Machine learning应用中,特别是在Natural language processing流程中,n元组统计已在很大程度上被Neural network模型(如Transformer (architecture)架构)所取代。然而,二元组在基础language model研究以及计算资源有限或可解释性要求高的场景中仍然具有相关性。
计算方面
二元组频率的计算直接且高效。对于给定的词元字符串,可以遍历序列,统计每对相邻词元的出现次数。然后可以将结果计数归一化以产生概率。这个过程构成了马尔可夫模型的基础,其中下一个词元的概率以当前词元为条件。
二元组也用于Data Augmentation技术和某些任务的Loss Functions,尽管这些用途不如传统统计方法中常见。序列生成中的Beam Search概念通常依赖于n元组模型的概率估计,尽管现代系统通常使用更先进的基于Neural network的评分。
参见
- 双字母组(正字法)
- 字母频率
- N元组
- 频率分析