有效地更新余弦相似度得分

时间:2010-09-14 09:19:28

标签: iphone sqlite similarity

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

  • items(id,name,...) - >此表包含50条记录
  • 标签(id,name) - >此表包含50条记录
  • item_tags(id,item_id,tag_id,user_id)
  • 相似之处(id,item1_id,item2_id,得分)

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

用户可以向项目添加其他标记,并在以后删除其自定义标记。每当发生这种情况时,应在本地更新项目之间的相似性得分,即不联系服务器应用程序。

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

谢谢!

1 个答案:

答案 0 :(得分:1)

相关问题