如何在EmEditor中自动统计高频重复词并按频次排序输出?
完全可行,以下是两种实操方案
方案一:用EmEditor自带的高级排序功能
操作步骤简单直接:
- 全选所有内容(快捷键
Ctrl+A) - 点击菜单栏「编辑」→「排序」→「高级排序」
- 在弹出窗口中,选择「按列排序」,排序类型选「文本」,勾选删除重复项并计数,点击确定
- 处理完成后,再执行一次降序排序(「编辑」→「排序」→「降序」),就能把重复次数最多的单词排在最顶部,输出格式就是你要的「次数 单词」
方案二:用EmEditor宏脚本处理(适配超大数据量)
如果3000万条数据用自带功能运行卡顿,可通过宏脚本实现:
- 打开EmEditor,点击「宏」→「新建宏」
- 粘贴以下JScript代码:
function CountWords() { var doc = document; var arr = doc.Text.split("\n"); var countMap = {}; // 遍历统计每个单词的出现次数 for(var i = 0; i < arr.length; i++){ var word = arr[i].trim(); if(word === "") continue; countMap[word] = (countMap[word] || 0) + 1; } // 按次数从高到低排序统计结果 var sortedList = Object.entries(countMap).sort(function(a, b){ return b[1] - a[1]; }); // 清空原文档,写入排序后的统计内容 doc.Clear(); for(var j = 0; j < sortedList.length; j++){ doc.Text += sortedList[j][1] + " " + sortedList[j][0] + "\n"; } } CountWords();
- 保存宏后,点击「宏」→「运行宏」,脚本执行完成后,文档会直接显示按次数降序排列的统计结果
提示:处理3000万条数据前,建议关闭EmEditor的实时拼写检查、预览等功能,减少资源占用,提升运行流畅度。
内容的提问来源于stack exchange,提问作者Marcin Tomczak
相关产品推荐
相关产品推荐

