问题标签 [recommendation-engine]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2764 浏览

recommendation-engine - 了解皮尔逊相关系数

作为生成Pearson 相关系数的计算的一部分,执行以下计算:

在此处输入图像描述

在第二个公式中:p_a,i是用户 a 会给项目的预测评分in是被比较的相似用户的数量,并且是用户ru,i对项目的评分。 iu

u如果用户没有评价这个项目,将使用什么值?我在这里误会了什么吗?

0 投票
3 回答
20934 浏览

php - 如何实施推荐系统?

我有集体智慧书,但我不确定它如何在实际中应用。

假设我有一个带有 mySQL 数据库的 PHP 网站。用户可以在数据库中插入带有标题和内容的文章。为了简单起见,我们只比较标题。

  • 如何咖啡
  • 关于咖啡的 15 件事。
  • 大问题。
  • 如何削铅笔?
  • 被球击中的家伙

我们打开“如何制作咖啡?” 文章,并且由于与第二和第四个标题的单词相似,它们将显示在相关文章部分。

如何使用 PHP 和 mySQL 来实现它?如果我必须使用 Python 也没关系。提前致谢。

0 投票
4 回答
1821 浏览

web-services - 从 twitter 获得稳定的消息流

我想尝试制作一个简单的 twitter 客户端,它可以了解我的品味并自动找到朋友和有趣的推文,为我提供相关信息。

开始之前,我需要获得大量随机 Twitter 消息,这样我就可以在它们上测试一些机器学习算法。

我应该为此使用哪些 API 方法?我是否必须定期轮询以获取消息,或者有没有办法让 Twitter 在消息发布时推送消息?

我也有兴趣了解任何类似的项目。

0 投票
2 回答
61 浏览

asp.net-mvc - ASP.NET MVC 控件

任何人都可以推荐一个在每一行上都有复选框的组合框/下拉列表控件吗?它还需要支持多选。

谢谢。

0 投票
1 回答
186 浏览

artificial-intelligence - 向用户组推荐商品的最有效算法是什么?

使用协同过滤通常适用于给单个用户评分,但是当需要向多人推荐一个或多个项目时(例如:想看电影或想一起选择假期的朋友),这些算法将如何变化?

0 投票
3 回答
2050 浏览

php - (穷人)产品推荐实施

我正在尝试为在线商店建立一个穷人的推荐系统。我想实现这种亚马逊“购买此商品的客户也购买了”功能,我读了很多关于它的内容。我知道有 Apache Mahout 的东西,但我无法以这种方式调整服务器。然后会有谷歌预测 API,但它要花钱,所以我开始自己试验。

我有一个包含 250.000 多个项目的订单历史记录,我编写了一个嵌套的 MySQL 查询来查找包含当前文章的订单,对其他订单项目进行排名并对表进行排序以进行排名,所以我得到了一组其他人订购的产品以及当前文章。

问题是,查询可能需要 10 秒 - 所以不能直接使用。我想到了一个缓存表,但这个查询在 20 分钟后停止(有 60.000 个产品和 250.000 个订购项目)所以我无法填写该表。

我当前的解决方法如下:推荐 HTML 是通过 AJAX ondocumentready 加载的,因此会加载网站,而推荐会在后台加载。推荐数据被处理一次并存储在文件缓存(PEAR 简单缓存)中,因此下次加载速度更快。因此,如果有人访问该站点并存储一天或一周,则按需生成缓存。

我问自己和你,这是一种可以接受的方法,还是愚蠢和无能?将缓存的数据存储在数据库或文件中会更好(我考虑性能和并行命中)。我的意思是,在最坏的情况下,我最终会得到 60.000 个缓存文件。

我更喜欢一个包含所有数据的预先计算的表,但正如我所说,这需要很长时间,而且我不知道如何优化它。(等 SQL Dude 放假回来^^)

感谢您的任何提示,意见。

顺便提一句。这是查询:

编辑:

我考虑了给定的答案,我认为它们与我最初的想法相似。上面的代码结果如下表:

ParentID 是当前项目,ChildID 是过去与 ParentID 一起订购的项目,Rank 是预计算的孩子订购当前项目的频率的计数。现在,我可以在每个新订单上更新或插入相关项目,并计算排名(如果它已经存在于数据库中)。我唯一担心的是,我最终会坐在一张非常大的桌子上。如果我每周离线一次预先计算,也许这应该不是问题?但随后我必须优化查询,以便每个项目不需要 10 秒。

你怎么看?

0 投票
2 回答
359 浏览

php - drupal 模块根据用户行为建议相关内容

