IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    唯一化词向量

    刘思喆@贝吉塔行星发表于 2016-04-19 00:00:00
    love 0

    最近duoshuo社会化评论崩溃了,上千条评论就这么没了,各种手段恢复无果。 只能怪我太懒,不爱经常做备份。果断将博客评论迅速转移到disqus,希望以后不会有事。

    言归正传,最近和工程师讨论词向量表征商品特征的思路时,遇到一个很有意思的现象:一个商品很可能标记了

    • 维达纸巾
    • 纸巾维达

    这两个特征的意义实际一致,从权重角度考虑,应该做合并处理。工程师给了一个Python版本,我也忍不住给了一个R版本, 大家可以看看使用match索引和duplicated函数的作用。

    txt <- scan(textConnection('
    维达纸巾
    维达
    卫生纸
    纸巾维达
    纸巾
    tempo纸巾抽纸
    纸巾抽纸tempo
    纸巾tempo抽纸
    抽纸
    '), what = 'character')
    
    m <- lapply(iconv(txt, toRaw=T), function(x)paste(sort(as.character(x)), collapse = ''))
    m <- unlist(m)
    z <- match(m, unique(m))
    data.frame(txt, b = txt[!duplicated(m)][z])
    

    思路很简单,将所有的字排序之后,再做raw vectors拼接,如果一样,则认为是同样的表意。最后通过索引返回同样表意的原始词汇。 这段代码百万级别重复词汇是完全可以处理,且性能可靠。



沪ICP备19023445号-2号
友情链接