【问题标题】:Efficiently updating cosine similarity scores有效更新余弦相似度分数
【发布时间】:2010-09-14 09:19:28
【问题描述】:

我的 iPhone 应用程序正在使用具有以下架构的 SQLite 数据库:

  • items(id, name, ...) -> 此表包含 50 条记录
  • tags(id, name) -> 此表包含 50 条记录
  • item_tags(id, item_id, tag_id, user_id)
  • 相似度(id、item1_id、item2_id、score)

item、tags、item_tags 和相似度表都填充了预定义的记录,因此不同项目之间的相似度也已经离线计算(使用基于项目标签的余弦相似度算法)。

用户可以为项目添加额外的标签,并在以后删除他们的自定义标签。每当发生这种情况时,应在本地更新项目之间的相似度分数,即无需联系服务器应用程序。

我现在的问题如下: 最有效的方法是什么?到目前为止,在 iPhone 应用程序启动时,我为所有项目和标签计算了一个术语文档矩阵(它反映了每个项目的标签频率),并在应用程序运行时将该矩阵保存在内存中。每当添加或删除标签时,我都会使用此矩阵来更新数据库中的相似性。然而,这是相当低效的。你有什么建议吗?

谢谢!

【问题讨论】:

    标签: iphone sqlite similarity


    【解决方案1】:

    【讨论】:

      猜你喜欢
      • 2020-08-12
      • 2011-01-01
      • 2017-12-12
      • 2013-05-24
      • 1970-01-01
      • 2021-12-04
      • 1970-01-01
      • 2022-01-07
      相关资源
      最近更新 更多