Ruby on rails 在查找现有标记以从内容中提出建议时充当标记

Ruby on rails 在查找现有标记以从内容中提出建议时充当标记,ruby-on-rails,tags,autosuggest,acts-as-taggable-on,Ruby On Rails,Tags,Autosuggest,Acts As Taggable On,我们正在使用Rails gem上的(brilliant)acts_as_taggable_,允许用户将标签添加到他们编写的内容中(例如博客评论)。我们会在他们键入时自动建议,但也希望识别我们可以根据用户内容建议的标签 因此,如果用户键入“我们真的很喜欢波士顿的水族馆”,并且我们有“波士顿”和“水族馆”的现有标签,我们可能会建议这些标签 我认为这在概念上很简单(迭代单词、检查标记列表、按使用频率排序),但有一些细微差别、性能影响,而且,你知道——总是比看起来更难 对现有代码或示例有什么建议可以帮助

我们正在使用Rails gem上的(brilliant)acts_as_taggable_,允许用户将标签添加到他们编写的内容中(例如博客评论)。我们会在他们键入时自动建议,但也希望识别我们可以根据用户内容建议的标签

因此,如果用户键入“我们真的很喜欢波士顿的水族馆”,并且我们有“波士顿”和“水族馆”的现有标签,我们可能会建议这些标签

我认为这在概念上很简单(迭代单词、检查标记列表、按使用频率排序),但有一些细微差别、性能影响,而且,你知道——总是比看起来更难

对现有代码或示例有什么建议可以帮助我避免重新创建控制盘


谢谢

嗯,我真的不知道该怎么做。。。但我认为你可以使用类似的方法:

  Tag.find(:all, :conditions => { :name => title.split(' ').map(&:downcase) })

谢谢嗯,是的,这是处理主要案件的,而且——和所有RoR一样,它可爱而简单。我认为我们需要一些更复杂的处理,因为我们允许多词标签(“纽约时报”),这对用户来说很好。我们最终可能会走另一条路,根据内容映射标签,但基本思路相同。另一个问题是finder查询会在sqlin子句中为内容的每个单词生成一个条目,这对于像我这样写很多单词的人来说可能会在数据库服务器上遇到困难:-)。仍然希望有人已经这样做了。如果你索引了你的标签数据库,性能就不会有问题了。此外,可以将多单词标记添加到生成所有单词序列的条件数组中。但是这真的很难而且很贪婪。可以肯定的是,性能问题只在规模上存在。我认为,双元和n元问题比这要复杂一些。是的,名称列是索引的,但在我们的例子中,我们讨论的是可能有10K个或更多的唯一标记,内容包含50到500个单词,模式可能是100个--因此假设我们缓存按名称键入的标记,并预处理内容以删除低值单词(停止词),我们。。。好吧,你明白了。这在规模上不是微不足道的,也不是火箭科学——我真的只是希望有人知道一个现存的东西:-)Thx!