文本分析领域利用许多不同的工具来提取有关书面作品的信息。这些方法之一是单词长度频率,它用于评估写作模式(例如,一位作者可能更喜欢使用简短的“ 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();
}
}
}
您需要一种方法来计算每个单词长度出现的次数,不是吗。这是一项任务,所以对任何只给出答案的人都感到羞耻,但这可能会帮助您通过以下方式思考问题:
最后,您必须遍历地图并打印结果。
您可以在此处获取有关如何使用地图的详细信息:http :
//docs.oracle.com/javase/tutorial/collections/interfaces/map.html
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句