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


复制代码
如果您感觉文章有用的话,麻烦点个赞吧!
如果您发现文章有任何错误或建议,请评论区留言或者私信!
深海谢过各位的支持,一起加油!
相关推荐
小蜜蜂嗡嗡30 分钟前
Android Studio flutter项目运行、打包时间太长
android·flutter·android studio
aqi0036 分钟前
FFmpeg开发笔记(七十一)使用国产的QPlayer2实现双播放器观看视频
android·ffmpeg·音视频·流媒体
zhangphil2 小时前
Android理解onTrimMemory中ComponentCallbacks2的内存警戒水位线值
android
你过来啊你2 小时前
Android View的绘制原理详解
android
移动开发者1号5 小时前
使用 Android App Bundle 极致压缩应用体积
android·kotlin
移动开发者1号5 小时前
构建高可用线上性能监控体系:从原理到实战
android·kotlin
ii_best10 小时前
按键精灵支持安卓14、15系统,兼容64位环境开发辅助工具
android
美狐美颜sdk10 小时前
跨平台直播美颜SDK集成实录:Android/iOS如何适配贴纸功能
android·人工智能·ios·架构·音视频·美颜sdk·第三方美颜sdk
恋猫de小郭15 小时前
Meta 宣布加入 Kotlin 基金会,将为 Kotlin 和 Android 生态提供全新支持
android·开发语言·ios·kotlin
aqi0016 小时前
FFmpeg开发笔记(七十七)Android的开源音视频剪辑框架RxFFmpeg
android·ffmpeg·音视频·流媒体