Java源码示例:org.apdplat.word.segmentation.Segmentation

示例1
@Override
protected NlpTokenizer<? extends NlpToken> getNlpTokenizer(Map<String, String> configurations) {
    Segmentation segmentation = build(configurations);

    WordTokenizer tokenizer = new WordTokenizer(segmentation);
    return tokenizer;
}
 
示例2
@Override
public Segmentation build(Map<String, String> configurations) {
    for (Entry<String, String> keyValue : configurations.entrySet()) {
        String key = keyValue.getKey();
        String value = keyValue.getValue();
        WordConfTools.set(key, value);
    }

    String algorithm = get(configurations, "algorithm", "FullSegmentation");
    Segmentation segmentation = SegmentationFactory.getSegmentation(SegmentationAlgorithm.valueOf(algorithm));
    return segmentation;
}
 
示例3
@Override
protected Tokenizer getSegmenter() {
    // 可以配置到word.local.conf
    // 保持标点符号
    WordConfTools.set("keep.punctuation", "true");
    // 保持空格
    WordConfTools.set("keep.whitespace", "true");
    Segmentation segmentation = SegmentationFactory.getSegmentation(SegmentationAlgorithm.FullSegmentation);
    WordTokenizer tokenizer = new WordTokenizer(segmentation);
    return tokenizer;
}
 
示例4
@Override
protected NlpTokenizer<? extends NlpToken> getTokenizer() {
    // 保持标点符号
    WordConfTools.set("keep.punctuation", "true");
    // 保持空格
    WordConfTools.set("keep.whitespace", "true");
    Segmentation segmentation = SegmentationFactory.getSegmentation(SegmentationAlgorithm.FullSegmentation);
    return new WordTokenizer(segmentation);
}
 
示例5
public static void main(String[] args){
    Segmentation segmentation = new MinimalWordCount();
    if(args !=null && args.length > 0){
        System.out.println(segmentation.seg(Arrays.asList(args).toString()));
        return;
    }
    System.out.println(segmentation.seg("独立自主和平等互利的原则"));
    System.out.println(segmentation.seg("我爱楚离陌"));
}
 
示例6
public static void main(String[] args){
    Segmentation m = new FullSegmentation();
    if(args !=null && args.length > 0){
        System.out.println(m.seg(Arrays.asList(args).toString()));
        return;
    }
    String text = "蝶舞打扮得漂漂亮亮出现在张公公面前";
    System.out.println(m.seg(text));
}
 
示例7
public static void main(String[] args){
    Segmentation segmentation = new MaxNgramScore();
    if(args !=null && args.length > 0){
        System.out.println(segmentation.seg(Arrays.asList(args).toString()));
        return;
    }
    System.out.println(segmentation.seg("独立自主和平等互利的原则"));
    System.out.println(segmentation.seg("我爱杨尚川"));
}
 
示例8
public WordTokenizer(Segmentation segmentation) {
    this.segmentation = segmentation;
}
 
示例9
public WordAnalyzer(Segmentation segmentation) {
    this.segmentation = segmentation;
}
 
示例10
public WordTokenizer(Segmentation segmentation) {
    this.segmentation = segmentation;
}
 
示例11
public static void main(String[] args) {
    Segmentation segmentation = new PureEnglish();
    System.out.println(segmentation.seg("Your function may also be added permanently to Hive, however this requires a small modification to a Hive Java file and then rebuilding Hive."));
}
 
示例12
public ChineseWordAnalyzer(Segmentation segmentation) {
    this.segmentation = segmentation;
}
 
示例13
public ChineseWordTokenizer(Segmentation segmentation) {
    this.segmentation = segmentation;
}
 
示例14
/**
 *
 * 对文件进行分词
 * @param input 输入文件
 * @param output 输出文件
 * @param removeStopWords 是否移除停用词
 * @param segmentationAlgorithm 分词算法
 * @param fileSegmentationCallback 分词结果回调
 * @throws Exception
 */
