private static final String HAN_WD = "[^\u4e00-\u9fa5]";
private static final String TXT_PATH = "E:\\dev\\FNLP\\fnlp.txt";
/**
* hanlp关键词提取
*/
@Test
public void test3() {
try{
BufferedReader in = new BufferedReader(new FileReader(TXT_PATH));
List<String> ls = new ArrayList<String>();
while(true){
String s = in.readLine();
if(isNotNull(s)) {
String reg = HAN_WD;
s = s.replaceAll(reg, " ");
List<String> uns = HanLP.extractKeyword(s, 100);
ls.addAll(uns);
} else if(isNull(s)) {
break;
} else {
continue;
}
}
in.close();
Collections.sort(ls, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o2.compareTo(o1);
}
});
for(String s : ls) {
System.out.println(s);
}
PrintWriter out = new PrintWriter(new File("E:\\wordcloud.txt"));
for(String s : ls) {
out.println(s);
}
out.flush();
out.close();
} catch(Exception e) {
e.printStackTrace();
}
}
/**
* 新的词云显示方式
* @throws IOException
*/
@Test
public void test5() throws IOException {
FrequencyAnalyzer fa = new FrequencyAnalyzer();
fa.setWordFrequenciesToReturn(500);
fa.setMinWordLength(2);
fa.setWordTokenizer(new ChineseWordTokenizer());
final List<WordFrequency> wLs = fa.load("E:\\wordcloud.txt");
Dimension dimension = new Dimension(2000 , 2000);
final LayeredWordCloud lwc = new LayeredWordCloud(1, dimension, CollisionMode.PIXEL_PERFECT);
lwc.setPadding(0, 3);
lwc.setKumoFont(0, new KumoFont(new Font("宋体", Font.BOLD, 16)));
lwc.setWordStartStrategy(0, new CenterWordStart());
lwc.setBackgroundColor(new Color(255, 255, 255));
lwc.setColorPalette(0, new LinearGradientColorPalette(Color.BLUE, Color.GREEN, Color.CYAN, 30, 30));
lwc.setFontScalar(0, new LinearFontScalar(30, 80));
lwc.setBackground(0, new CircleBackground(1000));
lwc.setWordPlacer(0, new LinearWordPlacer());
lwc.setAngleGenerator(0, new AngleGenerator(1, 2, 10));
lwc.build(0, wLs);
lwc.writeToFile("E:\\wy.png");
System.out.println("OK!");
}
关键词词云
猜你喜欢
转载自blog.csdn.net/a13662080711/article/details/79899403
今日推荐
周排行