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

有偿求助,求各位给点 NLP 分析思路

  •  
  •   SlipStupig · 2016-09-21 22:56:51 +08:00 · 2571 次点击
    这是一个创建于 3020 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前我有个需求,需要分析一些短语的包含的关键信息:

    例句: 1.买赠 888 元大礼包!晒单再送面值 100 元京东 E 卡一张;反渗透纯水直饮,储水罐设计超低废水比;家用厨房净水器 2.上午 10 点开启! 4388 元净爆价! 3.4K 抗蓝光,呵护双眸健康!八核智能!窄边设计 纤薄机身! 4.17 日 8 点-18 日 8 点品牌秒杀限时 1998 元,赠德国双立人锅具+双立人套刀] 原装进口二代机型,“中国龙”限量珍藏款 5.买赠 888 元大礼包!晒单再送面值 100 元京东 E 卡一张;反渗透纯水直饮,储水罐设计超低废水比;家用厨房净水器 ## 如果我想分析出该商品什么时候开始降价并且知道降价到多少钱,该怎么去分析呢 ## ## 如果有哪位小伙伴愿意帮助我,价格可以商量万分感谢
    13 条回复    2016-09-23 08:13:23 +08:00
    h4x3rotab
        1
    h4x3rotab  
       2016-09-21 23:09:28 +08:00 via iPhone
    1. 用分类器判断语句是否确实是降价促销
    2. 用实体识别方法提取所有实体
    3. 提取数字和时间,根据前后文判断数字和时间的语义,可以从正则表达式开始尝试,结合机器学习来覆盖长尾部分
    h4x3rotab
        2
    h4x3rotab  
       2016-09-21 23:11:25 +08:00 via iPhone
    整体的复杂度在于,首先能否得到足够量的数据,最好是百万级别。其次,工程部分比 NLP 或者机器学习部分的工作量大,做好心理准备。
    murmur
        3
    murmur  
       2016-09-21 23:17:33 +08:00
    我认为 NLP 做不到这种语义识别 这个太网络化了 现有的语料库未必能训练出来
    句法分析后 找赠、送这些关键字倒是可以 问题是这种网络用语依存句法可能还没正则效果好
    menc
        4
    menc  
       2016-09-22 02:17:46 +08:00   ❤️ 1
    (。・∀・)ノ゙
    ls 两个把这个问题搞得这么复杂?
    又不是什么正经 NLP 问题。

    1.时间走实体识别就能出来。
    2.提取所有数字 + “元”,走一个二分类的分类器,来判断是否是价格。

    几千条训练数据足够了,关键是特征找好,数字加元 的短语前后直到最近的非中文字符分词 one hot , 或者用 embedding ,来做特征,我觉得足够分出二分类了。
    SlipStupig
        5
    SlipStupig  
    OP
       2016-09-22 10:09:17 +08:00
    @h4x3rotab 用什么机器学习的算法比较好呢?

    @menc 有些没有“元”的,或者没有“钱”的怎么办呢? eg:app2388 超值品牌秒杀再现狂欢限 150 台秒完止!
    menc
        6
    menc  
       2016-09-22 11:47:14 +08:00
    那就直接对数字做二分类
    @SlipStupig
    argsno
        7
    argsno  
       2016-09-22 18:03:19 +08:00 via Android
    @menc 数字直接做二分类,还是?
    h4x3rotab
        8
    h4x3rotab  
       2016-09-22 20:03:21 +08:00 via iPhone
    规则永远比机器学习更有效,但你愿意投入多少资源去写规则?如果数据集数量稍微大一点就会发现不管写多少规则,来了新数据还是不能处理。所以说要两者互相辅助才有效。好在 lz 的需求比较具体,用我提到的方法应该可以解决超过一半的数据。
    h4x3rotab
        9
    h4x3rotab  
       2016-09-22 20:04:02 +08:00 via iPhone
    另外,几千条肯定是不够的,至少也是十万级别吧
    menc
        10
    menc  
       2016-09-22 20:13:43 +08:00
    @h4x3rotab 几千条够了,对于秒杀这种 根本不怎么变化的 pattern 足够了。
    h4x3rotab
        11
    h4x3rotab  
       2016-09-23 01:43:44 +08:00 via iPhone
    @menc 哪来的 pattern ?每个都是人写的, lz 发的这几条里就没 pattern
    menc
        12
    menc  
       2016-09-23 02:34:23 +08:00
    @h4x3rotab
    赠 xxx 元
    送 xxx 元
    xxx 元惊爆价
    秒杀限时 xxxx 元

    哪个是价格,哪个不是价格,不能一眼看出来?
    所以 one hot 特征就足够了

    说十万数量级的,真是没在工业界用过机器学习?知道人力成本多贵么,专门找来两个人做数据标注,每天标注新闻分类数据只有 700 条,你说标十万要到哪一年去?如果拿一万不能得到很好的效果,十万也是没用。
    h4x3rotab
        13
    h4x3rotab  
       2016-09-23 08:13:23 +08:00 via iPhone
    你列出的这些 pattern 在实际文本上能重复多少次?你觉得多少 pattern 可以召回不低于 50%的样本?标注当然要花钱,但没人说所有数据必须人工标注,显然是先实现一个基础的 parser ,再在上面迭代,十万数量级根本不算多。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2913 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 13:00 · PVG 21:00 · LAX 05:00 · JFK 08:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.