One of the most populair Ruby on Rails plugins is acts_as_taggable. More specifically the enhanced version acts_as_taggable on steriods. It allows you to easily add tags to any model and helps you generate tag clouds.
After reading Nate Koechley article on Yahoo’s term extractor API i was inspired to connect it to acts_as_taggable_on_steroids. The goal is to parse any peace of content (article, blog post, review etc.) and let Yahoo return a list of terms or tags.
Setting up
The first thing you need to do is install the acts_as_taggable_on_steroids plugin.
Rails 2.*
ruby script/plugin install git://github.com/jviney/acts_as_taggable_on_steroids.git
Rails 3:
rails plugin install git://github.com/jviney/acts_as_taggable_on_steroids.git
Prepare the database
Next we generate and apply the migration:
ruby script/generate acts_as_taggable_migration
rake db:migrate
Define which model you want to use
class Post <ActiveRecord::Base
acts_as_taggable
belongs_to :userend
You can now use the tagging methods provided by acts_as_taggable, #tag_list and #tag_list=. Both these methods work like regular attribute accessors.
p = Post.find(:first)
p.tag_list # []
p.tag_list = “Funny, Silly”
p.save
p.tag_list # ["Funny", "Silly"]
You can also add or remove arrays of tags.
p.tag_list.add(“Great”, “Awful”)
p.tag_list.remove(“Funny”)
Sign up at Yahoo
You need to sign up for an application ID at Yahoo! Web Services. You need the application ID as an identifier when making API call.
Add parse_tags function
I have written a small function that you can place inside your Posts model and use to create the API call for you.
class Post <ActiveRecord::Base
acts_as_taggable
belongs_to :user
defself.parse_tags(context, query)
tags = []
#yahoo parsing of tags
url = URI.parse('http://search.yahooapis.com/ContentAnalysisService/V1/termExtraction')
post_args = {'appid'=>'your application ID',
'context'=> context,
'query'=> query
}
resp, data = Net::HTTP.post_form(url, post_args)
# extract event information
doc = REXML::Document.new(data)
doc.elements.each('ResultSet/Result')do|element|
tags << element.textend
return tags
endend
Context is the text part you would like to scan and query is an optional query to help with the extraction process. (usually a title or subject)
Lets say you have a post model with a body and title column. Now you can do the following:
p = Post.new
p.body = “Italian sculptors and painters of the renaissance favored the Virgin Mary for inspiration.”
p.title = “madonna”
p.tag_list = Post.parse(p.body, p.title)
p.tag_list # “italian sculptors, virgin mary, painters, renaissance, inspiration”
Note: Rate Limit
The Term Extraction service is limited to 5,000 queries per IP address per day.
Sources: Yahoo! Search Web Services, acts_as_taggable on steroids
https://github.com/jviney/acts_as_taggable_on_steroids
分享到:
相关推荐
标题中的“精品软件工具--Automatically generate model files, support JSON an.zip”暗示了一个软件工具,它能够自动地生成模型文件,并且支持JSON格式。这个工具可能是面向开发人员的,特别是那些在编程过程中...
wp-limit-posts-automatically插件就是解决这个问题的,安装后可以设置几种方式来进行截断文章,那样,每次发表文章时,就不用再为文章截断的事情而来回的切换源码格式了,下面就来看看此插件的安装及使用吧!...
在本项目“Laravel开发-pull-automatically-galleries”中,我们主要关注的是使用 Laravel 框架来实现一个自动获取并展示图库的功能。Laravel 是一个基于 PHP 的现代、优雅的 web 开发框架,它提供了丰富的工具和...
在本文中,我们将深入探讨如何使用 Laravel 这一强大的 PHP 框架来实现自动从Web服务抓取并管理图像库的功能,就像标题"laravel开发-pull-automatically-galleries"所示。Laravel 提供了优雅的工具和功能,使得这种...
要查看的文件: (VB: )如何基于某些数据源记录自动生成目录让我们考虑以下情形:我们有一些带有两列的数据源(例如,DataTable)。 第一列包含一些标题,第二列包含一些文本。 要求是将第二列中的文本连接到一个...
标题"Describes a way to automatically generate an application build number"指出,我们要讨论的是关于如何自动生成应用的构建编号。这个编号通常用于标识软件的不同版本,以便跟踪和管理软件的迭代过程。 构建...
基于C51单片机公交车自动报站系统C语言程序
"set-thumbnail-automatically-s" 是一个针对WordPress的插件,其主要功能是自动为帖子设置缩略图,极大地简化了用户的工作流程,特别是对于那些包含多张图片的帖子。 WordPress本身并不提供自动设置缩略图的功能,...
-auto-generate-sql Automatically generate SQL to execute -auto-generate-sql-load-type string Test load type: 'mixed', 'update', 'write', or 'key' (default "mixed") -auto-generate-sql-secondary-...
根据数据库自动生成DAO和DTO,具体方法:解压到D盘根目录,修改property文件的数据库路径,驱动,用户名,密码等,进入CMD到D盘运行java -jar kingdao.jar即在D盘根目录test文件夹下生成DAO和DTO-DAO and the ...
标题 "manning-live-project-automatically-tracking-file-changes-with-python" 暗示这是一个关于使用Python编程语言来实时监控和追踪文件系统中文件变化的项目。这个Manning Live Project可能是针对开发者、数据...
PyCharm 设置代码模板:自动生成文件名、作者、创建日期等信息 PyCharm Setting Code Template: Generating File Name, Author, and Creation Date Information Automatically PyCharm 是一个功能强大且流行的...
在"Automatically-generate-image-AI-master"项目中,我们可以预期找到以下关键文件: 1. `main.py`: 主文件,包含了模型定义、训练循环和结果保存等核心逻辑。 2. `dcgan_model.py`: DCGAN模型的具体实现,包括生成...
自动将产品添加到购物车 您可以将购物车设置为自动包含产品作为礼物。 当任何其他项目添加到空购物车时,产品会自动添加。 要将产品自动添加到购物车: 如果您的购物车使用Ajax,则无法进行此自定义。 如果您使用...
4F 工具包,用于web信息抽取,可以自动生成wrapper-W4F toolkit for web information extraction, you can automatically generate wrapper
acme.sh 会全自动的生成验证文件,并放到网站的根目录,然后自动完成验证。最后会自动删除验证文件。整个过程没有任何副作用。 使用 apache 服务器 如果你用的 apache 服务器,acme.sh 还可以智能地从 apache 的...
简洁:1.数据集采用flickr8k(图像,对应的文本描述),使用keras创建VGG...该项目是对Jason Brownlee的文章《How to Automatically Generate Textual Descriptions for Photographs with Deep Learning》的代码复现。
Il2CppAssemblyUnhollower 从的输出生成 Managed->IL2CPP 代理程序集的工具。 这允许从受管域使用 IL2CPP 域和其中的对象。 这包括泛型类型和方法、数组和新对象创建。 有些东西可能会被严重破坏。用法构建或...
2. Automatically running commands:可以使用 `crontab` 命令来自动执行命令。 3. Remote access:可以使用 `ssh` 命令来远程登录到其他 Linux 机器。 本文档提供了 Linux Shell 自动化运维课后习题答案,涵盖了 ...