技術(shù)分享-中文分詞
一劍寒霜十四州
發(fā)布于 云南 2020-04-25 · 2.8w瀏覽 10贊

中文分詞需要實(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());

}

}


一劍寒霜十四州
小怪獸,我是明非??!
瀏覽 2.8w
10 收藏 1
相關(guān)推薦
最新評(píng)論
贊過(guò)的人 10
評(píng)論加載中...

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