V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Livid
V2EX  ›  Project Babel

关于 V2EX 新的自动打标签功能

  •  1
     
  •   Livid · 2014-01-14 10:12:11 +08:00 · 13251 次点击
    这是一个创建于 3950 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在在 V2EX 每个主题的右下角,多了一个新的自动打标签功能,及相关的聚合页面。

    这是基于 jieba 做的。目前的效果在某些主题上还是不太理想,接下来会继续优化。

    大家如果有什么好的思路,或者好的词典,还请多多赐教,谢谢。
    第 1 条附言  ·  2014-01-14 21:01:41 +08:00
    extract tags 部分已经被挪到一个独立的进程运行,通过异步方式调用。

    现在 V2EX 在部署新代码的时候不会再因为等待 jieba 启动而产生 HTTP 5xx 错误了。
    71 条回复    1970-01-01 08:00:00 +08:00
    meteor2013
        1
    meteor2013  
       2014-01-14 10:15:00 +08:00
    是不是要回复好几个贴才会出现标签?
    只有主题就不会出现?
    Livid
        2
    Livid  
    MOD
    OP
       2014-01-14 10:15:34 +08:00
    @meteor2013 主题第二次 load 的时候就会有标签。
    kstsca
        3
    kstsca  
       2014-01-14 10:16:20 +08:00
    @Livid 样式不怎么好看,建议给他加个框框,箭头那种。
    Livid
        4
    Livid  
    MOD
    OP
       2014-01-14 10:16:54 +08:00
    @kstsca 貌似是因为 CSS 没有更新。我马上解决这个问题。

    你可以先试试刷新。
    meteor2013
        5
    meteor2013  
       2014-01-14 10:16:59 +08:00
    jieba是中文分词,有没有英文的分词的打标签的东东?
    Livid
        6
    Livid  
    MOD
    OP
       2014-01-14 10:19:21 +08:00
    一个副作用就是,由于初始化过程比较慢,每次我们部署完新代码之后,你可能会看到大概 5 秒的 Bad Gateway 500。
    meteor2013
        7
    meteor2013  
       2014-01-14 10:19:28 +08:00
    @Livid 第二次load已经看到标签了,但是这个标签要是可以根据大家的回复,还有回复内容的频率改变就牛逼了。
    botao1
        8
    botao1  
       2014-01-14 10:19:41 +08:00
    @Livid 样式再微调一下吧,现在每个标签之间没有margin : )
    Livid
        9
    Livid  
    MOD
    OP
       2014-01-14 10:20:04 +08:00
    @botao1 请刷新一下浏览器。
    est
        10
    est  
       2014-01-14 10:21:57 +08:00
    @Livid 不如可以针对用户 id 打标签。我觉得很有意思啊。。哈哈。比如某某谁吹过牛,招过人,创过页,做过什么东西,看tag一下子就知道了。
    botao1
        11
    botao1  
       2014-01-14 10:22:01 +08:00
    @Livid OK 刷新了一下好多了,赞!
    不过感觉圆角背景和标签图标的颜色对比度稍嫌低,还可以再大一点点
    gotounix
        12
    gotounix  
       2014-01-14 10:22:38 +08:00
    很赞的功能啊!大爱!!!
    Livid
        13
    Livid  
    MOD
    OP
       2014-01-14 10:23:05 +08:00
    @est 这个是可以根据目前的数据算出来的:

    Member -> Topics -> Tags

    接下来会有这个功能:根据每个人发的帖子生成的标签云。
    Livid
        14
    Livid  
    MOD
    OP
       2014-01-14 10:25:24 +08:00
    接下来还可以有的几件好玩的事情:

    * 构建一个所有单词的标准拼写库,比如 v2ex -> V2EX,ssl -> SSL,simcity -> SimCity
    * 挖掘一下数据量更大的回复数据
    westy
        15
    westy  
       2014-01-14 10:31:10 +08:00
    标签位置很奇怪,会让人觉得是评论的标签。
    Livid
        16
    Livid  
    MOD
    OP
       2014-01-14 10:32:23 +08:00
    @westy 从逻辑上来说确实有点问题。但是放到第一个卡片里的任何位置都别扭…
    qiayue
        17
    qiayue  
       2014-01-14 10:36:41 +08:00
    发现一个小 BUG ,重复标签
    /t/96719 两次“框架”
    Livid
        18
    Livid  
    MOD
    OP
       2014-01-14 10:37:21 +08:00
    @qiayue 多谢反馈!现在马上检查。
    botao1
        19
    botao1  
       2014-01-14 10:43:54 +08:00   ❤️ 1
    @Livid @westy
    我觉得同样作为作为元数据,可以放在第一个卡片标题下 “By Livid” 和 “27 分钟前 · 537 次点击” 之间,或者 “27 分钟前 · 537 次点击” 之后。

    目前的位置,会觉得这些标签跟回复有直接联系~
    mkeith
        20
    mkeith  
       2014-01-14 10:44:48 +08:00
    标签和主题放到一起吧,和回复在一起怪怪的啊。
    xiaojay
        21
    xiaojay  
       2014-01-14 10:45:04 +08:00
    分词 然后用 TF-IDF ?
    Livid
        22
    Livid  
    MOD
    OP
       2014-01-14 10:45:36 +08:00
    @botao1
    @mkeith 请相信设计师的直觉。:-)
    hzlzh
        23
    hzlzh  
       2014-01-14 10:48:32 +08:00
    @Livid 墙裂的需要大小写规范化单词
    nemoliu
        24
    nemoliu  
       2014-01-14 10:49:26 +08:00
    能介绍一下计算的过程么?对标题分词然后根据tf-idf做关键词提取?
    FarBox
        26
    FarBox  
       2014-01-14 11:04:51 +08:00   ❤️ 1
    中文词典应该都是接近的。如果有更好的,同求。 :)

    我们原来有尝试用jieba+mongodb做全文检索,但试了下,性能很糟糕,没有办法用在生产环境。

    最后选择用ElasticSearch作为纯粹的分词+索引的中间库,也算一种奇葩的用法;不过效果还挺不错的。
    dorentus
        27
    dorentus  
       2014-01-14 11:07:26 +08:00   ❤️ 2

    放这个位置不也挺好的么……
    mopig
        28
    mopig  
       2014-01-14 11:07:45 +08:00   ❤️ 1
    http://v2ex.com/tag/tooyoung
    不存在的 tag 会报错~
    Superoutman
        29
    Superoutman  
       2014-01-14 11:09:18 +08:00
    非常赞同19楼 @botao1 的提议。
    ryon
        30
    ryon  
       2014-01-14 11:12:01 +08:00
    tag和节点会不会有一定的重复?我们在设计的过程中也考虑过类似的问题,后来最终考虑还是采用节点,相比之下自动计算出来的tag可能很多情况下利用率不高。
    huafang
        31
    huafang  
       2014-01-14 11:20:33 +08:00
    @ryon wecenter 新版不错,我一直在期待
    mactaew
        32
    mactaew  
       2014-01-14 11:22:45 +08:00
    @Livid 分词略有问题。
    ayukun
        33
    ayukun  
       2014-01-14 11:26:54 +08:00
    和27楼想到一块了,放那里就挺好,还容易看见 ,刚刚找这个主题的表情费了好一会。可以考虑加淡彩
    meteor2013
        34
    meteor2013  
       2014-01-14 11:27:32 +08:00 via iPhone
    目前在iPhone 上看不到标签
    dorentus
        35
    dorentus  
       2014-01-14 11:32:42 +08:00
    @ayukun
    我明白了,自己的帖子,功能按钮,例如「追加内容」目前是放在那个位置的……
    所以 Livid 才一开始就没考虑把 tag 放在那里吧
    Livid
        36
    Livid  
    MOD
    OP
       2014-01-14 11:37:46 +08:00
    @dorentus 对,在一个主题刚发布的前 300 秒,那里会有 MOVE 和 EDIT 按钮。1800 秒之后,会有 APPEND 按钮。
    Livid
        37
    Livid  
    MOD
    OP
       2014-01-14 11:38:28 +08:00
    @mopig 谢谢,这个问题已经解决。
    xiaop
        38
    xiaop  
       2014-01-14 11:47:33 +08:00
    tag这个功能非常棒!如果能对tag做归类就更棒了
    ayang23
        39
    ayang23  
       2014-01-14 11:48:12 +08:00
    jieba启动慢,费内存,貌似要在每个django线程里加载一份词典,简单的不如用mmseg
    Mihuwa
        40
    Mihuwa  
       2014-01-14 11:55:48 +08:00
    很赞的功能。
    SkyTodInfi
        41
    SkyTodInfi  
       2014-01-14 11:55:49 +08:00
    @livid 可以考虑有一个特定的标签库,毕竟tf-idf算出来的词比较杂乱,甚至一些是没有意义的

    或者选定一些topic,包含一些特定的词语,文本只用jieba分词,打标签使用文本和topic之间的向量空间模型.
    wwqgtxx
        42
    wwqgtxx  
       2014-01-14 12:04:39 +08:00 via Android
    移动平台呢?
    cbsw
        43
    cbsw  
       2014-01-14 12:29:36 +08:00
    需要对一些特殊情况专门处理吧,比如 http://www.v2ex.com/t/96764#reply12 这里内容几乎就是代码, tag 分析出来的只有 print,outer,local 这些没啥意义的词(PS:V2EX 内部链接是怎么写的来着?)
    Sunya
        44
    Sunya  
       2014-01-14 13:48:11 +08:00
    放 点击 收藏 那个 topic_buttons 区域会好点, 这样看起来会更让人觉得跟主题相关.

    标签用自定义+分词相结合的会不会更好一点. 有些词未必已经收录了.
    xiaop
        45
    xiaop  
       2014-01-14 13:51:53 +08:00 via iPad
    @SkyTodInfi 赞同
    gihnius
        46
    gihnius  
       2014-01-14 14:02:54 +08:00
    觉得对主题内容做 tag 已经没有什么意义,因为可以 google.
    而且, 打开 tag 之后你会看到很多看过的内容.

    最好能对用户做 tag, 当然也是基于用户的内容, 这样其它用户可以根据某个用户的 tag 决定是否关注这个用户的内容.
    mozii
        47
    mozii  
       2014-01-14 14:06:36 +08:00
    @Livid dorentus 赞设计师的直觉。补充个理由:需要变迁基本会是在看完这篇帖子之后,所以出现在末尾是恰当的,标签相当于对该帖子的延伸、补充、互动(这岂不就是回复的实质?),从此点来看,放在回复的这个卡片里,在人们需要的时候进入视野,是好的设计。
    mozii
        48
    mozii  
       2014-01-14 14:25:52 +08:00
    变迁 == 标签
    ipconfiger
        49
    ipconfiger  
       2014-01-14 15:11:30 +08:00
    @Livid
    --------------------------
    一个副作用就是,由于初始化过程比较慢,每次我们部署完新代码之后,你可能会看到大概 5 秒的 Bad Gateway 500。
    --------------------------
    这个应该是可以避免的吧
    runninghack
        50
    runninghack  
       2014-01-14 15:15:45 +08:00
    可以分享一下词库和停词表吗?
    rwx
        51
    rwx  
       2014-01-14 15:20:53 +08:00
    类似首页的「最热节点」一样,放在屏幕的右侧,比如用户数据的下面,做成标签云
    还能防止某个主题标签过多把样式撑破
    sobigfish
        52
    sobigfish  
       2014-01-14 15:24:48 +08:00
    会提供关注某些tag的功能么?
    /tag/iOS
    isaced
        53
    isaced  
       2014-01-14 15:31:38 +08:00
    赞同27楼的换个位置~
    xdata
        54
    xdata  
       2014-01-14 16:24:41 +08:00
    标签能显示与该标签相关联的标签,按数量或拼写排序,并多重过滤么?
    mimzy
        55
    mimzy  
       2014-01-14 16:43:35 +08:00
    没有回复的主题标签样式不太一样:


    mopig
        56
    mopig  
       2014-01-14 17:24:53 +08:00
    分词有硬伤啊~

    xiaojay
        57
    xiaojay  
       2014-01-14 17:38:08 +08:00 via iPhone
    期待根据tag来block
    sobigfish
        58
    sobigfish  
       2014-01-14 17:38:45 +08:00
    http://www.v2ex.com/tag/Mavericks

    @Livid tag里面的帖子排序有点奇怪
    Seita
        59
    Seita  
       2014-01-14 17:46:06 +08:00
    tag 页 不分页?
    xiaoyustudio
        60
    xiaoyustudio  
       2014-01-14 19:43:06 +08:00
    传完图发现跟 27 楼想到一块去了...
    Perry
        61
    Perry  
       2014-01-14 19:49:51 +08:00
    我不得不说这个功能真的好给力!
    Tianpu
        62
    Tianpu  
       2014-01-14 21:52:42 +08:00
    觉得自动分的标签一点不好 还不如不分 虽然没有更好的思路

    相信用户 让用户自己输入标签呢?
    geeklian
        63
    geeklian  
       2014-01-14 21:55:16 +08:00
    建议取消二手市场的tag...
    我关注ipad,关注kindle,结果看到的都是二手的...
    faceair
        64
    faceair  
       2014-01-14 21:55:29 +08:00
    jiangrongyong
        65
    jiangrongyong  
       2014-01-15 00:32:15 +08:00
    根据之前的理解,Topic和Tag应该是多对一的关系吧?现在是多对多么?
    caomu
        66
    caomu  
       2014-01-15 00:35:32 +08:00
    关于用户来打标签,可以扣财富值来打。
    具体点,lz可以花100铜换掉一个已有的tag。然后,自动生成tag时,如果算出的关联度不高,就不要默认3个了(有时候就会出现不太对应的),这时候,如果tag没有满,那么其他会员可以用500铜打上个新tag。
    ong
        67
    ong  
       2014-01-15 01:47:13 +08:00
    非常酷!Great Job!
    xdata
        68
    xdata  
       2014-01-15 18:10:36 +08:00
    话说 macbook air 与 ipad air 都被打上了air ...
    ling0322
        69
    ling0322  
       2014-01-18 09:09:13 +08:00 via Android
    @Livid 有没有想过用主题模型,这个感觉效果要比关键字好呢
    Reset
        70
    Reset  
       2014-01-19 16:41:47 +08:00
    @Livid
    发现 如果访问不存在的标签会抛出异常
    比如 /tag/手机
    blakefan
        71
    blakefan  
       2014-03-04 10:46:38 +08:00
    这个功能主要就为新手设置的,觉得很好!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3056 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 13:18 · PVG 21:18 · LAX 05:18 · JFK 08:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.