public static void seg(File input, File output, boolean removeStopWords, SegmentationAlgorithm segmentationAlgorithm, FileSegmentationCallback fileSegmentationCallback) throws Exception{
    LOGGER.info("开始对文件进行分词:"+input.toString());
    Segmentation segmentation = SegmentationFactory.getSegmentation(segmentationAlgorithm);
    float max=(float)Runtime.getRuntime().maxMemory()/1000000;
    float total=(float)Runtime.getRuntime().totalMemory()/1000000;
    float free=(float)Runtime.getRuntime().freeMemory()/1000000;
    String pre="执行之前剩余内存:"+max+"-"+total+"+"+free+"="+(max-total+free);
    //准备输出目录
    if(!output.getParentFile().exists()){
        output.getParentFile().mkdirs();
    }
    try(BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(input),"utf-8"));
        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(output),"utf-8"))){
        long size = Files.size(input.toPath());
        LOGGER.info("size:"+size);
        LOGGER.info("文件大小:"+(float)size/1024/1024+" MB");
        int textLength=0;
        int progress=0;
        long start = System.currentTimeMillis();
        String line = null;
        while((line = reader.readLine()) != null){
            if("".equals(line.trim())){
                writer.write("\n");
                continue;
            }
            textLength += line.length();
            List<Word> words = segmentation.seg(line);
            if(removeStopWords){
                //停用词过滤
                StopWord.filterStopWords(words);
            }
            if(words == null){
                continue;
            }
            for(Word word : words){
                if(fileSegmentationCallback != null) {
                    fileSegmentationCallback.callback(word);
                }
                writer.write(word.getText()+" ");
            }
            writer.write("\n");
            progress += line.length();
            if( progress > 500000){
                progress = 0;
                LOGGER.info("分词进度:"+(int)((float)textLength*2/size*100)+"%");
            }
        }
        long cost = System.currentTimeMillis() - start;
        float rate = textLength/cost;
        LOGGER.info("字符数目:"+textLength);
        LOGGER.info("分词耗时:"+getTimeDes(cost)+" 毫秒");
        LOGGER.info("分词速度:"+rate+" 字符/毫秒");
    }
    max=(float)Runtime.getRuntime().maxMemory()/1000000;
    total=(float)Runtime.getRuntime().totalMemory()/1000000;
    free=(float)Runtime.getRuntime().freeMemory()/1000000;
    String post="执行之后剩余内存:"+max+"-"+total+"+"+free+"="+(max-total+free);
    LOGGER.info(pre);
    LOGGER.info(post);
    LOGGER.info("将文件 "+input.toString()+" 的分词结果保存到文件 "+output);
}
 
示例15
@Test
public void testSeg() {
    Segmentation segmentation = new MaximumMatching();
    List<String> text = new ArrayList<>();
    text.add("长春市长春节致辞");
    text.add("杨");
    text.add("杨尚川好");
    text.add("杨尚川是APDPlat应用级产品开发平台的作者");
    text.add("他说的确实在理");
    text.add("提高人民生活水平");
    text.add("他俩儿谈恋爱是从头年元月开始的");
    text.add("王府饭店的设施和服务是一流的");
    text.add("和服务于三日后裁制完毕,并呈送将军府中");
    text.add("研究生命的起源");
    text.add("他明天起身去北京");
    text.add("在这些企业中国有企业有十个");
    text.add("他站起身来");
    text.add("他们是来查金泰撞人那件事的");
    text.add("行侠仗义的查金泰远近闻名");
    text.add("他从马上摔下来了,你马上下来一下");
    text.add("乒乓球拍卖完了");
    text.add("咬死猎人的狗");
    text.add("地面积了厚厚的雪");
    text.add("这几块地面积还真不小");
    text.add("大学生活象白纸");
    text.add("结合成分子式");
    text.add("有意见分歧");
    text.add("发展中国家兔的计划");
    text.add("明天他将来北京");
    text.add("税收制度将来会更完善");
    text.add("依靠群众才能做好工作");
    text.add("现在是施展才能的好机会");
    text.add("把手举起来");
    text.add("茶杯的把手断了");
    text.add("以新的姿态出现在世界东方");
    text.add("使节约粮食进一步形成风气");
    text.add("反映了一个人的精神面貌");
    text.add("美国加州大学的科学家发现");
    text.add("我好不挺好");
    text.add("木有");
    text.add("下雨天留客天天留我不留");
    text.add("叔叔亲了我妈妈也亲了我");
    
    List<String> expResult = new ArrayList<>();
    expResult.add("[长春市, 长春, 节, 致辞]");
    expResult.add("[杨]");
    expResult.add("[杨尚川, 好]");
    expResult.add("[杨尚川, 是, apdplat, 应用级, 产品开发, 平台, 的, 作者]");
    expResult.add("[他, 说, 的确, 实在, 理]");
    expResult.add("[提高, 人民, 生活, 水平]");
    expResult.add("[他俩, 儿, 谈恋爱, 是从, 头年, 元月, 开始, 的]");
    expResult.add("[王府, 饭店, 的, 设施, 和服, 务, 是, 一流, 的]");
    expResult.add("[和服, 务, 于, 三日, 后, 裁制, 完毕, 并, 呈送, 将军府, 中]");
    expResult.add("[研究生, 命, 的, 起源]");
    expResult.add("[他, 明天, 起身, 去, 北京]");
    expResult.add("[在, 这些, 企业, 中国, 有, 企业, 有, 十个]");
    expResult.add("[他, 站起, 身, 来]");
    expResult.add("[他们, 是, 来, 查, 金泰, 撞人, 那件事, 的]");
    expResult.add("[行侠仗义, 的, 查, 金泰, 远近闻名]");
    expResult.add("[他, 从, 马上, 摔下来, 了, 你, 马上, 下来, 一下]");
    expResult.add("[乒乓球拍, 卖完, 了]");
    expResult.add("[咬死, 猎人, 的, 狗]");
    expResult.add("[地面, 积, 了, 厚厚的, 雪]");
    expResult.add("[这, 几块, 地面, 积, 还真, 不小]");
    expResult.add("[大学生, 活象, 白纸]");
    expResult.add("[结合, 成分, 子式]");
    expResult.add("[有意见, 分歧]");
    expResult.add("[发展中国家, 兔, 的, 计划]");
    expResult.add("[明天, 他, 将来, 北京]");
    expResult.add("[税收制度, 将来, 会, 更, 完善]");
    expResult.add("[依靠群众, 才能, 做好, 工作]");
    expResult.add("[现在, 是, 施展才能, 的, 好机会]");
    expResult.add("[把手, 举起来]");
    expResult.add("[茶杯, 的, 把手, 断了]");
    expResult.add("[以, 新的, 姿态, 出现在, 世界, 东方]");
    expResult.add("[使节, 约, 粮食, 进一步, 形成, 风气]");
    expResult.add("[反映, 了, 一个人, 的, 精神面貌]");
    expResult.add("[美国加州大学, 的, 科学家, 发现]");
    expResult.add("[我, 好不, 挺好]");
    expResult.add("[木, 有]");
    expResult.add("[下雨天, 留客, 天天, 留, 我, 不留]");
    expResult.add("[叔叔, 亲了, 我, 妈妈, 也, 亲了, 我]");
    
    for(int i=0; i<text.size(); i++){
        List<Word> result = segmentation.seg(text.get(i));
        for(Word word : result){
            word.setPartOfSpeech(null);
        }
        assertEquals(expResult.get(i).toString(), result.toString());
    }
}
 
