2009-10-27 54 views
2

我想根据用户的搜索在我的网站上找到趋势标签。我没有看到简单解决方案的问题是如何轻松地从搜索字符串中提取重要的术语。例如,许多用户可能会搜索具有不同用途的“视觉工作室”。例如,“visual studio 2010”,“visual studio单元测试”,“visual studio web表单组件”。在这3次搜索中,“视觉工作室”正在趋势中。一个算法怎么会注意到,因为在大多数情况下“视觉工作室”会混杂许多其他词汇?如何从长搜索字符串中找到趋势标签

谢谢!

回答

2
  1. 将每个搜索查询拆分为单个单词的数组。
  2. 计算单词之间的距离(越近越好=>更高的值)
  3. 为所有查询中的每个单词对添加此词的距离。

具有较高值的​​字对是您的“趋势标签”。

+0

听起来很有趣。你会提供更多细节吗?这个想法是将所有的可能性或者只是一个单词与其后的其他单词进行比较,直到数组的最后? – 2009-10-27 17:34:26

+1

我曾经以多对多的方式做到这一点:比较给定字符串中的任何两个单词。一旦你意识到“价格视觉工作室”也使用视觉工作室作为“趋势标签”,这是有道理的。另一方面,你也可以这样做,只关于第一个字到第n个字的关系(这节省了计算时间,但是忽略了“尾随标记”(严重地说,有*必须是更好的术语)串。 – ty812 2009-10-27 18:44:28

1

对此CodePlex项目

http://www.codeplex.com/TheTagCloud

看看包括您可以传递一个HTML文件作为输入,并返回一个标签云的功能。

+0

TheTagCloud似乎基于已知的标签。我认为这个问题试图找出如何最好地从内容构建标签集。 – 2009-10-27 16:22:45

+0

@Stephen该示例仅显示从字符串列表创建。该项目也支持html页面输入。 – 2009-10-27 16:26:10

+0

是的,我已经写了类似TheTagCloud的东西。更难以找到的是如何根据在网站上进行的搜索提取精确的标签。 – 2009-10-27 17:36:28