Search in sources :

Example 6 with AnsjAnalyzer

use of org.ansj.lucene7.AnsjAnalyzer in project ansj_seg by NLPchina.

the class IndexTest method indexTest.

@Test
public void indexTest() throws CorruptIndexException, LockObtainFailedException, IOException, ParseException {
    PerFieldAnalyzerWrapper analyzer = new PerFieldAnalyzerWrapper(new AnsjAnalyzer(TYPE.index_ansj));
    Directory directory = null;
    IndexWriter iwriter = null;
    IndexWriterConfig ic = new IndexWriterConfig(analyzer);
    // 建立内存索引对象
    directory = new RAMDirectory();
    iwriter = new IndexWriter(directory, ic);
    addContent(iwriter, "助推企业转型升级提供强有力的技术支持和服保障。中心的建成将使青岛的服务器承载能力突破10万台,达到世界一流水平。");
    addContent(iwriter, "涉及民生的部分商品和服务成本监审政策");
    addContent(iwriter, "我穿着和服");
    iwriter.commit();
    iwriter.close();
    System.out.println("索引建立完毕");
    Analyzer queryAnalyzer = new AnsjAnalyzer(AnsjAnalyzer.TYPE.dic_ansj);
    System.out.println("index ok to search!");
    search(queryAnalyzer, directory, "\"和服\"");
}
Also used : AnsjAnalyzer(org.ansj.lucene5.AnsjAnalyzer) AnsjAnalyzer(org.ansj.lucene5.AnsjAnalyzer) Analyzer(org.apache.lucene.analysis.Analyzer) RAMDirectory(org.apache.lucene.store.RAMDirectory) PerFieldAnalyzerWrapper(org.apache.lucene.analysis.miscellaneous.PerFieldAnalyzerWrapper) RAMDirectory(org.apache.lucene.store.RAMDirectory) Directory(org.apache.lucene.store.Directory) Test(org.junit.Test)

Example 7 with AnsjAnalyzer

use of org.ansj.lucene7.AnsjAnalyzer in project ansj_seg by NLPchina.

the class IndexTest method testQuery.

@Test
public void testQuery() throws IOException {
    Token nt = new Token();
    Analyzer ca = new AnsjAnalyzer(TYPE.query_ansj);
    String content = ("\n\n\n\n\n\n\n我从小就不由自主地认为自己长大以后一定得成为一个象我父亲一样的画家, 可能是父母潜移默化的影响。其实我根本不知道作为画家意味着什么,我是否喜欢,最重要的是否适合我,我是否有这个才华。其实人到中年的我还是不确定我最喜欢什么,最想做的是什么?我相信很多人和我一样有同样的烦恼。毕竟不是每个人都能成为作文里的宇航员,科学家和大教授。知道自己适合做什么,喜欢做什么,能做好什么其实是个非常困难的问题。" + "幸运的是,我想我的孩子不会为这个太过烦恼。通过老大,我慢慢发现美国高中的一个重要功能就是帮助学生分析他们的专长和兴趣,从而帮助他们选择大学的专业和未来的职业。我觉得帮助一个未成形的孩子找到她未来成长的方向是个非常重要的过程。" + "美国高中都有专门的职业顾问,通过接触不同的课程,和各种心理,个性,兴趣很多方面的问答来帮助每个学生找到最感兴趣的专业。这样的教育一般是要到高年级才开始, 可老大因为今年上计算机的课程就是研究一个职业走向的软件项目,所以她提前做了这些考试和面试。看来以后这样的教育会慢慢由电脑来测试了。老大带回家了一些试卷,我挑出一些给大家看看。这门课她花了2个多月才做完,这里只是很小的一部分。" + "在测试里有这样的一些问题:" + "你是个喜欢动手的人吗? 你喜欢修东西吗?你喜欢体育运动吗?你喜欢在室外工作吗?你是个喜欢思考的人吗?你喜欢数学和科学课吗?你喜欢一个人工作吗?你对自己的智力自信吗?你的创造能力很强吗?你喜欢艺术,音乐和戏剧吗?  你喜欢自由自在的工作环境吗?你喜欢尝试新的东西吗? 你喜欢帮助别人吗?你喜欢教别人吗?你喜欢和机器和工具打交道吗?你喜欢当领导吗?你喜欢组织活动吗?你什么和数字打交道吗?");
    TokenStream ts = ca.tokenStream(content, new StringReader(content));
    System.out.println("start: " + (new Date()));
    long before = System.currentTimeMillis();
    while (ts.incrementToken()) {
        System.out.println(ts.getAttribute(CharTermAttribute.class));
    }
    ts.close();
    long now = System.currentTimeMillis();
    System.out.println("time: " + (now - before) / 1000.0 + " s");
}
Also used : TokenStream(org.apache.lucene.analysis.TokenStream) CharTermAttribute(org.apache.lucene.analysis.tokenattributes.CharTermAttribute) AnsjAnalyzer(org.ansj.lucene5.AnsjAnalyzer) StringReader(java.io.StringReader) Token(org.apache.lucene.analysis.Token) AnsjAnalyzer(org.ansj.lucene5.AnsjAnalyzer) Analyzer(org.apache.lucene.analysis.Analyzer) Date(java.util.Date) Test(org.junit.Test)

