Search in sources :

Example 11 with AnsjAnalyzer

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

the class PhraseTest method main.

public static void main(String[] args) throws IOException, ParseException {
    DicLibrary.insert(DicLibrary.DEFAULT, "上网人");
    DicLibrary.insert(DicLibrary.DEFAULT, "网人");
    AnsjAnalyzer ansjAnalyzer = new AnsjAnalyzer(AnsjAnalyzer.TYPE.index_ansj);
    TokenStream tokenStream = ansjAnalyzer.tokenStream("上网人员测试", "test");
    while (tokenStream.incrementToken()) {
        System.out.println(tokenStream.getAttribute(CharTermAttribute.class));
    }
    IndexWriterConfig config = new IndexWriterConfig(ansjAnalyzer);
    IndexWriter writer = new IndexWriter(new RAMDirectory(), config);
    Document doc = new Document();
    doc.add(new TextField("test", "上网人员测试", Field.Store.YES));
    writer.addDocument(doc);
    writer.commit();
    IndexSearcher searcher = new IndexSearcher(DirectoryReader.open(writer));
    System.out.println(searcher.count(new TermQuery(new Term("test", "网人"))));
    Query q = new QueryParser("test", new AnsjAnalyzer(AnsjAnalyzer.TYPE.index_ansj)).parse("\"上网人\"");
    System.out.println(q);
    System.out.println(searcher.count(q));
}
Also used : IndexSearcher(org.apache.lucene.search.IndexSearcher) TermQuery(org.apache.lucene.search.TermQuery) TokenStream(org.apache.lucene.analysis.TokenStream) Query(org.apache.lucene.search.Query) TermQuery(org.apache.lucene.search.TermQuery) Term(org.apache.lucene.index.Term) Document(org.apache.lucene.document.Document) RAMDirectory(org.apache.lucene.store.RAMDirectory) QueryParser(org.apache.lucene.queryparser.classic.QueryParser) CharTermAttribute(org.apache.lucene.analysis.tokenattributes.CharTermAttribute) AnsjAnalyzer(org.ansj.lucene5.AnsjAnalyzer) IndexWriter(org.apache.lucene.index.IndexWriter) TextField(org.apache.lucene.document.TextField) IndexWriterConfig(org.apache.lucene.index.IndexWriterConfig)

Example 12 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.lucene7.AnsjAnalyzer) HashMap(java.util.HashMap) StringReader(java.io.StringReader) IOException(java.io.IOException) AnsjAnalyzer(org.ansj.lucene7.AnsjAnalyzer) Analyzer(org.apache.lucene.analysis.Analyzer)

Example 13 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 {
    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.lucene7.AnsjAnalyzer) StringReader(java.io.StringReader) AnsjAnalyzer(org.ansj.lucene7.AnsjAnalyzer) Analyzer(org.apache.lucene.analysis.Analyzer) Date(java.util.Date) Test(org.junit.Test)

Example 14 with AnsjAnalyzer

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

the class IndexTest method testIndex.

@Test
public void testIndex() throws IOException {
    Analyzer ca = new AnsjAnalyzer(TYPE.index_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.lucene7.AnsjAnalyzer) StringReader(java.io.StringReader) AnsjAnalyzer(org.ansj.lucene7.AnsjAnalyzer) Analyzer(org.apache.lucene.analysis.Analyzer) Date(java.util.Date) 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