类似“阅读这篇文章的用户也阅读了这个:......”

我希望能够根据用户行为建议相关和相关的内容。用户通常都经过身份验证,如果这可能有用的话..

任何脚本、模块、想法?

0 投票
2 回答
133 浏览

algorithm - 根据他的推荐向用户推荐链接

我正在构建一个服务,用户可以提交他推荐/喜欢的链接“列表”(文章,网站......等),系统将向他显示他可能喜欢的其他链接列表。

在我的脑海中执行此过程的唯一想法是:

  1. 用户 A 将提交他的链接列表(例如 10 个链接)
  2. 系统将查找其他用户(比如用户 B)列表,其中用户 A 和用户 B 链接之间的链接有 80% 相同
  3. 向用户 A 显示 20% 的新链接(来自用户 B 列表)

您还有其他方法可以做到这一点吗?或者你有没有做同样事情的开源项目?

任何语言都可以,但我更喜欢 Perl、PHP、Java、SQL

0 投票
1 回答
100 浏览

java - 有谁知道将根据时间间隔操作数据的库?

有谁知道可以根据时间间隔操作/组织数据的库?

例如:

  • 我有一组按日期/时间映射到对象的数据[可以是任何东西,不相关数据的列表、字符串、数字等]
  • 我希望 Collection 足够通用,以便它可以处理间隔搜索、组织、合并、交叉点、差异和间隔更改 [即,该集合将重新组织 15 分钟间隔到 1 天间隔]

我正在考虑写其中一个,但我不想重新发明轮子。

另外,最后一个规定是我希望它使用 Java。

例如:

您有以下数据:

  • 1/1/11 1:01 - “鲍勃进入房间”
  • 1/1/11 12:01 - “杰瑞进入房间”
  • 1/1/11 1:31 - “莎莉进入房间”
  • 1/1/11 1:51 - “豪尔赫进入房间”
  • 1/1/11 2:01 - “呆伯特进入房间”
  • 1/2/11 1:01 - “鲍勃进入房间”
  • 1/3/11 12:01 - “杰瑞进入房间”
  • 1/2/11 1:31 - “莎莉进入房间”
  • 1/2/11 1:51 - “豪尔赫进入房间”

此处所述的所有条目 [作为 2 值数据] 将进入集合 [ie]: add(Date, object) 但是在初始化时将设置间隔。[即15分钟]所以如果间隔是15分钟[并查询特定时间。它会产生:

  • 1/1/11 12:00-12:15
    • “杰瑞进了房间”
  • 1/1/11 1:00-1:15
    - “鲍勃进入房间”
  • 1/1/11 1:15-1:30
  • 1/1/11 1:30-1:45

    • 1/1/11 1:31 - “莎莉进入房间” ....

    如果您尝试查询 1/1/11 12:09,您将获得 1/1/11 12:00-12:15 的结果。是的,我意识到有边缘情况,但这是一个例子。

0 投票
0 回答
451 浏览

c# - 模块化编程以适应未来的变化(用于抓取网站的软件)

我用 C# 开发了一个软件,使用 Windows 窗体来抓取选定的网站以获取图像。

  1. 我遇到的第一个问题是我监控的网站不断地改变它们的外观和感觉,从而使我的代码需要更新。我已经切换到使用 XPaths 来隔离我要查找的 div,但是 div id 也发生了变化。我曾考虑为软件将通过的每个站点使用带有 div xpath 的文本文件,从而节省了我编辑和重新编译代码的时间。有没有更好的方法来解决这个问题?也许 CodeDom ?

  2. 其次,由于每个网站都使用不同的格式和编码,我不得不用 HtmlDocument、HtmlWebResponse、HtmlNodes 等为每个网站重写部分代码,这最终占了我代码的近一半。我无法将它们放在一起,因为有些需要额外的刮擦和分页,有些则不需要。有没有办法简化这个问题?

  3. 最后,我将整个代码放在一个包含大约 600 行代码的类文件中。我拥有的唯一方法是后台工作程序、ui 事件处理程序、每个站点的抓取方法以及保存图像的一种方法。将整个代码放在一个类中可以吗?当我使用 Java 编写代码时,我经常使用多个类并将它们称为对象,这有助于更轻松地更改特定部分。我可以用 C# 做同样的事情吗?

有没有更有效的方法来制作软件?我正在考虑为每个站点创建一个类,以便可以直接对相关类进行修改,但这会导致在每个类中重复很多行。还是可以将整个文件放在一个类文件中?

谢谢。

PS:本软件仅供个人使用,但我认为这是一个学习和应用好的编程的好机会。