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

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

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

服務器之家 - 編程語言 - Java教程 - IKAnalyzer使用不同版本中文分詞的切詞方式實現(xiàn)相同功能效果

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

2021-06-20 14:09執(zhí)筆記憶的空白 Java教程

今天小編就為大家分享一篇關于IKAnalyzer使用不同版本中文分詞的切詞方式實現(xiàn)相同功能效果,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

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

具體如下:

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

?
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
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;
}

調用方式:

?
1
2
3
4
string str = "已知三角形abc中,角a等于角b加角c,那么三角形abc是 a、銳角三角形 b、直角三角形 c、鈍角三角形 d、不能確定";
analyzer analyzer = new ikanalyzer(true);
iklist = analysisbyik(analyzer, "myfield", str);
listanalyzer.addall(iklist);

輸出結果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 兼容版本

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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)打印出分詞的結果,及分詞出現(xiàn)的位置
    while(stream.incrementtoken()){
     list.add(termatt.term());
//       system.out.println(termatt.term());
    }
 return list;
 }

調用方式:

?
1
2
3
4
string str = "已知三角形abc中,角a等于角b加角c,那么三角形abc是 a、銳角三角形 b、直角三角形 c、鈍角三角形 d、不能確定";
analyzer analyzer = new ikanalyzer(true);
iklist = analysisbyik3point2(analyzer, "myfield", str);
listanalyzer.addall(iklist);

輸出結果:

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

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

總結

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

原文鏈接:https://blog.csdn.net/moneyshi/article/details/78645590

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品一区二区三区99 | 国产精品久久久久久久久久久久久久久久 | 色的综合| 国产精品一区二区三区在线播放 | 奶子吧naiziba.cc免费午夜片在线观看 | 黄色片网站在线看 | 毛片视频大全 | 久久精品视频5 | 久久久久一区二区三区四区五区 | 视频在线色| 毛片视频观看 | 久久国产乱子伦精品 | 免费黄色欧美视频 | 狠狠干五月天 | 日本娇小18xxxⅹhd | 久久国产精品久久久久久电车 | 午夜精品成人一区二区 | 一分钟免费观看完整版电影 | 伊人手机在线观看 | 亚洲性视频 | 中午字幕无线码一区2020 | 一级毛片免费大片 | 九一免费国产 | 精品一区二区久久久久 | 日韩视频观看 | 进去了(高h) | 中文字幕在线观看1 | 看免费一级毛片 | 91成人天堂久久成人 | 欧美城网站地址 | 免费国产wwwwwww网站 | 欧美一区二区三区四区五区动图 | 黄色午夜剧场 | 欧美日韩1区2区 | 午夜精品久久久久久毛片 | 亚洲 91 | 91一区二区三区久久久久国产乱 | 久久久久久久久日本理论电影 | 欧美成人免费一区二区三区 | 射逼网站 | 亚洲一区二区三区日本久久九 |