linqy的个人博客分享 http://blog.sciencenet.cn/u/linqy

博文

Lucene 6.0 配置,整合mmseg4j分词器

已有 3240 次阅读 2017-10-19 16:00 |个人分类:Lucene|系统分类:科研笔记| Lucene, mmseg, 中文分词

Lucene具有很好的索引和检索功能,但是对中文的分词较差,mmseg中文分词效果好,因此两者结合起来,效果较好。

下面进行相关的配置:

   github地址:https://github.com/chenlb/mmseg4j-from-googlecode

   官方博客地址:http://blog.chenlb.com/category/mmseg4j

其中pom.xml配置:


  1. <dependency>    

  2.    <groupId>com.chenlb.mmseg4j</groupId>    

  3.    <artifactId>mmseg4j-solr</artifactId>    

  4.    <version>2.3.0</version>    

  5.    <exclusions>    

  6.        <exclusion>    

  7.            <groupId>org.apache.solr</groupId>    

  8.            <artifactId>solr-core</artifactId>    

  9.        </exclusion>    

  10.    </exclusions>    

  11. </dependency>

进行mmseg分词的具体代码(java):

  1. import java.util.ArrayList;  

  2. import java.util.List;  

  3.  

  4. import org.apache.lucene.analysis.Analyzer;  

  5. import org.apache.lucene.document.Document;  

  6. import org.apache.lucene.document.Field;  

  7. import org.apache.lucene.document.TextField;  

  8. import org.apache.lucene.index.DirectoryReader;  

  9. import org.apache.lucene.index.IndexWriter;  

  10. import org.apache.lucene.index.IndexWriterConfig;  

  11. import org.apache.lucene.index.IndexWriterConfig.OpenMode;  

  12. import org.apache.lucene.index.Term;  

  13. import org.apache.lucene.search.IndexSearcher;  

  14. import org.apache.lucene.search.Query;  

  15. import org.apache.lucene.search.ScoreDoc;  

  16. import org.apache.lucene.search.TermQuery;  

  17. import org.apache.lucene.search.TopDocs;  

  18. import org.apache.lucene.store.Directory;  

  19. import org.apache.lucene.store.RAMDirectory;  

  20.  

  21. import com.chenlb.mmseg4j.analysis.ComplexAnalyzer;  

  22.  

  23. public class LuceneTest {  

  24.    static Analyzer analyzer = null;  

  25.    static Directory directory = null;  

  26.    static String text = "CSDN.NET - 全球最大中文IT社区,为IT专业技术人员提供最全面的信息传播和服务平台";  

  27.    static String text1 = "京华时报1月23日报道 昨天,受一股来自中西伯利亚的强冷空气影响,本市出现大风降温天气,白天最高气温只有零下7摄氏度,同时伴有6到7级的偏北风。";  

  28.  

  29.    public static void main(String[] args) throws Exception {  

  30.        analyzer = new ComplexAnalyzer();  

  31.        directory = new RAMDirectory();  

  32.        IndexWriterConfig iwConfig = new IndexWriterConfig(analyzer);  

  33.        iwConfig.setOpenMode(OpenMode.CREATE_OR_APPEND);  

  34.        IndexWriter iwriter = new IndexWriter(directory, iwConfig);  

  35.        List<String> list = new ArrayList<String>();  

  36.        list.add(text);  

  37.        list.add(text1);  

  38.        for (String item : list) {  

  39.            Document doc = new Document();  

  40.            doc.add(new TextField("text", item, Field.Store.YES));  

  41.            iwriter.addDocument(doc);  

  42.        }  

  43.        iwriter.close();  

  44.  

  45.        DirectoryReader ireader = DirectoryReader.open(directory);  

  46.        IndexSearcher searcher = new IndexSearcher(ireader);  

  47.        Query q = new TermQuery(new Term("text", "西伯利亚"));  

  48.        System.out.println(q);  

  49.        TopDocs tds = searcher.search(q, 10);  

  50.        System.out.println("======size:" + tds.totalHits + "========");  

  51.        for (ScoreDoc sd : tds.scoreDocs) {  

  52.            System.out.println(sd.score);  

  53.            System.out.println(searcher.doc(sd.doc).get("text"));  

  54.        }  

  55.    }  

  56. }

参考:http://blog.csdn.net/joker233/article/details/51909833  



https://blog.sciencenet.cn/blog-3134052-1081565.html

上一篇:Lucene对文中特定的词改变该文本的boost权重(进而改变其评分)
下一篇:Java判断文件目录以及文件是否存在
收藏 IP: 111.195.161.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-14 10:35

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部