关键词词云

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