Gse v0.30.0 发布了, Go 高性能分词, 增加 hmm 支持

2019-01-24 07:51:51 +08:00
 vway

Go 语言高效分词, 支持英文、中文、日文等

词典用双数组 trie ( Double-Array Trie )实现, 分词器算法为基于词频的最短路径加动态规划。v0.30.0 版本主要新增了 DAG 和 HMM (Viterbi) 算法分词, 新增 API 基本和结巴分词保持一致.

支持普通、搜索引擎、全模式、精确模式和 HMM 模式多种分词模式,支持用户词典、词性标注,可运行 JSON RPC 服务。

项目地址: https://github.com/go-ego/gse

package main

import (
    "fmt"

    "github.com/go-ego/gse"
)

func main() {
    var seg gse.Segmenter
    seg.LoadDict()

    text1 := "你好世界, Hello world"
    fmt.Println(seg.Cut(text1, true))
}

Rhine River

Add

Update

Fix

See Commits for more details, after Oct 9.

5237 次点击
所在节点    Go 编程语言
16 条回复
yanaraika
2019-01-24 07:56:48 +08:00
其实一直不懂为啥中文分词库一直停留在 hmm 的 level 能不能来个这几年的研究结果和 hmm 性能比较
vway
2019-01-24 08:09:57 +08:00
@yanaraika 刚实现对 hmm 的支持, 后面对比其他库和优化, 应该比起其他库, 性能不会低
vway
2019-01-24 08:44:09 +08:00
@yanaraika 还提供了最短路径、动态规划和 DAG 分词
wbrobot
2019-01-24 09:13:30 +08:00
和 sego 谁抄谁?
vway
2019-01-24 09:45:48 +08:00
@wbrobot 总有有些人不看项目的 License, 一部分基于 sego ( 当时 2 年没维护了, 功能不完善有 BUG, 才开的新项目 ), 你可以说抄了 Python 的 jieba
wbrobot
2019-01-24 10:01:10 +08:00
那就来个 readme 找不同。。。
https://github.com/huichen/sego
https://github.com/go-ego/gse/blob/master/README_zh.md

奇怪,用代码就用代码,连测试都不自己跑一下,数据直接用人家的?
vway
2019-01-24 10:04:22 +08:00
@wbrobot 你有看代码和 License 吗? soldier, 请搞清楚数据是 jieba 分词, sego 的也是
vway
2019-01-24 10:09:40 +08:00
@wbrobot 有什么奇怪的? 你说的那个 readme 的数字, 有很多功能要实现, 还没更新 readme, 还以为你说的的字典数据呢
iRiven
2019-01-24 10:14:29 +08:00
已 star
vway
2019-01-24 10:20:49 +08:00
@iRiven 感谢, 🤝
lyc1116
2019-01-24 13:15:53 +08:00
@yanaraika 算法从 HMM,CRF 到深度神经网络,切分的查准和召回率都有小幅提升。但是对分词器切分性能影响最大的还是要有一份好的语料或者词典。
yanaraika
2019-01-24 14:58:48 +08:00
@lyc1116 不知道有没有人用词嵌入之类的技术做分词,现在的分词器遇到新词就歇菜了,需要频繁维护 dict 相当麻烦
ensonmj
2019-01-24 15:19:04 +08:00
@yanaraika 词嵌入的前提不就是分词?感觉想鸡生蛋的问题啊
vway
2019-01-24 23:08:27 +08:00
@yanaraika
@ensonmj 是的, 目前的算法要完全解决新词, 只能维护模型和字典
vway
2019-01-24 23:14:20 +08:00
@lyc1116 语料库、模型和词典主要影响新词和准确度, 要完全准确, 只能更新模型和字典; jieba 用的 hmm, pkuseg 是 CRF , 算法都差不多; 准确度看语料库、模型和字典, 性能关键还是看代码实现、实现的语言和字典树算法等这些
vway
2019-01-25 01:35:55 +08:00
@lyc1116 词库和模型的规模和结构, 匹配选词的实现技术, 也严重的影响了分词速度; 但代码实现更重要, 除了准确和速度还要考虑内存占用和维护等

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/530039

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX