奇数标签组织脚本

时间:2012-12-14 01:06:06

标签: php search tags organization ontology

原来如此!

我正在使用PHP工作,并且有大量的分类/标签列表,比如大约100,000个。

类似的标签列表可以在Zazzle.com产品下列出的大量标签中找到。

我试图以编程方式将这个列表组织成一个基于单词,类似字符串和特异性之间关系的分类菜单。

我玩弄了levenshtein函数,similar_text,搜索sub_str(ings),使用普林斯顿WordNet数据库等,并且无法破解这个坚果。从本质上讲,我试图从这个数据库构建一个Ontology,从非常一般到非常具体的层。它不一定是完美的,但是我已经用完了简单的关键短语来搜索和思考如何以程序化的方式去做这件事,但仍然有一些相似的命令。

例如: 如果我使用sub_str,我最终可能会使用Dog-> Dogma,Dogra等。

如果我使用levenshtein或类似的文字,我可能最终将Bog,Log,Cog和Dog都关系密切。

这个数据库或分类法 - 如果你愿意的话 - 也在不断变化,因此至少部分分析必须在运行中完成。好消息是只需要提供一个级别的结果。例如,Dog等查询的近似结果可能是小型犬,大型犬,红狗,蓝狗,犬等。

我知道这是一个可怕的问题,但是,至少我应该采取哪些步骤,我可以使用的任何有用的功能,研究查询,方法等等,是否有人都有一丝光芒?

感谢您的时间。


到目前为止,我有两个建议将标签组织到一个本体中。

  1. 查找标记的共同出现以将其组织到组中。我认为,如果标签一起出现,它们可能是相关的。

  2. 使用算法词干将词的多个形式/派生/词根减少到词干。这应该减少脚本需要筛选的标签数量....除了可能根据根茎识别类似的标签。

1 个答案:

答案 0 :(得分:1)

如果你有整个句子或者至少不只是单个单词,你可能需要查看Latent semantic analysis

不要被数学吓到,一旦你掌握了它背后的基本想法,这很简单:

  • 创建数据的(高维)术语 - 文档矩阵
  • 必要步骤:将巨大的稀疏矩阵转换为较低维度(Singular value decomposition
  • 然后,每个[标签/术语集合]可以由较低维度模型中的矢量指定
  • 这两个向量之间的(余弦)相似性是对标签相似性的一个很好的衡量标准,即使它们可能不是同一个词干(你可能会发现狗和吠叫有关)
  • 对于术语 - 文档矩阵的良好输入至关重要

关于此[和其他IR主题](免费电子书)的精彩读物:Introduction to Information Retrieval
看看这本书,写得非常好,并且在我的IR论文中给了我很多帮助。