qq_17260701 2017-11-25 05:04 采纳率: 0%
浏览 3172
已结题

千万级文本特征向量互相匹配计算余弦距离带来大量计算量该如何解决

        最近公司有个需求,要求要对2800万客户的地址(短中文文本),从中找出两两地址相似的客户。比如A 客户填写的地址与B客户填写的地址相似,不要求完全想等,就可以认为他们可能存在关系。最后把所有两两有地址相似的客户都导出。这个一个全量的、批量的相似地址的计算。
  现在在做的做法是,通过中文分词,Tf-idf 把地址中文文本转成特征稀疏向量,然后这2800万条向量做笛卡尔积或阶乘式的匹配,进行两两余弦距离计算,满足设定夹角余弦距离阈值才给输出,或写进表里。这样做,对于少量数据可以用,但是千万级数据的笛卡尔积或阶乘式的匹配带来的计算量实在太恐怖了,在spark 上跑,一会就full GC了,或是报数组长度超过java允许的最大长度的错误。
  • 写回答

2条回答 默认 最新

  • ccc123_ok 2017-11-25 12:50
    关注

    这种规模的数举,完全在内存中做是不行的,利用数据库,分几个步骤完成就可以了。

    评论

报告相同问题?

悬赏问题

  • ¥15 Stata 面板数据模型选择
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用