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


复制代码
如果您感觉文章有用的话,麻烦点个赞吧!
如果您发现文章有任何错误或建议,请评论区留言或者私信!
深海谢过各位的支持,一起加油!
相关推荐
alexhilton1 小时前
Android上的ZeroMQ:用发布/订阅模式连接Linux服务
android·kotlin·android jetpack
风别鹤2 小时前
Cocos Creator无法识别Android SDK
android
应用市场2 小时前
Android A/B 无缝更新机制深度剖析
android·网络
企客宝CRM2 小时前
2026年中小企业CRM选型指南:企客宝CRM处于什么位置?
android·算法·企业微信·rxjava·crm
simplepeng3 小时前
我通过3个小改动将Compose重组减少了78%
android
应用市场4 小时前
Android分区表深度解析:GPT、各分区作用与布局实战
android·gpt
应用市场4 小时前
Android Recovery 模式工作原理与定制实战
android
应用市场7 小时前
eMMC 与 UFS 存储原理及在 Android 中的应用
android
随遇丿而安7 小时前
第4周:ImageView 最怕的不是不会显示图片,而是显示得“不对劲”
android
Mart!nHu7 小时前
Android10 添加以太网网络共享功能
android·以太网共享