如何实现字长频率计数器

迈克·沃索(Mike Wortho)

文本分析领域利用许多不同的工具来提取有关书面作品的信息。这些方法之一是单词长度频率,它用于评估写作模式(例如,一位作者可能更喜欢使用简短的“ snappy”单词,而另一位作者可能更喜欢更长的单词)。此类信息可用于帮助识别(或排除)匿名文本的作者,并且还可用于改善文本的“流畅度”或可读性。频率分析以其最简单的形式计算长度为1、2、3,...,n的单词数,其中n是给定文本中最长单词的长度。例如,分析句子“我是男人”将产生输出“ 2,1,1”(即,两个长度为1的单词(“ I”,“ a”),一个长度为2的单词(“ am”) ” )和一个长度为3的单词(“ man”)。这项工作需要您生成一个基于文本的应用程序(即在命令行运行的程序,而不是图形程序)来执行此分析,从而计算一段文本的统计范围。分配规范如下:

该程序应读取一个名为body.txt的文件,将其打印出来,并分析其字长频率。对于“基本”(即通过)标记,您应该计算文本中单词长度的频率,并以文本形式显示结果(即,仅列出频率)。

到目前为止,我已经获得了下面的代码,并且在如何前进方面确实很挣扎,任何人都可以给出的任何指针都将对我有真正的帮助。我是这个论坛的新手,并且自己编写代码,因此,如果这是一个基本问题,请不要侮辱我。

import java.io.*;

public class Help1 {

    public static void main(String args[]) {
        try {
            BufferedReader reader = new BufferedReader(new FileReader(
                    "body.txt"));
            String text = null;

            while ((text = reader.readLine()) != null) {

                System.out.println(text);
                // Work in this loop
                // The code takes each line in the file body.txt and
                // prints out each word
                String words[] = text.split(" ");
                for (int i = 0; i < words.length; i++) {
                    System.out.println("words[" + i + "]=" + words[i]);
                }

            }
        } catch (Exception e) {
            e.printStackTrace();

        }
    }
}
可怕的Ta

您需要一种方法来计算每个单词长度出现的次数,不是吗。这是一项任务,所以对任何只给出答案的人都感到羞耻,但这可能会帮助您通过以下方式思考问题:

  • 您需要一种方法来为每个字长维护一个单独的计数器。在我看来,这就像一张地图。它将由字长索引,并且与每个索引条目关联的值将是字长出现的次数。
  • 您的第一步是获取单词的长度。
  • 该长度可能不在地图中,在这种情况下,您必须对此做些事情。
  • 如果它在列表中,那么您将不得不做一些稍微不同的事情。

最后,您必须遍历地图并打印结果。

您可以在此处获取有关如何使用地图的详细信息:http :
//docs.oracle.com/javase/tutorial/collections/interfaces/map.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章