亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

IKAnalyzer使用不同版本中文分詞的切詞方式實現(xiàn)相同功能效果

 更新時間:2018年12月07日 15:07:17   作者:執(zhí)筆記憶的空白  
今天小編就為大家分享一篇關(guān)于IKAnalyzer使用不同版本中文分詞的切詞方式實現(xiàn)相同功能效果,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

最近公司在做一個題庫的功能,需要用到 中文分詞和公式分詞的工具,最開始用 IKAnalyzer 2012F 版本 + lunece 6.5.1做了一版中文分詞工具。

具體如下:

一、IKAnalyzer 2012F + lunece 6.5.1 實現(xiàn)中文分詞

 public static List<String> analysisByIK(Analyzer analyzer,String field, String content){
 if(StringUtils.isNullOrEmpty(content)){
  return null;
 }
 TokenStream ts = null;
 try {
  ts = analyzer.tokenStream(field, new StringReader(content));
  CharTermAttribute term = ts.addAttribute(CharTermAttribute.class);
  ts.reset(); 
  List<String> vocabularies = new ArrayList<>();
  while (ts.incrementToken()) {
  vocabularies.add(term.toString());
  }
  ts.end();
  return vocabularies;
 } catch (Exception e) {
  logger.error(e.getMessage(), e);
 } finally {
  if (ts != null) {
  try {
   ts.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
  }
 }
 return null;
 }

調(diào)用方式:

 String str = "已知三角形ABC中,角A等于角B加角C,那么三角形ABC是 A、銳角三角形 B、直角三角形 C、鈍角三角形 D、不能確定";
 Analyzer analyzer = new IKAnalyzer(true);
 ikList = analysisByIK(analyzer, "myfield", str);
 listAnalyzer.addAll(ikList);

輸出結(jié)果listAnalyzerd

[已知, 三角形, abc, 中, 角, a, 等于, 角, b, 加, 角, c, 那么, 三角形, abc, 是, a, 銳角三角形, b, 直角三角形, c, 鈍角三角形, d, 不能, 確定]

但是由于公式切詞是 原來公司大牛寫的,在滿足公式切詞的條件下,中文切詞的IKAnalyzer 2012F與其不兼容。于是嘗試其他版本,最終決定用 IKAnalyzer 3.2.8 實現(xiàn)了兼容。

二、IKAnalyzer 3.2.8 + lunece 3.1.0 兼容版本

 public static List<String> analysisByIK3Point2(Analyzer analyzer,String field, String content) throws Exception{
 if(StringUtils.isNullOrEmpty(content)){
  return null;
 }
 List<String> list = new ArrayList<>();
 Reader reader = new StringReader(content);
    TokenStream stream = (TokenStream)analyzer.tokenStream(field, reader);
    //添加工具類 注意:以下這些與之前l(fā)ucene2.x版本不同的地方
    TermAttribute termAtt = (TermAttribute)stream.addAttribute(TermAttribute.class);
    OffsetAttribute offAtt = (OffsetAttribute)stream.addAttribute(OffsetAttribute.class);
    // 循環(huán)打印出分詞的結(jié)果,及分詞出現(xiàn)的位置
    while(stream.incrementToken()){
     list.add(termAtt.term());
//       System.out.println(termAtt.term());
    }
 return list;
 }

調(diào)用方式:

 String str = "已知三角形ABC中,角A等于角B加角C,那么三角形ABC是 A、銳角三角形 B、直角三角形 C、鈍角三角形 D、不能確定";
 Analyzer analyzer = new IKAnalyzer(true);
 ikList = analysisByIK3Point2(analyzer, "myfield", str);
 listAnalyzer.addAll(ikList);

輸出結(jié)果:

[已知, 三角形, abc, 中, 角, a, 等于, 角, b, 加, 角, c, 那么, 三角形, abc, 是, a, 銳角三角形, b, 直角三角形, c, 鈍角三角形, d, 不能, 確定]

即使用不同版本實現(xiàn)相同功能效果。 主要是 因為IKAnalyzer 2012F 依賴AnalyzertokenStreamfinal方法,但是公式分詞用到的tokenSteam方法是抽象方法。兩者沖突了,所以考慮去做兼容。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • 面試題:用 Java 逆序打印鏈表

    面試題:用 Java 逆序打印鏈表

    這篇文章主要介紹了面試題:用 Java 逆序打印鏈表,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • 淺談java異常處理之空指針異常

    淺談java異常處理之空指針異常

    下面小編就為大家?guī)硪黄獪\談java異常處理之空指針異常。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • Java服務(wù)假死之生產(chǎn)事故的排查與優(yōu)化問題

    Java服務(wù)假死之生產(chǎn)事故的排查與優(yōu)化問題

    在服務(wù)器上通過curl命令調(diào)用一個Java服務(wù)的查詢接口,半天沒有任何響應(yīng),怎么進行這一現(xiàn)象排查呢,下面小編給大家記一次生產(chǎn)事故的排查與優(yōu)化——Java服務(wù)假死問題,感興趣的朋友一起看看吧
    2022-07-07
  • Java Thread之Sleep()使用方法總結(jié)

    Java Thread之Sleep()使用方法總結(jié)

    這篇文章主要介紹了Java Thread之Sleep()使用方法總結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • Spring事務(wù)處理原理步驟詳解

    Spring事務(wù)處理原理步驟詳解

    這篇文章主要介紹了Spring事務(wù)處理原理步驟詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • 教你在一分鐘之內(nèi)理解Java Lambda表達式并學會使用

    教你在一分鐘之內(nèi)理解Java Lambda表達式并學會使用

    今天給大家?guī)У奈恼率荍ava8新特性的相關(guān)知識,文章圍繞著如何在一分鐘之內(nèi)理解Java Lambda表達式并學會使用展開,文中有非常詳細的介紹,需要的朋友可以參考下
    2021-06-06
  • spring boot 自定義規(guī)則訪問獲取內(nèi)部或者外部靜態(tài)資源圖片的方法

    spring boot 自定義規(guī)則訪問獲取內(nèi)部或者外部靜態(tài)資源圖片的方法

    這篇文章主要介紹了spring boot 自定義規(guī)則訪問獲取內(nèi)部或者外部靜態(tài)資源圖片的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • java內(nèi)存溢出示例(堆溢出、棧溢出)

    java內(nèi)存溢出示例(堆溢出、棧溢出)

    這篇文章主要介紹了java內(nèi)存溢出示例(堆溢出、棧溢出),需要的朋友可以參考下
    2014-04-04
  • cmd中javac和java使用及注意事項詳解

    cmd中javac和java使用及注意事項詳解

    這篇文章主要介紹了cmd中javac和java使用及注意事項詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • 詳解Spring Cloud Zuul中路由配置細節(jié)

    詳解Spring Cloud Zuul中路由配置細節(jié)

    本篇文章主要介紹了詳解Spring Cloud Zuul中路由配置細節(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10

最新評論