激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - IKAnalyzer結合Lucene實現中文分詞(示例講解)

IKAnalyzer結合Lucene實現中文分詞(示例講解)

2021-01-17 14:55funnyboy0128 Java教程

下面小編就為大家帶來一篇IKAnalyzer結合Lucene實現中文分詞(示例講解)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

1、基本介紹

隨著分詞在信息檢索領域應用的越來越廣泛,分詞這門技術對大家并不陌生。對于英文分詞處理相對簡單,經過拆分單詞、排斥停止詞、提取詞干的過程基本就能實現英文分詞,單對于中文分詞而言,由于語義的復雜導致分詞并沒英文分詞那么簡單,一般都是通過相關的分詞工具來實現,目前比較常用的有庖丁分詞以及IKAnalyzer等。這里我們主要通過一個簡單的Demo聊聊IKAnalyzer的基本使用。IKAnalyzer是一個開源的,基于java開發的分詞工具包,它獨立于Lucene項目,同時提供了Lucene的默認實現。

2、IKAnalyzer結合Lucene實現簡單的中文分詞

我們通過一個基本的Demo來實踐說明,步驟如下:

step1:準備相關的Jar依賴,lucene-core-5.1.0.jar、ik.jar,然后新建項目,引入相關依賴項目結構如下:

IkDemo-src
     -con.funnyboy.ik
-IKAnalyzer.cfg.xml
     -stopword.dic
-ext.dic
-Reference Libraries
     -lucene-core-5.1.0.jar
     -ik.jar

IKAnalyzer.cfg.xml:配置擴展詞典以及停止詞典 內容如下:

?
1
2
3
4
5
6
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties> <comment>IK Analyzer 擴展配置</comment>
   <entry key="ext_dict">ext.dic;</entry>
   <entry key="ext_stopwords">stopword.dic;</entry>
</properties>

其中的ext.dic配置自己的擴展字典,stopword.dic配置自己的擴展停止詞字典

step2:通過java代碼驗證測試

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
public class MyIkTest {
  public static String str = "中國人民銀行我是中國人";
  public static void main(String[] args) {
     MyIkTest test = new MyIkTest();
     test.wordCount("", str);
   }
   private void wordCount(String arg,String content) {
     Analyzer analyzer = new IKAnalyzer(true); // IK實現分詞 true:用最大詞長分詞 false:最細粒度切分
    StringReader reader = null;
    TokenStream ts = null; try {
      reader = new StringReader(content);
      ts = analyzer.tokenStream(arg,reader);
      CharTermAttribute term = ts.addAttribute(CharTermAttribute.class);
      ts.reset();
      Map<String, Integer> map = new HashMap<String, Integer>(); //統計
      while (ts.incrementToken()) {
        String str = term.toString();
        Object o = map.get(str);
        if (o == null) {
          map.put(str, new Integer(1));
         } else {
          Integer i = new Integer(((Integer) o).intValue() + 1);
           map.put(str, i);
        }
       }
      List<Entry<String, Integer>> list = new ArrayList<Entry<String, Integer>>(map.entrySet());
      Collections.sort(list,new Comparator<Map.Entry<String, Integer>>() {
        public int compare(Map.Entry<String, Integer> o1,Map.Entry<String, Integer> o2) {
          return (o2.getValue() - o1.getValue());
        } }); 
       for (int k=0;k<list.size();k++) {
        Entry<String, Integer> it=list.get(k);
        String word = it.getKey().toString();
        System.err.println(word+"["+it.getValue()+"]");
       } 
    } catch (Exception e) {
     } finally {
      if(reader != null){
         reader.close();
      }
      if (analyzer != null) {
        analyzer.close();
      }
     }
   }
  }

執行程序測試結果如下:

中國人民銀行[1]

中國人[1]

我[1]

3、配置說明

a、如何自定義配置擴展詞典和停止詞典 IKAnalyzer.cfg.xml中定義了擴展詞典和停止詞典,如果有多好個可以通過;配置多個。擴展詞典是指用戶可以根據自己定義的詞義實現分詞,比如人名在默認的詞典中并未實現,需要自定義實現分詞,卡可以通過在ext.dic中新增自定義的詞語。停止詞是指對于分詞沒有實際意義但出現頻率很高的詞,比如嗎、乎等語氣詞,用戶也可以通過在stopword.dic中自定義相關的停止詞。

b、關于最大詞長分詞和最小粒度分詞的區分 在IKAnalyzer構造方法中可以通過提供一個標示來實現最大詞長分詞和最小粒度分詞,true為最大詞長分詞,默認是最小粒度分詞。對"中國人民銀行我是中國人"分別測試結果如下:

最大詞長分詞結果如下:

中國人民銀行[1]

中國人[1]

我[1]

最小粒度分詞結果如下:

國人[2]
中國人[2]
中國[2]
人民[1]
中國人民銀行[1]
我[1]
人民銀行[1]
中國人民[1]
銀行[1]

以上這篇IKAnalyzer結合Lucene實現中文分詞(示例講解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/funnyboy0128/p/7657453.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费高潮在线国 | 国产精品视频1区 | 精品国产专区 | 操碰| 欧美成人小视频 | 羞羞视频免费网站 | 亚洲国产精品99 | 欧美一级爱爱 | 91精品国产一区二区三区四区在线 | 午夜精品久久久久久久久久久久久蜜桃 | 黄色网战在线观看 | 午夜在线视频一区二区三区 | 国产精品久久久久久久四虎电影 | av电影网站在线观看 | 精品国产一区二区三区四区阿崩 | 噜噜噜在线 | 国产做爰全免费的视频黑人 | 国产亚洲欧美日韩在线观看不卡 | 成人精品久久 | 亚洲字幕av | 国产精品久久久久久久av | 国产精品成人一区二区三区吃奶 | 91精品久久久久久 | 欧美18videos性处按摩 | xx53xx| 久久91亚洲精品久久91综合 | 成人在线a| 日本高清无遮挡 | 中文字幕视频在线播放 | 最新毛片在线观看 | 91麻豆精品国产91久久久更新资源速度超快 | 日日噜噜噜夜夜狠狠久久蜜桃 | 在线91视频 | 亚洲视频观看 | 日韩色电影| 视频一区国产精品 | 免费看日韩av | av日韩在线免费观看 | 国产激爽大片在线播放 | 91久久精品一 | 一级做a爱片毛片免费 |