我正在开发用户收集标签的 Web 应用程序。我需要根据用户标签的相似性为用户创建一个建议列表。
例如,当用户登录系统时,系统获取他的标签并在用户数据库中搜索这些标签,并显示具有相似标签的用户。例如,如果用户 1有以下标签 [ Linux, Apache, MySQL, PHP ] 并且用户 2有 [ Windows, IIS, PHP, MySQL ] 它表示用户 2匹配用户 1的权重为 50%,因为他有 2 个相似的标签(PHP和MySQL)。
但是想象一下用户 1有 [ASP, IIS, MS Access ] 和User 2有 [ PHP, Apache, MySQL ]。在这种情况下,我的系统不建议用户 2作为用户 1的“朋友”,反之亦然。但是我们知道这两个用户在工作领域有相似之处,都在 Web 技术(或 Web 编程等)工作。
所以,这就是为什么我需要对这些概念进行分类的计算机科学分类法(现在,但可能我还需要其他领域的分类法,如医学、物理学、数学等),这样当我搜索ASP和PHP的相似性,例如,可以说它们具有相似性并且属于一个组(或类别)。
我希望我清楚地描述了我的问题,但如果有错误的解释会很高兴您的更正。
谢谢
问问题
3062 次
4 回答
4
我认为您实际上不需要分类法。有了足够的数据,您应该能够对字段进行聚类分析并推断标签之间的关系。有关一些详细信息,请参阅有关自动标签聚类的这篇论文。如果您不认为基于标签的标签聚类和分析可以让您随心所欲,请查看 Flickr。
或者,如果您确实认为需要分类,请考虑使用 SKOS。如果您可以将您的标签映射到 SKOS,那么您可以对它们执行这种分析。您可能会发现特别有用的两个 SKOS 数据来源是美国国会图书馆主题词和DbPedia。如果您对使用 SKOS 有更多疑问,请尝试SemanticOverflow。
于 2010-06-07T11:21:21.930 回答
2
如果这些术语出现在论坛或类似的地方,您可以使用潜在语义分析来构建术语集群。
于 2010-06-07T11:14:50.550 回答
2
使用谷歌集生成一些?获得比这更大的数据集更难:
于 2010-06-07T11:15:59.430 回答
1
您需要在标签之间创建关系。我不相信这可以自动完成。你必须创建一个数据库,上面写着 sql=mysql=postgresql=oracle, asp=jsp=php 等等。这样你就可以创建某种标签组。标签可以肯定有多种关系。
于 2010-06-07T11:19:11.993 回答