标记引擎。存储并绘制标记云。

cs.tags的Python项目详细描述


概述

这个包提供了一个引擎,允许用户为项目分配标记。

云引擎

如果要绘制标记云或检索与标记相关的其他信息,请使用此包。

>>> from cs.tags.clouds import CloudsEngine

云引擎存储每个用户分配给项的标记。标签、用户和项目信息按照模型存储,以加快检索速度。这意味着数据结构将尽可能快地包含预先计算好的标记云,这些标记云是预先准备好要绘制的。

>>> clouds_engine = CloudsEngine()
>>> clouds_engine
<CloudsEngine tags=0>

在请求中,云引擎不包含任何内容:

>>> clouds_engine.getCloud()
([], 0, 0)

每个用户都可以向引擎添加分配给给定项的标记集。对于此建议,update()方法维护项和标记之间以用户为中心的关系:

>>> clouds_engine.update(item=1, user='Nando Quintana', tags=['simple','green','energy'])
>>> clouds_engine.update(item=2, user='Nando Quintana', tags=['complex','energy'])
>>> clouds_engine.update(item=3, user='Erral', tags=['mineral','sources'])
>>> clouds_engine.update(item=3, user='Nando Quintana', tags=['nuclear','power'])

现在,引擎可以根据当前的更新返回标记云信息:

>>> clouds_engine.getCloud()
([('energy', 2), ('complex', 1), ('green', 1), ('mineral', 1), ('nuclear', 1), ('power', 1), ('simple', 1), ('sources', 1)], 9, 8)

getCloud()方法返回这种特殊的数据结构。显示的信息由一个标记列表和两个数字组成。标记列表实际上是一个元组列表,它包含字符串标记和云中的权重。第二个数字表示标记项的数量,第三个数字表示云中标记的数量。

< P>可选地,您可以在标签云中包含最大的标记数量:

>>> clouds_engine.getCloud(n=5)
([('energy', 2), ('complex', 1), ('green', 1), ('mineral', 1), ('nuclear', 1)], 9, 5)

如果要绘制由单个用户发布的标记云,可以告诉getCloud()方法您要用作筛选器的用户:

>>> clouds_engine.getCloud(users='Nando Quintana')
([('energy', 2), ('complex', 1), ('green', 1), ('nuclear', 1), ('power', 1), ('simple', 1)], 7, 6)

您还可以按项目筛选云:

>>> clouds_engine.getCloud(items=3, users='Nando Quintana', n=5)
([('nuclear', 1), ('power', 1)], 2, 2)

或者向引擎询问与单个项目相关的标记云:

>>> clouds_engine.getCloud(items=3, n=5)
([('mineral', 1), ('nuclear', 1), ('power', 1), ('sources', 1)], 4, 4)

内隐知识

您可以从引擎中提取更多信息。例如,可以使用插入到公共项中的标记绘制云线。这样做,您可以从用户标记习惯中构建隐含的知识。

>>> clouds_engine.update(item=4, user='Nando Quintana', tags=['nuclear','power'])
>>> clouds_engine.update(item=5, user='Nando Quintana', tags=['nuclear','flower','power'])
>>> clouds_engine.update(item=5, user='Erral', tags=['black','power'])
>>> clouds_engine.getRelatedTags(tag='power')
([('nuclear', 3)], 3, 1)

从标记行为中可以建立的其他信息是项目之间的关系:

>>> clouds_engine.getRelatedItems(item=3)
([(4, 2), (5, 2)], 4, 2)

因此,在本例中,item3与item4和其他的2在同一个item5中有2标记。

与标记和项的情况一样,您还可以根据标记历史记录发现用户之间的隐式关系:

>>> clouds_engine.getRelatedUsers(user='Erral')
([('Nando Quintana', 1)], 1, 1)

结果表明,ErralNando Quintana有一个共同的标记。

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

推荐PyPI第三方库


热门话题
更改静态检查按钮java上的选择   java空指针验证   java中的链表“object=this”   如何让Java应用程序读取用户时间输入,然后进行转换和计算?   使用Java和Pentaho报表设计器将XML转换为PDF   xml读取。java中带有换行符的属性文件   java正在读一个。将txt文件转换为二维数组列表   java什么是com。mathworks。mde。温。CmdWin在MATLAB中的意思是什么?有关于这个的文件吗?   java是导入com的工具。无法解析viewpagerindicator   Java中的字符串是对象,所以它应该是引用?   带有标题和正文参数的java截击请求   语法如何在Java的方法声明中放置“extends”和“throws”语句?   java如何减少Solr中多值字段的长度   使用Java的SSL服务器/客户端   java Spring引导连接到docker服务mongodb   将值存储在java或javascript中,以便将其传递给另一个JSP   java使用ActionListener添加新元素   java正则表达式问题^[azAZ09]{5,10}$   java获取内部JSON数组值