logo科技微讯

jieba 中文分词

作者:科技微讯
日期:2023-05-10
📝 笔记

通知中心 最近增加了语音创建待办提醒的功能,实现方法是使用 jieba 中文分词库。

jieba 原作是一个 python 库,社区衍生出了很多其他语言的版本,jieba 的 README 提到的 Node.js 版是 nodejieba,它是基于 C++ 的 cppjieba 实现的。

cppjieba 默认的分词模式和原作 jieba 有一个很大的不同:cppjieba 会把每一个数字或英文字母单独进行拆分,而 jieba 默认不会。要想避免这个现象,cppjieba 需要开启 HMM 模式,而 jieba 不需要。开启 HMM 模式可能会分出字典没有的词,这不符合我的使用场景。基于 cppjieba 的 nodejieba 也存在一样的问题。

幸好 Node.js 的 jieba 还有另一个版本,即 @node-rs/jieba,它是基于 jieba 的 Rust 版 jieba-rs 开发的,作者都是 messense,messense 另一个更知名的作品是 aliyundrive-webdav,我在之前的文章分享过 aliyundrive-webdav 的使用。

@node-rs/jieba 的使用更接近原作 jieba,通知中心用的就是它。公众号可以自动把用户的语音转换为文字,通知中心收到文字后,使用 @node-rs/jieba 对其进行分词,接着对各词语进行逐一判断,从中提炼出时间、事情两项关键信息,最后就能获得结构化的数据。

donation赞赏
thumbsup0
thumbsdown0
暂无评论