Example 8 with AnsjAnalyzer

use of org.ansj.lucene7.AnsjAnalyzer in project ansj_seg by NLPchina.

the class IndexTest method testDic.

@Test
public void testDic() throws IOException {
    DicLibrary.put(DicLibrary.DEFAULT, "../../library/default.dic");
    Token nt = new Token();
    Analyzer ca = new AnsjAnalyzer(TYPE.dic_ansj);
    String content = ("\n\n\n\n\n\n\n我从小就不由自主地认为自己长大以后一定得成为一个象我父亲一样的画家, 可能是父母潜移默化的影响。其实我根本不知道作为画家意味着什么,我是否喜欢,最重要的是否适合我,我是否有这个才华。其实人到中年的我还是不确定我最喜欢什么,最想做的是什么?我相信很多人和我一样有同样的烦恼。毕竟不是每个人都能成为作文里的宇航员,科学家和大教授。知道自己适合做什么,喜欢做什么,能做好什么其实是个非常困难的问题。" + "幸运的是,我想我的孩子不会为这个太过烦恼。通过老大,我慢慢发现美国高中的一个重要功能就是帮助学生分析他们的专长和兴趣,从而帮助他们选择大学的专业和未来的职业。我觉得帮助一个未成形的孩子找到她未来成长的方向是个非常重要的过程。" + "美国高中都有专门的职业顾问,通过接触不同的课程,和各种心理,个性,兴趣很多方面的问答来帮助每个学生找到最感兴趣的专业。这样的教育一般是要到高年级才开始, 可老大因为今年上计算机的课程就是研究一个职业走向的软件项目,所以她提前做了这些考试和面试。看来以后这样的教育会慢慢由电脑来测试了。老大带回家了一些试卷,我挑出一些给大家看看。这门课她花了2个多月才做完,这里只是很小的一部分。" + "在测试里有这样的一些问题:" + "你是个喜欢动手的人吗? 你喜欢修东西吗?你喜欢体育运动吗?你喜欢在室外工作吗?你是个喜欢思考的人吗?你喜欢数学和科学课吗?你喜欢一个人工作吗?你对自己的智力自信吗?你的创造能力很强吗?你喜欢艺术,音乐和戏剧吗?  你喜欢自由自在的工作环境吗?你喜欢尝试新的东西吗? 你喜欢帮助别人吗?你喜欢教别人吗?你喜欢和机器和工具打交道吗?你喜欢当领导吗?你喜欢组织活动吗?你什么和数字打交道吗?");
    TokenStream ts = ca.tokenStream(content, new StringReader(content));
    System.out.println("start: " + (new Date()));
    long before = System.currentTimeMillis();
    while (ts.incrementToken()) {
        System.out.println(ts.getAttribute(CharTermAttribute.class));
    }
    ts.close();
    long now = System.currentTimeMillis();
    System.out.println("time: " + (now - before) / 1000.0 + " s");
}
Also used : TokenStream(org.apache.lucene.analysis.TokenStream) CharTermAttribute(org.apache.lucene.analysis.tokenattributes.CharTermAttribute) AnsjAnalyzer(org.ansj.lucene5.AnsjAnalyzer) StringReader(java.io.StringReader) Token(org.apache.lucene.analysis.Token) AnsjAnalyzer(org.ansj.lucene5.AnsjAnalyzer) Analyzer(org.apache.lucene.analysis.Analyzer) Date(java.util.Date) Test(org.junit.Test)

Example 9 with AnsjAnalyzer

use of org.ansj.lucene7.AnsjAnalyzer in project ansj_seg by NLPchina.

the class TestToken method main.

