V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
flyhelan
V2EX  ›  Python

如何从 0 用 Python 开发一个类似 jieba 的分词工具?请问有没有建议阅读的书籍或者路线?

  •  
  •   flyhelan · 2021-11-30 13:07:46 +08:00 · 2090 次点击
    这是一个创建于 849 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题。
    10 条回复    2021-11-30 15:44:40 +08:00
    rpman
        1
    rpman  
       2021-11-30 13:15:25 +08:00
    起码得有点机器学习基础吧
    要超越 jieba 的话, https://github.com/hankcs/HanLP 了解一下, 甚至可以基于他做多任务蒸馏
    menc
        2
    menc  
       2021-11-30 13:15:42 +08:00
    直接看 jieba 分词的源码就行。
    jieba 分词用的是传统方式,在不开隐马尔科夫模型的时候,是一个很基本的前向最大匹配和后向最大匹配算法,不需要数学知识。

    建议看 jieba 早期的一些源码,没有现在这么多东西
    flyhelan
        3
    flyhelan  
    OP
       2021-11-30 13:16:16 +08:00
    @rpman 有机器学习基础。更多的是需要 工程实现路径 而不是基础知识。我有机器学习基础和 NLP 概念。
    flyhelan
        4
    flyhelan  
    OP
       2021-11-30 13:16:46 +08:00
    @menc 嗯好。那就先从 0.1 、2 版本开始看起吧。
    rpman
        5
    rpman  
       2021-11-30 13:29:19 +08:00
    @flyhelan 不知道你的学习目标是什么. 单纯说 jieba 的话它基本已经停更了, 更多只是作为一个 baseline 而存在, 或者只是单纯的路径依赖. 在真实生产上对准确率有一点要求都不会考虑它.
    顺便一提即使是 jieba, 在末期的版本也已经用上了深度学习, 虽然效果还是落后.
    flyhelan
        6
    flyhelan  
    OP
       2021-11-30 14:05:46 +08:00
    @rpman 那现在生产环境用啥?有什么生产环境使用的推荐的?
    NCZkevin
        7
    NCZkevin  
       2021-11-30 14:07:54 +08:00
    @rpman 不用 jieba 的话,那现在 python 分词用啥库比较多。之前嫌麻烦一直都是用 jieba
    rpman
        8
    rpman  
       2021-11-30 14:16:58 +08:00
    @flyhelan
    @NCZkevin
    个人推荐 hanlp.
    百度的 LAC 或者哈工大的 LTP4 也是开源的
    不差钱可以用各种大小厂 API

    根据我以前测评的结果看大概就是 jieba 准确率 95% HanLP 准确率 99%的样子.

    话说回来不追求太准的话, jieba 也是够用了. 因为他就是跑一下 DAG/Viterbi, 开销很小. HanLP 毕竟有深度学习模型
    我之前回复主要针对学习, 因为 jieba 真的过时了, 而且匹配什么的 HanLP / LTP 也有对应算法, 是更好的学习材料.
    rpman
        9
    rpman  
       2021-11-30 14:25:23 +08:00
    @rpman 顺便补充, 不知道 jieba 的 Bi-LSTM 深度模型是咋回事, 在我的数据上没显示出什么明显优势, 性能倒是比 HanLP 慢不少.
    xingshu1990
        10
    xingshu1990  
       2021-11-30 15:44:40 +08:00
    有几楼偏了,不过……好像……偏的又合理。

    第三方库的第一次出现,都是作者本身有一些需求,然后慢慢完善起来,慢慢的功能通用起来。
    建议从 jieba 上传的第一份代码开始看起,看看每次更新了什么内容,为了完成什么需求,然后自己跟着一个字母一个字母敲了,调试。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5291 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 09:32 · PVG 17:32 · LAX 02:32 · JFK 05:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.