示例16
@Test
public void testSeg() {
    Segmentation segmentation = new ReverseMaximumMatching();
    List<String> text = new ArrayList<>();
    text.add("长春市长春节致辞");
    text.add("好");
    text.add("杨尚川好");
    text.add("杨尚川是APDPlat应用级产品开发平台的作者");
    text.add("他说的确实在理");
    text.add("提高人民生活水平");
    text.add("他俩儿谈恋爱是从头年元月开始的");
    text.add("王府饭店的设施和服务是一流的");
    text.add("和服务于三日后裁制完毕,并呈送将军府中");
    text.add("研究生命的起源");
    text.add("他明天起身去北京");
    text.add("在这些企业中国有企业有十个");
    text.add("他站起身来");
    text.add("他们是来查金泰撞人那件事的");
    text.add("行侠仗义的查金泰远近闻名");
    text.add("他从马上摔下来了,你马上下来一下");
    text.add("乒乓球拍卖完了");
    text.add("咬死猎人的狗");
    text.add("地面积了厚厚的雪");
    text.add("这几块地面积还真不小");
    text.add("大学生活象白纸");
    text.add("结合成分子式");
    text.add("有意见分歧");
    text.add("发展中国家兔的计划");
    text.add("明天他将来北京");
    text.add("税收制度将来会更完善");
    text.add("依靠群众才能做好工作");
    text.add("现在是施展才能的好机会");
    text.add("把手举起来");
    text.add("茶杯的把手断了");
    text.add("以新的姿态出现在世界东方");
    text.add("使节约粮食进一步形成风气");
    text.add("反映了一个人的精神面貌");
    text.add("美国加州大学的科学家发现");
    text.add("我好不挺好");
    text.add("木有");
    text.add("下雨天留客天天留我不留");
    text.add("叔叔亲了我妈妈也亲了我");
    
    List<String> expResult = new ArrayList<>();
    expResult.add("[长春, 市长, 春节, 致辞]");
    expResult.add("[好]");
    expResult.add("[杨尚川, 好]");
    expResult.add("[杨尚川, 是, apdplat, 应用级, 产品, 开发平台, 的, 作者]");
    expResult.add("[他, 说, 的, 确实, 在理]");
    expResult.add("[提高, 人民, 生活, 水平]");
    expResult.add("[他俩, 儿, 谈恋爱, 是从, 头年, 元月, 开始, 的]");
    expResult.add("[王府, 饭店, 的, 设施, 和, 服务, 是, 一流, 的]");
    expResult.add("[和, 服务于, 三, 日后, 裁制, 完毕, 并, 呈送, 将军, 府中]");
    expResult.add("[研究, 生命, 的, 起源]");
    expResult.add("[他, 明天, 起身, 去, 北京]");
    expResult.add("[在, 这些, 企业, 中, 国有企业, 有, 十个]");
    expResult.add("[他, 站, 起身, 来]");
    expResult.add("[他们, 是, 来, 查, 金泰, 撞人, 那件事, 的]");
    expResult.add("[行侠仗义, 的, 查, 金泰, 远近闻名]");
    expResult.add("[他, 从, 马上, 摔下, 来了, 你, 马, 上下, 来一下]");
    expResult.add("[乒乓球, 拍卖, 完了]");
    expResult.add("[咬死, 猎人, 的, 狗]");
    expResult.add("[地, 面积, 了, 厚厚的, 雪]");
    expResult.add("[这, 几块, 地, 面积, 还真, 不小]");
    expResult.add("[大学生, 活象, 白纸]");
    expResult.add("[结, 合成, 分子式]");
    expResult.add("[有, 意见分歧]");
    expResult.add("[发展, 中国, 家兔, 的, 计划]");
    expResult.add("[明天, 他, 将来, 北京]");
    expResult.add("[税收制度, 将来, 会, 更, 完善]");
    expResult.add("[依靠群众, 才, 能做, 好工作]");
    expResult.add("[现在, 是, 施展才能, 的, 好机会]");
    expResult.add("[把手, 举起来]");
    expResult.add("[茶杯, 的, 把手, 断了]");
    expResult.add("[以, 新的, 姿态, 出现在, 世界, 东方]");
    expResult.add("[使, 节约粮食, 进一步, 形成, 风气]");
    expResult.add("[反映, 了, 一个人, 的, 精神面貌]");
    expResult.add("[美国加州大学, 的, 科学家, 发现]");
    expResult.add("[我, 好不, 挺好]");
    expResult.add("[木, 有]");
    expResult.add("[下雨天, 留客, 天天, 留, 我, 不留]");
    expResult.add("[叔叔, 亲了, 我, 妈妈, 也, 亲了, 我]");
    
    for(int i=0; i<text.size(); i++){
        List<Word> result = segmentation.seg(text.get(i));
        for(Word word : result){
            word.setPartOfSpeech(null);
        }
        assertEquals(expResult.get(i).toString(), result.toString());
    }
}
 
