// Path: src/me/xiaosheng/chnlp/Config.java
// public class Config {
// 
//     private static String configFilePath = "ahanlp.properties";
//     private static Properties props = new Properties();
//     static {
//         try {
//             ClassLoader loader = Thread.currentThread().getContextClassLoader();
//             if (loader == null) loader = Config.class.getClassLoader();
//             props.load(new InputStreamReader(loader.getResourceAsStream(configFilePath), "UTF-8"));
//         } catch (IOException e) {
//             e.printStackTrace();
//         }
//     }
// 
//     /**
//      * word2vec模型路径
//      * 
//      * @return
//      */
//     public static String word2vecModelPath() {
//         return props.getProperty("word2vecModel");
//     }
//     
//     /**
//      * HanLDA模型路径
//      * 
//      * @return
//      */
//     public static String hanLDAModelPath() {
//         return props.getProperty("hanLDAModel");
//     }
//     
//     /**
//      * SRL模型路径
//      * 
//      * @return
//      */
//     public static String srlTaggerModelPath() {
//         return props.getProperty("srlTaggerModel");
//     }
//     
//     public static String srlParserModelPath() {
//         return props.getProperty("srlParserModel");
//     }
//     
//     public static String srlModelPath() {
//         return props.getProperty("srlModel");
//     }
//     
//     /**
//      * word cloud文件目录
//      * 
//      * @return
//      */
//     public static String wordCloudPath() {
//         return props.getProperty("wordCloudPath");
//     }
//     
//     /**
//      * python 调用命令
//      * 
//      * @return
//      */
//     public static String pythonCMD() {
//         return props.getProperty("pythonCMD");
//     }
// }


import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
import java.util.UUID;
import me.xiaosheng.chnlp.Config;
package me.xiaosheng.chnlp.addition;



public class WordCloud {

    private List<String> wordList = null;

    public WordCloud(List<String> wordList) {
        this.wordList = wordList;
    }
    
    /**
     * 绘制词云图片
     * @param savePicPath 图片存储路径
     * @throws IOException
     */
    public void createImage(String savePicPath) throws IOException {
        createImage(savePicPath, 500, 400, false);
    }
    
    /**
     * 绘制词云图片
     * @param savePicPath 图片存储路径
     * @param blackBackground 是否使用黑色背景
     * @throws IOException
     */
    public void createImage(String savePicPath, boolean blackBackground) throws IOException {
        createImage(savePicPath, 500, 400, true);
    }
    
    /**
     * 绘制词云图片
     * @param savePicPath 图片存储路径
     * @param picWidth 图片宽度
     * @param picHeight 图片高度
     * @throws IOException
     */
    public void createImage(String savePicPath, int picWidth, int picHeight) throws IOException {
        createImage(savePicPath, picWidth, picHeight, false);
    }
    
    /**
     * 绘制词云图片
     * @param savePicPath 图片存储路径
     * @param picWidth 图片宽度
     * @param picHeight 图片高度
     * @param blackBackground 是否使用黑色背景
     * @throws IOException
     */
    public void createImage(String savePicPath, int picWidth, int picHeight, boolean blackBackground) throws IOException {
        String tempFileName = UUID.randomUUID().toString();
        // 生成临时词语文件
// Path: src/me/xiaosheng/chnlp/Config.java
// public class Config {
// 
//     private static String configFilePath = "ahanlp.properties";
//     private static Properties props = new Properties();
//     static {
//         try {
//             ClassLoader loader = Thread.currentThread().getContextClassLoader();
//             if (loader == null) loader = Config.class.getClassLoader();
//             props.load(new InputStreamReader(loader.getResourceAsStream(configFilePath), "UTF-8"));
//         } catch (IOException e) {
//             e.printStackTrace();
//         }
//     }
// 
//     /**
//      * word2vec模型路径
//      * 
//      * @return
//      */
//     public static String word2vecModelPath() {
//         return props.getProperty("word2vecModel");
//     }
//     
//     /**
//      * HanLDA模型路径
//      * 
//      * @return
//      */
//     public static String hanLDAModelPath() {
//         return props.getProperty("hanLDAModel");
//     }
//     
//     /**
//      * SRL模型路径
//      * 
//      * @return
//      */
//     public static String srlTaggerModelPath() {
//         return props.getProperty("srlTaggerModel");
//     }
//     
//     public static String srlParserModelPath() {
//         return props.getProperty("srlParserModel");
//     }
//     
//     public static String srlModelPath() {
//         return props.getProperty("srlModel");
//     }
//     
//     /**
//      * word cloud文件目录
//      * 
//      * @return
//      */
//     public static String wordCloudPath() {
//         return props.getProperty("wordCloudPath");
//     }
//     
//     /**
//      * python 调用命令
//      * 
//      * @return
//      */
//     public static String pythonCMD() {
//         return props.getProperty("pythonCMD");
//     }
// }


// Path: src/me/xiaosheng/chnlp/addition/WordCloud.java
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
import java.util.UUID;
import me.xiaosheng.chnlp.Config;

package me.xiaosheng.chnlp.addition;



public class WordCloud {

    private List<String> wordList = null;

    public WordCloud(List<String> wordList) {
        this.wordList = wordList;
    }
    
    /**
     * 绘制词云图片
     * @param savePicPath 图片存储路径
     * @throws IOException
     */
    public void createImage(String savePicPath) throws IOException {
        createImage(savePicPath, 500, 400, false);
    }
    
    /**
     * 绘制词云图片
     * @param savePicPath 图片存储路径
     * @param blackBackground 是否使用黑色背景
     * @throws IOException
     */
    public void createImage(String savePicPath, boolean blackBackground) throws IOException {
        createImage(savePicPath, 500, 400, true);
    }
    
    /**
     * 绘制词云图片
     * @param savePicPath 图片存储路径
     * @param picWidth 图片宽度
     * @param picHeight 图片高度
     * @throws IOException
     */
    public void createImage(String savePicPath, int picWidth, int picHeight) throws IOException {
        createImage(savePicPath, picWidth, picHeight, false);
    }
    
    /**
     * 绘制词云图片
     * @param savePicPath 图片存储路径
     * @param picWidth 图片宽度
     * @param picHeight 图片高度
     * @param blackBackground 是否使用黑色背景
     * @throws IOException
     */
    public void createImage(String savePicPath, int picWidth, int picHeight, boolean blackBackground) throws IOException {
        String tempFileName = UUID.randomUUID().toString();
        // 生成临时词语文件
        BufferedWriter bw = new BufferedWriter(new FileWriter(Config.wordCloudPath() + tempFileName));