zoukankan      html  css  js  c++  java
  • 利用IK Analyzer分词(txt输入输出)

    1  说明

    • 利用IK包分词较为便捷,该分词方法为正向匹配,故选此方法。
    • 使用程序时需要导入分词包。
    • 本程序需要用到的分词包已上传至附件。
    • 本程序的输入输出文件名,请在主函数中更改。

    2  程序

     1 import java.io.*;
     2 import org.apache.lucene.analysis.Analyzer;
     3 import org.apache.lucene.analysis.TokenStream;
     4 import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
     5 import org.wltea.analyzer.lucene.IKAnalyzer;
     6 
     7 public class IK_FC {
     8     
     9     public static String Seg(String sentence) throws IOException {
    10         String text="";
    11         //创建分词对象
    12         Analyzer anal=new IKAnalyzer(true);
    13         StringReader reader=new StringReader(sentence);
    14         //分词
    15         TokenStream ts=anal.tokenStream("", reader);
    16         CharTermAttribute term=ts.getAttribute(CharTermAttribute.class);
    17         //遍历分词数据
    18         while(ts.incrementToken()){
    19             text+=term.toString()+"/";
    20         }
    21         reader.close();
    22         anal.close();
    23         return text.trim()+"
    ";
    24     }
    25 
    26     public static void main(String[] args) {
    27         File file_ys = new File("E:/SimHash文档库/原始文档10.txt");//原始文件
    28         File file_fch = new File("E:/SimHash文档库/对比文档10.txt");//分词后文件
    29         try {
    30             FileReader fr = new FileReader(file_ys);
    31             BufferedReader bufr = new BufferedReader(fr);
    32             FileWriter fw = new FileWriter(file_fch);
    33             BufferedWriter bufw = new BufferedWriter(fw);
    34             String s = null;
    35             int i = 0;
    36             while((s = bufr.readLine()) != null) {
    37                 i++;
    38                 String s_fch = IK_FC.Seg(s);
    39                 System.out.println("第"+i+"行的原始数据:");
    40                 System.out.println(s);
    41                 System.out.println("第"+i+"行分词后的结果:");
    42                 System.out.println(s_fch);
    43                 bufw.write(s_fch);
    44                 bufw.newLine();
    45             }
    46             bufr.close();
    47             fr.close();
    48             bufw.close();
    49             fw.close();
    50             System.out.println("文件处理完毕!");
    51         } catch (Exception e) {
    52             e.printStackTrace();
    53         }
    54     }
    55 }

    3  结果

  • 相关阅读:
    [leetcode]N-Queens II
    基于Linux的智能家居的设计(4)
    eclipse集成Python开发环境
    创业三年,离开公司,请各位看一下我的简历,指点一下未来的路
    Jquery实现选项卡功能
    R语言中两个数组(或向量)的外积怎样计算
    《Java程序猿面试笔试宝典》之组合与继承有什么差别
    Sublime Text3打造U盘便携Lua IDE
    php Laravel 框架之建立后台目录
    树的同构(25 分)
  • 原文地址:https://www.cnblogs.com/qijunhui/p/8445558.html
Copyright © 2011-2022 走看看