跳至内容

字符频率分析与可视化工具

字符频率分析与可视化工具统计一段文本中每个字符出现的次数,并以柱状图形式即时展示字母分布情况和文本构成模式。可用于密码学中破解替换密码、设计霍夫曼编码等数据压缩算法、进行语言模式研究、检测文本编码格式以及自然语言处理中的作者风格分析等多种场景,全部处理在浏览器本地完成。

字符频率分析

加载计算器...
📚

文档

什么是字符频率分析?

字符频率分析是统计一段文本中每个字符出现次数的过程。它涵盖文本中的字母、数字、空格、标点符号以及其他任何符号。结果是一张简单的表格或图表:一个字符对应一个计数。

这个工具会自动统计粘贴或输入其中的任何文本里的每个字符。它在每个不同字符旁列出出现次数并绘制条形图,让最常见的字符一目了然。

这一技术由来已久。阿拉伯学者肯迪(Al-Kindi)于公元 850 年前后描述了它,用来破解简单的密码。如今它还用于数据压缩、拼写和编码检查,以及基本的语言识别。

如何计算字符频率

手工计算字符频率需要经过三个步骤:

  1. 逐个检查文本中的字符,包括空格和标点符号。
  2. 为每个不同的字符持续计数。新字符从1开始;重复出现的字符在已有计数上增加1。
  3. 列出每个字符及其最终计数。

此工具使用一种称为哈希映射的数据结构(在键下存储值的查找表)自动完成同样的操作。对于文本中的每个字符,它都会检查映射中是否已有该字符的条目。如果有,工具就在存储的计数上增加1。如果没有,就创建一个计数为1的新条目。这种方法恰好访问每个字符一次,因此所需时间与文本长度成正比,而不会增长得更快。

统计完成后,工具按字符的字母顺序列出结果。目前,它不提供按计数排序的选项。

以百分比表示字符频率

仅比较计数很难比较不同长度的文本。因此,频率通常表示为字符总数的百分比:

f(c)=ncN×100%f(c) = \frac{n_c}{N} \times 100\%

这里,ncn_c表示字符cc出现的次数,NN表示文本中的字符总数。此工具报告原始计数和字符总数,而不提供百分比列;但可以将某个字符的计数除以总数,再乘以100,计算出该字符的百分比。

计算示例

以单词“mississippi”为例,它包含11个字符,且没有空格或标点符号。

统计每个字母后得到:

字符计数百分比
i436.4%
m19.1%
p218.2%
s436.4%

表格按字母顺序(i、m、p、s)排序,与此工具排列结果的方式一致。计数之和为11,即该单词的总长度。要得到百分比列,每个计数都要除以11,再乘以100;例如,4 ÷ 11 × 100 ≈ 36.4%。

如何使用此工具

在输入框中输入或粘贴文本。工具会立即进行分析,无需按下按钮。文本发生变化时,字符列表和条形图也会相应更新。

结果区域会显示:

  • 每个字符对应一个条形的条形图。条形越高,表示该字符出现得越频繁。
  • 文本中的字符总数,包括空格和标点符号。
  • 每个字符及其确切次数的列表。

“复制”按钮会将结果整理为纯文本,每行包含一个字符及其计数,便于粘贴到电子表格或文档中。在此输出中,空格会标记为“space”,以免被误认为空白行。

在普通的英文文本中,E、T、A、O 和 I 是最常见的五个字母。如果一段文本中 Q 或 Z 等罕见字母出现得异常频繁,它可能经过了编码、加密,或是用另一种语言写成的。

字符频率分析的用途

破解替换密码

替换密码把消息中的每个字母替换成另一个字母或符号,且全文使用相同的替换。由于替换是一致的,原语言的频率规律会保留在加密文本中。在英语中,字母 E 约占所有字母的 12%。如果密文中某个符号出现的比例与此相近,它就很可能代表 E。几个世纪以来,这是破解替换密码的主要方法,后来现代加密使它除了谜题和历史文献之外不再适用。

数据压缩

gzip 工具使用的 DEFLATE 压缩格式,结合了 LZ77 方法与霍夫曼编码。霍夫曼码是根据符号频率构建的。经常出现的字符获得较短的二进制码,罕见的字符获得较长的码。由于常见字符每次出现占用的空间更小,整个文件就会缩小,而不丢失任何信息。

发现编码问题

如果文本显示出奇怪且意外的字符(例如本应显示“é”的地方出现“é”),通常说明文件保存时使用的字符编码与读取时使用的编码不匹配。频率图中如果奇怪符号出现异常峰值,而不是常见字母出现峰值,也可以帮助确认存在编码问题。

语言识别

不同语言有不同的典型字符分布。英语偏好 E、T 和 A。德语还使用 ä、ö 和 ü 等英语中完全不出现的字母。把文本的字符频率与已知的语言特征对照,是一种快速而粗略的判断语言的方法。

写作风格与作者身份

由于作者在标点符号和字母使用方面往往具有稳定习惯,字符层面的模式可以作为识别作者身份的一小部分证据。单凭字符频率很少能证明某段文字出自谁手;将其与用词、句子长度及其他风格标记结合使用,效果最好。

其他文本分析方法

字符频率并不是分析文本的唯一方法。

  • 词频统计完整的单词,而不是字符。它更接近文本含义,常用于关键词研究和主题分析。
  • N-gram 分析考察字符或单词组成的短序列,例如二元组或三元组。预测键盘和自动补全功能会利用这种方法猜测下一个字母或单词。
  • 情感分析判断文本表达的情绪是积极、消极还是中性,所用方法远不止简单计数。
  • 可读性分析(例如弗莱施-金凯德评分)根据句子和单词长度估计文本的阅读难度。

常见问题

字符频率分析能告诉你什么?

它显示文本中每个字符出现的频率。阅读分析结果可以发现对密码学、压缩、编码错误检测或文本语言猜测有用的模式。

此工具如何对结果排序?

它按字母顺序排列字符。没有改为按次数排序的选项;要找出最常见和最少见的字符,必须查看次数或阅读条形图。

此工具会显示百分比吗?

不会。它报告每个字符的原始计数和字符总数。将某个字符的计数除以总数,再乘以100,即可计算百分比。

字符频率分析能破解现代加密吗?

不能。它只适用于简单的替换密码,即一个字符始终代表同一个替换字符。AES 等现代加密会生成没有这种一致模式的输出,因此频率计数无法揭示原始消息的任何信息。

此工具会统计空格和标点符号吗?

会。输入中的每个字符都会被统计,包括空格、制表符、换行符和标点符号。在普通文本中,空格通常是出现次数最多的单个字符。

需要多少文本才能得到可靠的模式?

没有固定的最小长度。很短的文本可能纯粹因偶然而显示出与预期规律相差很大的频率。较长的样本往往更接近已知的语言规律。

参考文献

  1. Naskręcki, B.,亚当·密茨凯维奇大学(Adam Mickiewicz University)。Elements of Cryptanalysis, Chapter 3: Frequency Analysis。频率分析 — 肯迪关于频率分析的论著,写于公元 850 年前后。
  2. 康奈尔大学数学系。English Letter Frequency。英语字母频率表 — 在 40,000 词的样本中,E 为 12.02%,其次是 T、A、O 和 I。
  3. IETF。RFC 1951: DEFLATE Compressed Data Format Specification version 1.3。RFC 1951 — DEFLATE 结合了 LZ77 与霍夫曼编码;霍夫曼码是根据符号频率构建的。