所以!
我在 PHP 中工作,并且有大量的分类/标签列表,比如大约 100,000 个。
可以在 Zazzle.com 的产品下列出的大量标签中找到类似的标签列表。
我正在尝试根据单词、相似字符串和特异性之间的关系,以编程方式将此列表组织成一个分层菜单。
我玩弄了 levenshtein 函数、similar_text、搜索 sub_str(ings)、使用普林斯顿 WordNet 数据库等,但就是无法破解这个问题。本质上,我正在尝试从这个数据库中构建一个本体,该数据库的层次从非常一般到非常具体。它不一定是完美的,但我已经用完了简单的关键词来搜索以及如何以编程方式进行此操作的想法,但仍然有一些相似的顺序。
例如:如果我使用 sub_str,我可能会以 Dog->Dogma、Dogra 等结尾。
如果我使用 levenshtein 或类似的文本,我最终可能会发现 Bog、Log、Cog 和 Dog 都非常密切相关。
该数据库或分类法(如果您愿意的话)也在不断变化,因此至少部分分析必须即时完成。好消息是只需要提供一个级别的结果。例如,Dog 等查询的邻近结果可能是 small dog、large dog、red dog、blue dog、canine 等。
我知道这是一个可怕的问题,但是有没有人至少知道我应该采取哪些步骤、我可以使用的任何有用的功能、研究查询、方法等?
感谢您的时间。
到目前为止,对于以编程方式将标签组织到本体中,我有两个建议。
查找标签的共同出现以将它们组织成组。我相信这个想法是,如果标签一起出现,它们可能是相关的。
使用算法词干将词的多种形式/派生/词根减少为词干。这应该会减少脚本需要筛选的标签数量......除了可能根据根词干识别相似的标签。