动态生成的建议的内存推荐程序

cold-start-recommender的Python项目详细描述


简单、快速、贪婪的推荐者
==



"它会伸缩吗?"是不是比"这有关系吗?"([david kadavy](http://kadavy.net))

********************************************
nb:我们已经重新编写了推荐程序的一部分。

api已经更改,**webapp**现在是一个单独的包,名为[冷启动推荐程序webapp](https://github.com/elegan)s-io/csrec webapp),可以通过"pip"安装。
您仍然可以使用以下命令访问旧版本:

``bash
pip install cold start recommender==0.3.15
````


卸载软件包:


``bash
>pip uninstall csrec
```





>任何发送到info@elegans.io的评论都将受到感谢。
*********************************************************************************************************************************************************************************************

>我们开发了冷启动推荐程序,因为我们需要一个推荐程序
下面是一个推荐程序,我们开发了冷启动推荐程序,因为我们需要一个推荐程序
是的ng特征:

**greedy.**在没有以前的项目数据或
用户可用的情况下非常有用,因此*必须使用任何*信息
--不仅是用户喜欢的项目,而且--在
图书的情况下--对应的类别、作者等。

**fast.**有关用户和项目的任何信息都应存储起来并立即使用。任何用户的评分都应该提高对该用户以及其他用户的建议。这意味着内存中的数据库没有批量计算。

**ready to use.**看看[冷启动推荐程序webapp](https://github.com/elegans-io/csrec-webapp)来启动一个发布信息并获得推荐的webapp。e用于生产系统,但仅用于
导频,其中统计数据太低,以至于滤波器(例如,共现矩阵上的对数似然
滤波器)过早。它旨在
*收集数据*以便立即个性化用户体验。


dependencies
==


pp](https://github.com/elegans io/csrec webapp)

通常,
如果喜欢项目"a"的用户也喜欢项目"b",则推荐者会
向只喜欢"a"的用户推荐"b"。但是,如果您没有任何用户以前的评分,您就不能提出任何建议。



t_rating是这样做的:

`engine.db.insert_item_action(user_id='user1',item_id='item1',code=4,item_有意义的_info=['author',tags',only_info=true)`

csrec将只注册"user1"喜欢某个作者、某个标记,
,而不是他可能喜欢的"item1"。当通过
网站上的"分析页面"分析用户时,这一点非常重要。如果你问用户是更喜欢"哈利波特"还是"我们天性中更好的天使",而他们中的大多数选择了哈利波特,你就不会想让"哈利波特"这个项目更受欢迎。你可能只想记录下那些用户喜欢以成人文学形式销售的儿童图书。


csrec这样做是因为,除非你是亚马逊或类似的公司brand,
共现矩阵通常太稀疏,无法计算体面的
建议。这样,您就可以开始构建多个密度更高的共现矩阵,并从一开始就使用它们。存储所有可能的信息。您可以决定应该记录哪些关于用户对项目评分的信息。这与前面的
点类似,但您也可以注册项目ID。

一旦插入评分,共现矩阵就会更新。


例如,网站的匿名访问者在登录/注册过程之前喜欢一些项目。注册/登录后,可以协调
信息--与会话ID相关的信息
移动到相应的用户ID条目中。


没问题!csrec将用最受欢迎的项目(这些用户也没有评级)填充列表。


\这样,我们就可以在不到200毫秒的时间内为大约10000个项目的矩阵提供建议。


可插入的字符串或字符串
engine.db.insert_item(item嫒id='item1',attributes={author':'author a',tags':'["nice","good","new"]})


author字段是一个列表,即使它是作为简单字符串传递的:
assert engine.db.items嫒tbl['item1'['author']=['author a']

engine.db.insert_item(item嫒id='item2',attributes={'author':'["author b","author z"],"tags":'["nice","fair"]})
engine.db.插入"item"(item'id='item3',attributes={author':'author b',tags':'["nice","good"]})
engine.db.插入"item"(item'id='item4',attributes={author':'author c',tags':'["new","fashion"]})

MS 1和MS 2以及"作者A"、"B"、"Z"和标记"好"、"好"、"好"和"公平"








engine.db.insert_item_项行为(用户id='user1',item id='item1',code=4,item有意义的信息=['author','tags']]

>engine.db.insert_item_项行为(用户id='user1',item id='item 2',code=5,item有意义的信息=['author','author','tags']]]





<用户1给出了T共有4个点分别指向A作者、B作者和Z作者、B作者和Z作者、4标记好、5标记好、5标记好、9标记好:
assert engine.db.tot_分类用户评级=={'author':{'user1':{'author A':4,'author B':5,'author B':5,'author Z':5,'author Z':5,'author z':5},
'tags':{'user1':{'user1':{'fair':5,'good''good':4,'new':4,'nice''4,'nice':9}}}}}}
<engine.db.insert_item_action(user_id='user2',item_id='item3',code=5,item_有意义的_info=['author',tags'])

\user3喜欢item4,"author c",但我们没有给出有关标记的信息!
engine.db.insert_item_action(user_id='user3',item_id='item4',code=5,item_有意义的_info=['author'])

/>……和user4只浏览分析页,并说她喜欢标记为"new"和"fashion"的书籍
engine.db.insert_item_action(user_id='user4',item_id='item4',code=5,item_有意义的_info=['tags',only_info=true)

e.db.users_ratings_tbl['user1']={'item1':4,'item2':5,'item3':5}

定期保存数据:

`` python
`从上面保存来自引擎的数据
engine.db.serialize('pippo.db')

**v 0.4.2与3不向后兼容**


**v0.4.0与3不向后兼容**

*可以保存用户对用户的操作(请参见dal.py中的"插入社交操作")
*监视用户交互的各种新指标(请参见"获取社交活动ns`in dal.py)
*不再嵌入web服务:使用[csrec webapp](https://github.com/elegans io/csrec webapp)
*todo:根据用户之间相互保存操作的情况,提出"社交"建议
*heavy refactoring
*对备份文件中的数据进行序列化和反序列化
*内存和Mongo的数据抽象层。

**v 0.3.15**


*它现在是一个单一的、改进的性能,与金字塔一起使用时,例如金字塔

**v0.3.14**


*小错误

**v0.3.13**

*添加了self.drop-db

**v0.3.12**


*错误修复

**v 0.3.11**

*添加的一些调试消息

**v 0.3.10**

*类别现在可以是一个列表(或作为json可解析字符串传递)。
这对于现在可以在rest api中传递的标记很重要,例如:

curl-x post"http://127.0.0.1:8081/insertitem?id=boo2&author=theauthor&cathegory=horry&tags=恐怖,恐怖"


*修复了推荐程序api示例文件中的错误

**v 0.3.8**


*同步类别的用户和项目集合在get撸u推荐中

**v0.3.7**

*修复内存中的错误

**v0.3.5**

*添加了日志记录
*添加了用于超级冷启动的集合的创建(甚至没有一个分级,仍然是用户请求推荐…)
*用于推荐的附加信息(如作者等)现在存储在数据库中集合也
*现在总是返回流行的_项,即使在没有评级的情况下也是如此,如果已经进行了一些分析,get_建议最终会调整顺序



。_熊猫:http://pandas.pydata.org

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将MapWritable转换为字符串   java网格与x和y坐标   sql Java不会运行带参数的prepared语句,也不会抛出任何错误   用文本文件追加集合的java   java在安卓中启动服务,在固定时间间隔后读取消息   Java Swing窗口大小与AWT画布结果不匹配   macos运行时。getRuntime()。Java中带有文件重定向的exec()   java json响应迭代安卓 studio/改造   深度优先搜索的java实现   java此方法必须返回布尔类型的结果   java如何解决Android中的NullPointerExpression?   java为什么我的程序中会出现nullPointerException?我怎样才能消除这个错误呢?   java如何将ExecuteService与包含自动关闭资源的自定义线程一起使用   字符串空测试中的安卓错误值(java x kotlin)   JavaSpring/Grails使用新属性重新加载bean   java如何使用HtmlUnit驱动程序对代理进行身份验证?   java整数。解码(字符串s)