Android 分词的两种方式

前言:

本文分别介绍了原生和三方(Jieba)两种分词方式的使用和注意事项

1、安卓原生BreakIterator分词

比较简单,但是效果不太行

Kotlin 复制代码
    /**
     *  功能:原生分词
     *  参数:text:需要分词的语句
     *  返回值:return:分词后的语句
     *  作者:赵星海
     */
    private fun setTextBreakIterator(text: String) :String {
        val boundary: BreakIterator = BreakIterator.getWordInstance(Locale.CHINA)
        boundary.setText(text)
        var start: Int = boundary.first()
        var end: Int
        val arrayListOf = arrayListOf<String>()
        while (start != BreakIterator.DONE) {
            end = boundary.next()
            if (end <= start) continue
            val word: String = text.substring(start, end)
            arrayListOf.add(word)
            start = boundary.next()
        }
        return arrayListOf.toString()
    }
执行结果:

绿色区域为分词结果

2、Jieba分词 也叫"结巴"分词

准备:

Jieba的依赖是坏的,不能用的,

网上给出的和github上写的依赖都是不可以使用的,

所以拷贝其中的核心类是目前最靠谱的方案

去Github把Jieba项目下载下来,然后把关键类和文件拷贝到自己项目中

https://github.com/452896915/jieba-androidhttps://github.com/452896915/jieba-android 需要这些文件:

注意:assets下的文件都要拷贝过来,否则会报空指针,即便处理了空指针也无法中文分词

使用:

1、提前初始化JiebaSegmenter

Kotlin 复制代码
        JiebaSegmenter.init(applicationContext)

2、切子线程调用getJiebaSegmenterSingleton() ->同步分词方法

Kotlin 复制代码
                    Thread {
                        val string: String =JiebaSegmenter
                                .getJiebaSegmenterSingleton()
                                .getDividedString(text)
                                .toString()
                        runOnUiThread {
                            //在主线程将结果stirng 显示出来
                        }
                    }.start()

3、还有一个异步分词方法这边就不介绍了,直接调用就行了

方法名:getDividedStringAsync()

所属类:JiebaSegmenter

执行结果:

更多内容推荐:

https://blog.csdn.net/qq_39731011/category_7565212.html?fromshare=blogcolumn&sharetype=blogcolumn&sharerId=7565212&sharerefer=PC&sharesource=qq_39731011&sharefrom=from_linkhttps://blog.csdn.net/qq_39731011/category_7565212.html?fromshare=blogcolumn&sharetype=blogcolumn&sharerId=7565212&sharerefer=PC&sharesource=qq_39731011&sharefrom=from_link


复制代码
如果您感觉文章有用的话,麻烦点个赞吧!
如果您发现文章有任何错误或建议,请评论区留言或者私信!
深海谢过各位的支持,一起加油!
相关推荐
Digitally7 分钟前
如何从 Android 设备打印短信(5 种方法)
android
casual_clover14 分钟前
Android 中 打开文件选择器(ACTION_OPEN_DOCUMENT )
android
_龙小鱼_1 小时前
卡顿检测与 Choreographer 原理
android·kotlin
云手机管家3 小时前
账号风控突破:云手机设备指纹篡改检测与反制技术解析
android·运维·网络协议·网络安全·智能手机·矩阵·自动化
千里马-horse3 小时前
Detected for tasks ‘compileDebugJavaWithJavac‘ (17) and ‘kspDebugKotlin‘ (21).
android·jdk·kspdebugkotlin
柯南二号5 小时前
【Android】Android 实现一个依赖注入的注解
android
archko7 小时前
语音识别-3,添加ai问答
android·人工智能
奔跑吧 android12 小时前
【android bluetooth 案例分析 03】【PTS 测试 】【PBAP/PCE/SGSIT/SERR/BV-01-C】
android·pts·aosp·pbap·sgsit
難釋懷15 小时前
Android开发-Application
android
seven272917 小时前
Android 适配之——targetSdkVersion 30升级到31-34需要注意些什么?
android·版本设置31-34·targetsdk