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 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了