如何计算大量文本中的单词大小?

时间:2016-08-28 14:59:06

标签: regex

我有大量的文字 - 大约7000字。

我想得到单词大小的计数,例如使用正则表达式计算4个字母单词,6个字母单词。

我不确定如何解决这个问题 - 到目前为止,我的思考过程是将句子拆分成一个String数组,这样我就可以计算每个元素的大小。使用正则表达式有更简单的方法吗?我正在使用Groovy完成这项任务。

编辑:所以我确实使用普通数组工作,但它有点凌乱。最终的解决方案只是使用了Groovy的countBy()方法,并为可能遇到类似问题的人提供了少量逻辑。

3 个答案:

答案 0 :(得分:2)

不要忘记单词boudary token \b。如果您没有将其放在\w{n}令牌的两端,则还会找到所有超过n个字符的字词。对于长度为6个字符的4个字符的单词\b\w{4}\b,请使用\b\w{6}\bHere is a demo以7000字为输入字符串。

Java实现:

String dummy = ".....";
Pattern pattern = Pattern.compile("\\b\\w{6}\\b");
Matcher matcher = pattern.matcher(dummy);

int count = 0;
while (matcher.find())
    count++;

System.out.println(count);

答案 1 :(得分:0)

逐字逐句阅读文件并计算其长度。将计数器存储在数组中,并在读取每个单词后递增值。

答案 2 :(得分:0)

您可以为所需的每种尺寸生成正则表达式。

  • Node会使每个单词完整地显示6个字母
  • \w{6}将使用7个字母完全填写每个单词
  • 等......

因此,您可以在文本上运行其中一个正则表达式,并启用全局标志(查找整个字符串中的每个实例)。这将为您提供每个匹配的数组,然后您可以找到它的长度。