请帮我使用Java写一个能够进行中文词频统计的方法
时间: 2023-06-05 17:07:38 浏览: 160
好的,我可以帮您使用Java编写一个中文词频统计的方法。以下是示例代码:
```
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class WordFrequency {
public static void main(String[] args) throws IOException {
// 读取文件内容
File file = new File("input.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
StringBuilder builder = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
builder.append(line);
}
reader.close();
String content = builder.toString();
// 中文分词
Set<String> wordsSet = WordSegmenter.segment(content);
// 统计词频
Map<String, Integer> frequencyMap = new HashMap<String, Integer>();
for (String word : wordsSet) {
if (frequencyMap.containsKey(word)) {
frequencyMap.put(word, frequencyMap.get(word) + 1);
} else {
frequencyMap.put(word, 1);
}
}
// 输出结果
Set<String> words = frequencyMap.keySet();
for (String word : words) {
System.out.println(word + ": " + frequencyMap.get(word));
}
}
}
```
其中,`input.txt`是需要统计词频的文本文件,`WordSegmenter`是一个中文分词的工具,可以使用第三方库,如`jieba`等。
注意:以上代码只是一个示例,实际中文词频统计的实现要考虑更多的问题,如停用词过滤、词性标注等。如果您需要更加复杂的中文自然语言处理功能,可以考虑使用开源的自然语言处理库,如HanLP等。
阅读全文