public static void main(String[] args) {
    SynonymsLibrary.put(SynonymsLibrary.DEFAULT, "../../library/synonyms.dic");
    DicLibrary.insert(DicLibrary.DEFAULT, "清华", "n", 2000);
    DicLibrary.insert(DicLibrary.DEFAULT, "大学", "n", 2000);
    Map<String, String> map = new HashMap<String, String>();
    map.put("type", "dic_ansj");
    map.put(SynonymsLibrary.DEFAULT, SynonymsLibrary.DEFAULT);
    Analyzer ca = new AnsjAnalyzer(map);
    String content = "我爱北京天安门天安门上太阳升我美丽的清华大学";
    try {
        TokenStream tokenStream = ca.tokenStream(content, new StringReader(content));
        while (tokenStream.incrementToken()) {
            System.out.print(tokenStream.getAttribute(CharTermAttribute.class));
            System.out.print("\t");
            System.out.print(tokenStream.getAttribute(OffsetAttribute.class).startOffset());
            System.out.print("\t");
            System.out.print(tokenStream.getAttribute(PositionIncrementAttribute.class).getPositionIncrement());
            System.out.print("\t");
            System.out.println(tokenStream.getAttribute(TypeAttribute.class).type());
        }
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    ca.close();
}
Also used : TokenStream(org.apache.lucene.analysis.TokenStream) CharTermAttribute(org.apache.lucene.analysis.tokenattributes.CharTermAttribute) AnsjAnalyzer(org.ansj.lucene5.AnsjAnalyzer) HashMap(java.util.HashMap) StringReader(java.io.StringReader) IOException(java.io.IOException) AnsjAnalyzer(org.ansj.lucene5.AnsjAnalyzer) Analyzer(org.apache.lucene.analysis.Analyzer)

Example 10 with AnsjAnalyzer

use of org.ansj.lucene7.AnsjAnalyzer in project ansj_seg by NLPchina.

the class IndexAndTest method test.

@Test
public void test() throws Exception {
    DicLibrary.put(DicLibrary.DEFAULT, "../../library/default.dic");
    PerFieldAnalyzerWrapper analyzer = new PerFieldAnalyzerWrapper(new AnsjAnalyzer(TYPE.index_ansj));
    Directory directory = null;
    IndexWriter iwriter = null;
    IndexWriterConfig ic = new IndexWriterConfig(analyzer);
    String text = "[工程名称]赣州市南康区第四中学学生公寓、食堂及附属工程\n" + "[关键信息]赣州市南康区第四中学.; 房屋建筑工 程施工总承包叁级以上(含叁级)资质;无;本工程授权委托人(注册建造师)须提供劳动合同和投标公司为其缴交的社保证明(社保证明时间为2015 年 11 月至 2016 年 1 月)原件,须提供加盖当地社保局业务章的社保手册或花名册(含姓名、社保查询号或身份证号、缴费基数和缴费凭证)或基本养老保险个人帐户对账单;如果建造师是法人代表的,则提供:身份证、法人代表资格证、建造师注册证书及其相应的 B 类安全生产考核合格证;               须提交公司或投标项目所 在地的检察机关出具的投标公司和投标公 司拟派项目负责人的《关于行贿犯罪档案 查询通知书》 。;小胡开银诚、中灿两家,赣州市南康区第四中学学生公寓、食堂及附属工程,本项目投资 857.9 万元,开标时间:2016 年 03 月 01 日 10:00,投标保证金的金额:15 万元,保证金到账截止时间为 2016 年 2月 26 日 17:00 时。介绍信2000元/家,报名费600元/家,保证金老板自己打。开标老板:黄思婷 134-0707-4912    委托人:胡童科。;2000.0;\n" + "[其他信息]赣州分公司;赣州分公司;投标申请单-20160226-1;3607821602050117-1.JXZF;;";
    System.out.println(IndexAnalysis.parse(text));
    // 建立内存索引对象
    directory = new RAMDirectory();
    iwriter = new IndexWriter(directory, ic);
    addContent(iwriter, text);
    iwriter.commit();
    iwriter.close();
    System.out.println("索引建立完毕");
    Analyzer queryAnalyzer = new AnsjAnalyzer(AnsjAnalyzer.TYPE.index_ansj);
    System.out.println("index ok to search!");
    for (Term t : IndexAnalysis.parse(text)) {
        System.out.println(t.getName());
        search(queryAnalyzer, directory, "\"" + t.getName() + "\"");
    }
}
Also used : AnsjAnalyzer(org.ansj.lucene5.AnsjAnalyzer) Term(org.ansj.domain.Term) AnsjAnalyzer(org.ansj.lucene5.AnsjAnalyzer) Analyzer(org.apache.lucene.analysis.Analyzer) RAMDirectory(org.apache.lucene.store.RAMDirectory) PerFieldAnalyzerWrapper(org.apache.lucene.analysis.miscellaneous.PerFieldAnalyzerWrapper) RAMDirectory(org.apache.lucene.store.RAMDirectory) Directory(org.apache.lucene.store.Directory) Test(org.junit.Test)

Aggregations

Analyzer (org.apache.lucene.analysis.Analyzer)12 TokenStream (org.apache.lucene.analysis.TokenStream)10 CharTermAttribute (org.apache.lucene.analysis.tokenattributes.CharTermAttribute)10 Test (org.junit.Test)10 StringReader (java.io.StringReader)8 AnsjAnalyzer (org.ansj.lucene5.AnsjAnalyzer)7 AnsjAnalyzer (org.ansj.lucene7.AnsjAnalyzer)7 Date (java.util.Date)6 RAMDirectory (org.apache.lucene.store.RAMDirectory)6 PerFieldAnalyzerWrapper (org.apache.lucene.analysis.miscellaneous.PerFieldAnalyzerWrapper)4 Directory (org.apache.lucene.store.Directory)4 Token (org.apache.lucene.analysis.Token)3 IOException (java.io.IOException)2 HashMap (java.util.HashMap)2 Term (org.ansj.domain.Term)2 Document (org.apache.lucene.document.Document)2 TextField (org.apache.lucene.document.TextField)2 IndexWriter (org.apache.lucene.index.IndexWriter)2 IndexWriterConfig (org.apache.lucene.index.IndexWriterConfig)2 Term (org.apache.lucene.index.Term)2