国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看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)相同功能效果,小編覺得內(nèi)容挺不錯的,現(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;
}

調(diào)用方式:

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

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

?
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)打印出分詞的結(jié)果,及分詞出現(xiàn)的位置
    while(stream.incrementtoken()){
     list.add(termatt.term());
//       system.out.println(termatt.term());
    }
 return list;
 }

調(diào)用方式:

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

輸出結(jié)果:

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

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

總結(jié)

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久伊人国产 | 国产一区二区视频免费看 | 日韩精品在线播放 | 福利视频一区二区三区 | 国产2区 | 欧美日韩综合在线 | 免费看一级电影 | 亚洲在线视频一区二区 | 亚洲黄色高清 | 极品一区 | 国产精品成人一区二区三区 | 国产成人a亚洲精品 | 久在线| 激情综合在线 | 看国产黄色片 | 波多一区二区 | 美女一级| 婷婷色视频 | 97精品在线| 日韩精品 | 欧美日韩高清在线 | 久久伊人国产 | 久综合网 | 色综合中文 | 日韩欧美一区视频 | 国产亚洲欧美美 | 激情毛片 | 午夜视频网 | 香蕉av影院| 黄色在线观看视频 | 国产精品不卡视频 | 国产精品一区二区av | 中文在线观看视频 | 国产乱轮 | 蜜臀精品久久久久久蜜臀 | 欧美成人a| 国产视频1区| 中文字幕四虎 | 成人久久久 | 夜夜操天天干 | 国产精品美女久久久久aⅴ国产馆 |