中文分詞需要實(shí)現(xiàn)功能確實(shí)可以自己寫(xiě),但是效率會(huì)很低,現(xiàn)在互聯(lián)網(wǎng)的時(shí)代很多已經(jīng)寫(xiě)好的分詞引擎,我們只需會(huì)用就行:
當(dāng)前熱門(mén)的分詞引擎:11款開(kāi)放中文分詞引擎大比拼
而今天我要講的是對(duì)分詞引擎進(jìn)行封裝了的中文分詞封裝-TokenizerUtil 真的超級(jí)好用只需兩步即可實(shí)現(xiàn)中文分詞:
第一步TokenizerUtil工具的引入:
<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.3.0</version></dependency>
第二步選擇要用的引擎引入:
<dependency>
<groupId>org.ansj</groupId>
<artifactId>ansj_seg</artifactId>
<version>5.1.1</version>
</dependency>
第三步使用工具類(lèi):
//初始化分詞引擎
TokenizerEngine engine = TokenizerUtil.createEngine();
//解析文本
Result errorResult = engine.parse(errorText);
String errorParticipleStr = CollUtil.join((Iterator<Word>) errorResult, ",");
錯(cuò)誤分詞結(jié)果,只能使用此方式迭代為新字符串
以上就能實(shí)現(xiàn)中文分詞后續(xù)項(xiàng)目的開(kāi)發(fā)就可根據(jù)實(shí)際需要自行操作分詞結(jié)果
向我就是對(duì)分詞結(jié)果再重組看某個(gè)錯(cuò)詞是否是真的錯(cuò)詞:
Result checkResult = engine.parse(checkText);
String checkParticipleStr = CollUtil.join((Iterator<Word>) checkResult, ",");
System.out.println(checkParticipleStr);
String[] checkParticipleStrArr = checkParticipleStr.split(",");//分詞后的字符串?dāng)?shù)組
List<String> result = new ArrayList<>();
if (checkParticipleStrArr.length > 0) {
for(int i = 0; i < checkParticipleStrArr.length; i++) {//從左往右按順序重組即可
if (checkParticipleStrArr.length -i < errorStep) break;//開(kāi)始位置后的個(gè)數(shù)小于步長(zhǎng)跳出
StringBuilder temp = new StringBuilder();
temp.append(checkParticipleStrArr[i]);
int dep = 1;
while (errorStep > dep) {
temp.append(checkParticipleStrArr[i + dep]);//根據(jù)步長(zhǎng)取相應(yīng)個(gè)數(shù)的字符串
dep++;
}
System.out.println(temp.toString());
result.add(temp.toString());
}
}





暫無(wú)評(píng)論,快來(lái)評(píng)論吧!