Iphone 有效更新余弦相似性分数

Iphone 有效更新余弦相似性分数,iphone,sqlite,similarity,Iphone,Sqlite,Similarity,我的iPhone应用程序正在使用具有以下架构的SQLite数据库: 项(id、名称等)->此表包含50条记录 标记(id、名称)->此表包含50条记录 项目标签(id、项目id、标签id、用户id) 相似性(id、第1项id、第2项id、分数) 项目、标记、项目_标记和相似性表由预定义的记录填充,因此不同项目之间的相似性也已离线计算(使用基于项目标记的余弦相似性算法) 用户可以向项目添加其他标记,并在以后删除其自定义标记。每当发生这种情况时,项目之间的相似性分数应在本地更新,即不联系服务器应

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

  • 项(id、名称等)->此表包含50条记录
  • 标记(id、名称)->此表包含50条记录
  • 项目标签(id、项目id、标签id、用户id)
  • 相似性(id、第1项id、第2项id、分数)
项目、标记、项目_标记和相似性表由预定义的记录填充,因此不同项目之间的相似性也已离线计算(使用基于项目标记的余弦相似性算法)

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

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


谢谢

此演示可能会帮助您: