Java 查找文件中每个单词的频率

Java 查找文件中每个单词的频率,java,Java,我试图找出文件中每个单词的频率 不仅要搜索某个单词的实例数量,还要搜索每个单词的频率 例如,如果文件包含以下句子: “超级酷超级酷的人真是太棒了!” 它将输出以下内容: Super - 2 Awesome - 2 Cool - 1 People - 1 Are - 1 显示每个单词的频率 在Java中如何做到这一点,但要计算整个文件,却不知道要测试哪些单词?请尝试以下方法: // This will match all non-word characters, i.e. characters

我试图找出文件中每个单词的频率

不仅要搜索某个单词的实例数量,还要搜索每个单词的频率

例如,如果文件包含以下句子:

“超级酷超级酷的人真是太棒了!”

它将输出以下内容:

Super - 2
Awesome - 2
Cool - 1
People - 1
Are - 1
显示每个单词的频率

在Java中如何做到这一点,但要计算整个文件,却不知道要测试哪些单词?

请尝试以下方法:

// This will match all non-word characters, i.e. characters that are
// not in [a-zA-Z_0-9]. This should match whitespaces and interpunction.
String nonWordDelimiter="[\W]+";

String[] words = text.split(nonWordDelimiter);

Map<String, Integer> frequencies = new LinkedHashMap<String, Integer>();
for (String word : words) {
    if (!word.isEmpty()) {
        Integer frequency = frequencies.get(word);

        if (frequency == null) {
            frequency = 0;
        }

        ++frequency;
        frequencies.put(word, frequency);
    }
}
//这将匹配所有非单词字符,即
//不在[a-zA-Z_0-9]。这应该与空格和函数间匹配。
字符串非字分隔符=“[\W]+”;
String[]words=text.split(非单词分隔符);
映射频率=新LinkedHashMap();
for(字符串字:字){
如果(!word.isEmpty()){
整数频率=频率。获取(字);
如果(频率==null){
频率=0;
}
++频率;
频率。输入(字、频率);
}
}
最后,map
frequencies
将包含每个单词的频率。

请尝试以下操作:

// This will match all non-word characters, i.e. characters that are
// not in [a-zA-Z_0-9]. This should match whitespaces and interpunction.
String nonWordDelimiter="[\W]+";

String[] words = text.split(nonWordDelimiter);

Map<String, Integer> frequencies = new LinkedHashMap<String, Integer>();
for (String word : words) {
    if (!word.isEmpty()) {
        Integer frequency = frequencies.get(word);

        if (frequency == null) {
            frequency = 0;
        }

        ++frequency;
        frequencies.put(word, frequency);
    }
}
//这将匹配所有非单词字符,即
//不在[a-zA-Z_0-9]。这应该与空格和函数间匹配。
字符串非字分隔符=“[\W]+”;
String[]words=text.split(非单词分隔符);
映射频率=新LinkedHashMap();
for(字符串字:字){
如果(!word.isEmpty()){
整数频率=频率。获取(字);
如果(频率==null){
频率=0;
}
++频率;
频率。输入(字、频率);
}
}

最后,地图
frequencies
将包含每个单词的频率。

这里有两个独立的问题。把他们一分为二。使用
映射
,检查映射是否有字符串标记的条目。如果是,则在计数中添加1,否则将其设置为1。若要查看没有标记的HTML页面文本,请使用。HtmlPage类有一个方法。把他们一分为二。使用
映射
,检查映射是否有字符串标记的条目。如果是,则在计数中添加1,否则将其设置为1。若要查看没有标记的HTML页面文本,请使用。HtmlPage类有一个方法。