示例17
@Test
public void testSeg() {
    Segmentation segmentation = new MinimumMatching();
    List<String> text = new ArrayList<>();
    text.add("长春市长春节致辞");
    text.add("杨");
    text.add("杨尚川好");
    text.add("杨尚川是APDPlat应用级产品开发平台的作者");
    text.add("他说的确实在理");
    text.add("提高人民生活水平");
    text.add("他俩儿谈恋爱是从头年元月开始的");
    text.add("王府饭店的设施和服务是一流的");
    text.add("和服务于三日后裁制完毕,并呈送将军府中");
    text.add("研究生命的起源");
    text.add("他明天起身去北京");
    text.add("在这些企业中国有企业有十个");
    text.add("他站起身来");
    text.add("他们是来查金泰撞人那件事的");
    text.add("行侠仗义的查金泰远近闻名");
    text.add("他从马上摔下来了,你马上下来一下");
    text.add("乒乓球拍卖完了");
    text.add("咬死猎人的狗");
    text.add("地面积了厚厚的雪");
    text.add("这几块地面积还真不小");
    text.add("大学生活象白纸");
    text.add("结合成分子式");
    text.add("有意见分歧");
    text.add("发展中国家兔的计划");
    text.add("明天他将来北京");
    text.add("税收制度将来会更完善");
    text.add("依靠群众才能做好工作");
    text.add("现在是施展才能的好机会");
    text.add("把手举起来");
    text.add("茶杯的把手断了");
    text.add("以新的姿态出现在世界东方");
    text.add("使节约粮食进一步形成风气");
    text.add("反映了一个人的精神面貌");
    text.add("美国加州大学的科学家发现");
    text.add("我好不挺好");
    text.add("木有");
    text.add("下雨天留客天天留我不留");
    text.add("叔叔亲了我妈妈也亲了我");
    
    List<String> expResult = new ArrayList<>();
    expResult.add("[长春, 市长, 春节, 致辞]");
    expResult.add("[杨]");
    expResult.add("[杨尚川, 好]");
    expResult.add("[杨尚川, 是, apdplat, 应用, 级, 产品, 开发, 平台, 的, 作者]");
    expResult.add("[他, 说, 的确, 实在, 理]");
    expResult.add("[提高, 人民, 生活, 水平]");
    expResult.add("[他俩, 儿, 谈恋爱, 是从, 头年, 元月, 开始, 的]");
    expResult.add("[王府, 饭店, 的, 设施, 和服, 务, 是, 一, 流, 的]");
    expResult.add("[和服, 务, 于三, 日后, 裁制, 完毕, 并, 呈送, 将军, 府中]");
    expResult.add("[研究, 生命, 的, 起源]");
    expResult.add("[他, 明天, 起身, 去, 北京]");
    expResult.add("[在, 这些, 企业, 中国, 有, 企业, 有十个]");
    expResult.add("[他, 站起, 身, 来]");
    expResult.add("[他们, 是, 来, 查, 金泰, 撞人, 那件, 事, 的]");
    expResult.add("[行侠仗义, 的, 查, 金泰, 远近, 闻名]");
    expResult.add("[他, 从, 马上, 摔下, 来了, 你, 马上, 下来, 一, 下]");
    expResult.add("[乒乓, 球拍, 卖完, 了]");
    expResult.add("[咬死, 猎人, 的, 狗]");
    expResult.add("[地面, 积, 了, 厚厚, 的, 雪]");
    expResult.add("[这, 几块, 地面, 积, 还真, 不小]");
    expResult.add("[大学, 生活, 象, 白纸]");
    expResult.add("[结合, 成分, 子式]");
    expResult.add("[有意, 见, 分歧]");
    expResult.add("[发展, 中国, 家兔, 的, 计划]");
    expResult.add("[明天, 他, 将来, 北京]");
    expResult.add("[税收, 制度, 将来, 会, 更, 完善]");
    expResult.add("[依靠, 群众, 才能, 做好, 工作]");
    expResult.add("[现在, 是, 施展, 才能, 的, 好机会]");
    expResult.add("[把手, 举起, 来]");
    expResult.add("[茶杯, 的, 把手, 断了]");
    expResult.add("[以, 新的, 姿态, 出现, 在世, 界, 东方]");
    expResult.add("[使节, 约, 粮食, 进一, 步, 形成, 风气]");
    expResult.add("[反映, 了, 一, 个人, 的, 精神, 面貌]");
    expResult.add("[美国, 加州, 大学, 的, 科学, 家, 发现]");
    expResult.add("[我, 好不, 挺好]");
    expResult.add("[木, 有]");
    expResult.add("[下雨, 天, 留客, 天天, 留, 我, 不留]");
    expResult.add("[叔叔, 亲了, 我, 妈妈, 也, 亲了, 我]");
    expResult.add("[白马, 非, 马]");
    
    for(int i=0; i<text.size(); i++){
        List<Word> result = segmentation.seg(text.get(i));
        for(Word word : result){
            word.setPartOfSpeech(null);
        }
        assertEquals(expResult.get(i).toString(), result.toString());
    }
}
 
