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
a591826944
V2EX  ›  Python

请教一个结巴分词的问题。。

  •  1
     
  •   a591826944 · 2014-05-28 17:00:48 +08:00 · 8487 次点击
    这是一个创建于 3857 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我看到v2ex上的是用结巴分词提取的标签。。我也想给我的网站用。我的时PHP做的。
    首先我clone了结巴分词。使用了他 提取标签 的demo程序,在命令行下运行。配置词库等。都是默认的,就是 extract_tags.py 这个demo。

    一句话,20字左右,提取两个关键词。我发现。在命令行下直接运行这个demo程序,第一次运行 4秒+ 第二次运行 因为词库缓存 1.6s左右。。。时间是结巴自己统计的。

    loading model from cache /tmp/jieba.cache
    loading model cost 1.6911380291 seconds.
    Trie has been built succesfully.
    [u'\u9910\u5385', u'\u597d\u5403']

    我想请问。。这个时间 好像 挺慢的把。。v2 也是 这么慢 调用的吗??
    当然 我的是阿里云,配置是 1核 1G 内存

    关于PHP调用结巴分词。。我现在在做 写python http服务,监听端口,跟php来交互返回给我关键词的结果。大家还有什么别的更好的方式么?

    关于结巴分词。。还需要优化之类的么?暂时我只需要 提取关键词功能,是不是直接用demo改写就好了?@livid

    问题稍多 有点乱,,感谢认真看完和所有回答的同学
    第 1 条附言  ·  2014-05-28 20:29:46 +08:00
    感谢大家的回复。我一起启动了python的http服务。。确实没问题了。只有启动读入内存的时候会慢。之后会很快。。。
    但是,还有一个关于内存消耗的问题:我用了结巴的那个big字典。。就是github自带的那个。。8.5M左右。。但是 我确实没想到。。服务启动起来会占二三百M的内存啊。。。这正常么?求分析。。小内存服务器伤不起
    27 条回复    2017-09-29 18:24:05 +08:00
    Livid
        1
    Livid  
    MOD
       2014-05-28 17:04:14 +08:00   ❤️ 1
    我们曾经确实在用结巴分词,不过目前已经换到另外一个分词服务了。

    改天会向大家介绍,目前看起来效果还不错。
    kier
        2
    kier  
       2014-05-28 17:07:53 +08:00
    不会呀,我印象中就程序load的时候比较慢,后面就很快呀
    a591826944
        3
    a591826944  
    OP
       2014-05-28 17:10:10 +08:00
    @kier 是因为我配置低的缘故么? 但是 看上面的信息。。确实用的时 cache的词库
    cache /tmp/jieba.cache
    a591826944
        4
    a591826944  
    OP
       2014-05-28 17:11:34 +08:00
    @Livid 我是自己做着玩的东西。。所以都行吧。。我想先把这个搞起来看看,,等不到改天了 -_-|||..了解这个 比较慢的情况么?
    a591826944
        5
    a591826944  
    OP
       2014-05-28 17:12:13 +08:00
    关于php 和 jieba 的 python http服务交互。。大家还有什么其他的建议吗
    Livid
        6
    Livid  
    MOD
       2014-05-28 17:13:54 +08:00   ❤️ 2
    @a591826944 V2EX 的办法是单独启动了一个 web service 来提供标签提取。
    kier
        7
    kier  
       2014-05-28 17:16:16 +08:00   ❤️ 2
    @a591826944, 刚仔细看了你的帖子,这个使用是没问题的,你是直接运行那个demo程序,它会完成load词库到内存中,然后再分词等等,当然慢了,但是你做http服务,load词库到内存中只会在启动的时候做一次,后面不会再做了,所以速度不会有影响的
    a591826944
        8
    a591826944  
    OP
       2014-05-28 17:21:41 +08:00
    @Livid 是的我也想这么做。。所以我会启动一个python的http服务。。但是目前在命令行下运行demo的时间来看。。有点长啊。。这样即使上了服务。。也不会快的呀
    a591826944
        9
    a591826944  
    OP
       2014-05-28 17:22:57 +08:00
    @kier 有道理。。我先做做看。。感谢
    ultimate010
        10
    ultimate010  
       2014-05-28 19:19:29 +08:00
    干嘛不用c++版本?
    decken
        11
    decken  
       2014-05-28 19:42:39 +08:00
    @Livid 发官网链接或者说出项目名字不就可以了吗?最讨厌吊人胃口了
    Livid
        12
    Livid  
    MOD
       2014-05-28 19:46:48 +08:00
    @decken 我也不想这样。

    但是刚刚和他们邮件沟通的时候,他们可能还要再过一段时间才开始推广。我需要尊重别人公司的日程。
    XDA
        13
    XDA  
       2014-05-28 20:19:51 +08:00   ❤️ 1
    项目里用的IK
    a591826944
        14
    a591826944  
    OP
       2014-05-28 20:27:03 +08:00
    @ultimate010 我也看了C++版本。而且我发微博咨询了作者。。c++版本确实直接就可以提供分词服务。。但是 我没有看到提供提取关键词服务的说明。。所以我问了他。。还没回复
    aszxqw
        15
    aszxqw  
       2014-05-28 20:34:25 +08:00
    @a591826944 不好意思下午6点才看到你的私信。不过已经回复你了,你不能收到吗?
    a591826944
        16
    a591826944  
    OP
       2014-05-28 20:39:12 +08:00
    @aszxqw 哎呦我去。。碰上了。。。恢复了。。刚到家,一直在路上。。。
    dreampuf
        17
    dreampuf  
       2014-05-28 20:55:59 +08:00   ❤️ 1
    ultimate010
        18
    ultimate010  
       2014-05-28 21:10:46 +08:00
    @dreampuf 哈工大的自然语言处理很牛逼。
    halfcrazy
        19
    halfcrazy  
       2014-05-28 21:20:04 +08:00   ❤️ 2
    dreampuf
        20
    dreampuf  
       2014-05-28 22:45:11 +08:00   ❤️ 3
    @ultimate010 除了哈工大,stanford,中科院
    还推荐一个海量分词 http://home.hylanda.com/show_5_19.html
    除了结巴分词之外,更推荐楼上的 snownlp 。作者是个苦苦修行技术的单身。

    @a591826944 词典文件一般序列化为特定格式或者经过压缩,反序列化到内存中时大小一般会翻几番(视倒插表结构)。HTTP服务一般会启动多个实例,以类库的形式调用会产生不必要的内存开销。最好的方法是独立为一个外部服务,独立处理。
    alexapollo
        21
    alexapollo  
       2014-05-28 23:49:55 +08:00
    结巴是使用时加载,说实话我不觉得很好
    decken
        22
    decken  
       2014-05-29 00:15:41 +08:00 via Android
    @Livid 原来是内测,不好意思误会了。期待中…
    ShakeChan
        23
    ShakeChan  
       2014-09-17 16:04:19 +08:00
    @Livid 目前该厂的词库开始推广了吗?
    fxsjy
        24
    fxsjy  
       2014-10-27 12:46:22 +08:00   ❤️ 1
    试用下jieba最新版0.34吧,内存占用已经下降到原来的1/3,加载速度0.6秒左右。
    sangxiaolong
        25
    sangxiaolong  
       2014-11-18 23:49:27 +08:00
    @Livid 现在v2ex的自动tag功能比以前好很多了,请问现在用的什么工具呢,能分享一下么?谢谢
    decken
        26
    decken  
       2014-11-26 14:25:35 +08:00
    @fxsjy 确实是 感谢
    v9ex
        27
    v9ex  
       2017-09-29 18:24:05 +08:00
    @Livid 新的分词服务是否可以问下具体名称?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   995 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:37 · PVG 05:37 · LAX 13:37 · JFK 16:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.