【问题标题】:Computer Science taxonomy计算机科学分类
【发布时间】:2010-06-07 11:07:26
【问题描述】:

我正在开发用户收集标签的网络应用程序。我需要根据用户标签的相似性为用户创建一个建议列表。
例如,当用户登录系统时,系统会获取他的标签并在用户数据库中搜索这些标签,并显示具有相似标签的用户。例如,如果 User 1 具有以下标签 [Linux、Apache、MySQL、PHP] 并且 User 2 具有 [ Windows、IIS、PHP、MySQL] 它说 User 2 匹配 User 1 的权重为 50% ,因为他有 2 个相似的标签(PHPMySQL)。
但想象一下用户 1 拥有 [ASP、IIS、MS Access] 而用户 2 拥有 [PHP、Apache、MySQL]。在这种情况下,我的系统不会向 User 1 建议 User 2 作为“朋友”,反之亦然。但我们知道这两个用户在工作领域有相似之处,都从事 Web 技术(或 Web 编程等)。
所以,这就是为什么我需要对这些概念进行分类的计算机科学分类法(现在,但可能我还需要其他领域的分类法,如医学、物理学、数学等),这样当我搜索ASPPHP 的相似性,例如可以说它们具有相似性并且属于一个组(或类别)。
我希望我清楚地描述了我的问题,但如果有错误的解释会很高兴您的更正。
谢谢

【问题讨论】:

  • 为什么这个话题被标记出来了?
  • 也许计算机科学不是这里的相关术语。

标签: computer-science taxonomy similarity ontology


【解决方案1】:

我认为您实际上需要分类法。有了足够的数据,你应该可以在字段上做cluster analysis 并推断标签之间的关系。有关详细信息,请参阅this paper on automated tag clustering。如果您认为基于标签的标签聚类和分析无法让您随心所欲,请查看 Flickr。

或者,如果您确实认为需要分类,请考虑使用 SKOS。如果您可以将您的标签映射到 SKOS,那么您可以对它们执行这种分析。您可能会发现特别有用的两个 SKOS 数据来源是 Library of Congress Subject HeadingsDbPedia。如果您对使用 SKOS 有更多疑问,请尝试SemanticOverflow

【讨论】:

    【解决方案2】:

    如果这些术语出现在论坛或类似内容中,您可以使用Latent Semantic Analysis 构建术语集群。

    【讨论】:

      【解决方案3】:

      使用谷歌集生成一些?获得比这更大的数据集更难:

      http://labs.google.com/sets

      【讨论】:

      • 我不知道这个工具对我有什么帮助,但你知道任何 API 来使用这个工具吗?而且,这个工具对我有什么好处?
      • 没有官方的 api,但有一些 3rd 方的人一起破解(尝试谷歌搜索)。无论如何,它们不必特别可靠,因为您只需要进行一些查询并将结果放入数据库中。如果您阅读了该工具的说明,您会发现它完全符合您的要求 - 从几个相似的词中推断以找到更大的相似词组。
      【解决方案4】:

      您需要在标签之间创建关系。我不相信这可以自动完成。 你必须创建一个数据库,上面写着 sql=mysql=postgresql=oracle, asp=jsp=php 等等。 这样你就可以创建某种标签组。标签肯定可以有多种关系。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-07-07
        • 2013-01-29
        • 1970-01-01
        • 1970-01-01
        • 2011-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多