示例18
@Test
public void testSeg() {
    Segmentation segmentation = new ReverseMinimumMatching();
    List<String> text = new ArrayList<>();
    text.add("长春市长春节致辞");
    text.add("杨");
    text.add("杨尚川好");
    text.add("杨尚川是APDPlat应用级产品开发平台的作者");
    text.add("他说的确实在理");
    text.add("提高人民生活水平");
    text.add("他俩儿谈恋爱是从头年元月开始的");
    text.add("王府饭店的设施和服务是一流的");
    text.add("和服务于三日后裁制完毕,并呈送将军府中");
    text.add("研究生命的起源");
    text.add("他明天起身去北京");
    text.add("在这些企业中国有企业有十个");
    text.add("他站起身来");
    text.add("他们是来查金泰撞人那件事的");
    text.add("行侠仗义的查金泰远近闻名");
    text.add("他从马上摔下来了,你马上下来一下");
    text.add("乒乓球拍卖完了");
    text.add("咬死猎人的狗");
    text.add("地面积了厚厚的雪");
    text.add("这几块地面积还真不小");
    text.add("大学生活象白纸");
    text.add("结合成分子式");
    text.add("有意见分歧");
    text.add("发展中国家兔的计划");
    text.add("明天他将来北京");
    text.add("税收制度将来会更完善");
    text.add("依靠群众才能做好工作");
    text.add("现在是施展才能的好机会");
    text.add("把手举起来");
    text.add("茶杯的把手断了");
    text.add("以新的姿态出现在世界东方");
    text.add("使节约粮食进一步形成风气");
    text.add("反映了一个人的精神面貌");
    text.add("美国加州大学的科学家发现");
    text.add("我好不挺好");
    text.add("木有");
    text.add("下雨天留客天天留我不留");
    text.add("叔叔亲了我妈妈也亲了我");
    
    List<String> expResult = new ArrayList<>();
    expResult.add("[长春, 市长, 春节, 致辞]");
    expResult.add("[杨]");
    expResult.add("[杨尚川, 好]");
    expResult.add("[杨尚川, 是, apdplat, 应用级, 产品, 开发, 平台, 的, 作者]");
    expResult.add("[他, 说, 的, 确实, 在理]");
    expResult.add("[提高, 人民, 生活, 水平]");
    expResult.add("[他俩, 儿, 谈, 恋爱, 是从, 头年, 元月, 开始, 的]");
    expResult.add("[王府, 饭店, 的, 设施, 和, 服务, 是, 一流, 的]");
    expResult.add("[和, 服务于, 三, 日后, 裁制, 完毕, 并, 呈送, 将军, 府中]");
    expResult.add("[研究, 生命, 的, 起源]");
    expResult.add("[他, 明天, 起身, 去, 北京]");
    expResult.add("[在, 这些, 企业, 中, 国有, 企业, 有, 十个]");
    expResult.add("[他, 站, 起身, 来]");
    expResult.add("[他们, 是, 来, 查, 金泰, 撞人, 那, 件事, 的]");
    expResult.add("[行, 侠, 仗义, 的, 查, 金泰, 远近, 闻名]");
    expResult.add("[他, 从, 马上, 摔下, 来了, 你, 马上, 下来, 一下]");
    expResult.add("[乒乓球, 拍卖, 完了]");
    expResult.add("[咬死, 猎人, 的, 狗]");
    expResult.add("[地, 面积, 了, 厚厚的, 雪]");
    expResult.add("[这, 几块, 地, 面积, 还真, 不小]");
    expResult.add("[大, 学生, 活象, 白纸]");
    expResult.add("[结合, 成分, 子式]");
    expResult.add("[有, 意见, 分歧]");
    expResult.add("[发展, 中国, 家兔, 的, 计划]");
    expResult.add("[明天, 他, 将来, 北京]");
    expResult.add("[税收, 制度, 将来, 会, 更, 完善]");
    expResult.add("[依靠, 群众, 才能, 做好, 工作]");
    expResult.add("[现在, 是, 施展, 才能, 的, 好, 机会]");
    expResult.add("[把手, 举, 起来]");
    expResult.add("[茶杯, 的, 把手, 断了]");
    expResult.add("[以, 新的, 姿态, 出, 现在, 世界, 东方]");
    expResult.add("[使, 节约, 粮食, 进, 一步, 形成, 风气]");
    expResult.add("[反映, 了, 一, 个人, 的, 精神, 面貌]");
    expResult.add("[美国, 加州, 大学, 的, 科, 学家, 发现]");
    expResult.add("[我, 好不, 挺好]");
    expResult.add("[木, 有]");
    expResult.add("[下, 雨天, 留客, 天天, 留, 我, 不留]");
    expResult.add("[叔叔, 亲了, 我, 妈妈, 也, 亲了, 我]");
    
    for(int i=0; i<text.size(); i++){
        List<Word> result = segmentation.seg(text.get(i));
        for(Word word : result){
            word.setPartOfSpeech(null);
        }
        assertEquals(expResult.get(i).toString(), result.toString());
    }
}