出现次数统计
文本所有处理都在浏览器本地完成,数据不上传服务器
「哪个东西出现了几次」—— 四种口径回答的是同一个问题,换的只是「东西」的粒度:字符(哪些字用得多)、词(按空白分词)、行(哪一行重复了)、指定的字符串(我关心的那几个词各出现了几次)。 空格、制表符、换行这些不可见字符要给个能看出来的标签。 直接拿它们当标签的话,那一行看上去就是「12 次」而不知道统计的是什么。所以这几类会显示成 `␠ 空格`、`⇥ 制表符`、`↵ 换行` —— 符号是通用的,名字跟随界面语言。 计数口径是不重叠的。 在 `aaaa` 里找 `aa` 算 2 次而不是 3 次,这是文本检索的通行做法。排序也是确定的:次数降序,次数相同时按字符升序 —— 若按「出现先后」排,同一份数据在两次运行间可能给出不同顺序,而用户会以为是文本变了。 结果是一张「标签 + 值」的表,每一行都能单独复制。
功能
- 四种口径:字符、词、行、指定字符串
- 按次数降序排列,次数相同时按字符升序,结果稳定可复现
- 每条频率行给一条相对频率条(按这一类里最高的那项归一化)与占比,前 10 名单独成组
- 空格、制表符、换行、全角空格给出符号 + 名字的标签
- 每个字、每个词或每一行都能单独点一下复制
- 可只列出出现 N 次以上的项,也可限制列出多少项并说明剩余数量
- 忽略大小写可选,且显示时仍用你写的原始大小写
- 指定字符串按不重叠计数(`aaaa` 里找 `aa` 是 2 次),写重复的目标只算一次
- 结果是一张对齐的表,可整段复制也可逐行取用
- 全程在浏览器本地计算,内容不上传
使用方法
- 粘贴要统计的文本
- 选统计口径:字符、词、行,还是自己指定几个字符串
- 按需要用「至少出现几次」过滤掉长尾
- 点某一行的复制按钮取走一项,或点「复制全部」
常见问题
- `aaaa` 里 `aa` 出现了几次?
- 2 次,不是 3 次。计数是不重叠的:找到第一个 `aa` 之后从它末尾继续往下找,所以第 2 个 `a` 不会被重复使用。这是文本检索领域的通行口径(编辑器的「查找全部」、`grep -o` 都是这个行为)。重叠计数会给出 3 —— 两种口径都能自圆其说,所以这里写清楚用的是哪一种。
- 中文能按词统计吗?
- 不能,这个工具的「词」是按空白切的 —— 中文正文里没有空格,整句话会被当成一个词,统计出来每项都是 1 次。中文请用字符那一档:中文的字本身就是有意义的单位,「哪个字用得多」是会写字的人真正想知道的。真要按词统计中文,得先分词,那需要一份词典,而这个工具刻意不带。
- 空行会被统计吗?
- 不会。按行统计时空行被排除在外 —— 它没有内容可看,而「这段文本里有 12 个空行」也不是任何人打开这个页面想查的事。如果你确实需要知道空行数量,用「文本清洗」勾上「删除空行」,对比处理前后的行数差即可。
- 为什么第一名的条满格,百分比却不到 100%?
- 因为两者算的不是一回事。条是按这一类里出现次数最多的那项归一化到满格的 —— 它只回答「谁比谁多、多多少」,所以第一名总是满格,与它实际占多少无关。百分比才是它占总频次的多少。比如 `aaab` 里 `a` 的条是满格,但它只占 75%。
相关工具
字数统计
文本中英混排的文本到底有多长?中文按字、英文按词分开统计,给出字符数、行数、字节数、阅读与朗读时长,以及会被切成几条短信。全部在本机完成。
文本清洗
文本清洗从日志或表格里复制出来的一列内容:去重行、排序、去空行、去首尾空白、去行号、合并多空格,规则逐条开关。粘贴的内容只在本机处理。
文本逆序翻转
文本把文本按字符、整段、行序或词序倒过来,四种翻转各自独立,emoji 与组合变音符号不会拆坏。全部在浏览器本地完成。
文本对比
文本把两份文本逐行对比,高亮标出新增、删除与未改动的行,改动按最小差异对齐,而不是整段标成变了。全部在浏览器本地完成,内容不上传。
命名风格转换
文本在十四种命名风格之间转换标识符,拆词时认得 fooBarBaz 与 FOO_BAR 这类混写,连续大写也会按词拆开。全部在浏览器本地完成,不上传。
简繁转换
文本在简体与繁体之间互转中文,常用词整词替换,其余字取最常见写法,因此个别字词仍需人工核对。全部在浏览器本地完成,不上传。