关于 V2EX 新的自动打标签功能 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Livid
74.2D
457.95D
V2EX    Project Babel

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

  •  1
     
  •   Livid
    PRO
    2014-01-14 10:12:11 +08:00 16086 次点击
    这是一个创建于 4287 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在在 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
    PRO
       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
    PRO
       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
    PRO
       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
    PRO
       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
    PRO
       2014-01-14 10:23:05 +08:00
    @est 这个是可以根据目前的数据算出来的:

    Member -> Topics -> Tags

    接下来会有这个功能:根据每个人发的帖子生成的标签云。
    Livid
        14
    Livid  
    MOD
    OP
    PRO
       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
    PRO
       2014-01-14 10:32:23 +08:00
    @westy 从逻辑上来说确实有点问题。但是放到第一个卡片里的任何位置都别扭…
    qiayue
        17
    qiayue  
    PRO
       2014-01-14 10:36:41 +08:00
    发现一个小 BUG ,重复标签
    /t/96719 两次“框架”
    Livid
        18
    Livid  
    MOD
    OP
    PRO
       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
    PRO
       2014-01-14 10:45:36 +08:00
    @botao1
    @mkeith 请相信设计师的直觉。:-)
    hzlzh
        23
    hzlzh  
    PRO
       2014-01-14 10:48:32 +08:00
    @Livid 墙裂的需要大小写规范化单词
    nemoliu
        24
    nemoliu  
       2014-01-14 10:49:26 +08:00
    能介绍一下计算的过程么?对标题分词然后根据tf-idf做关键词提取?
    Livid
        25
    Livid  
    MOD
    OP
    PRO
       2014-01-14 10:50:25 +08:00
    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
    PRO
       2014-01-14 11:37:46 +08:00
    @dorentus 对,在一个主题刚发布的前 300 秒,那里会有 MOVE 和 EDIT 按钮。1800 秒之后,会有 APPEND 按钮。
    Livid
        37
    Livid  
    MOD
    OP
    PRO
       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
    类似首页的「最热节点」一样,放在屏幕的右侧,比如用户数据的下面,做成标签云
    还能防止某个主题标签过多把样式撑破
    run2
        52
    run2  
       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
    run2
        58
    run2  
       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
    t/97011#reply4

    快人么。。
    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     Solana     891 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 20:55 PVG 04:55 LAX 13:55 JFK 16:55
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86