Алгоритм релевантности / соответствия дерева значений

Есть ли название шаблона / алгоритма для того, что я пытаюсь описать ниже?...

Допустим, у вас есть дерево релевантных данных, например:

  • Иды
    • Visual Studio
      • Visual Studio 2008
      • Visual Studio 2010
    • Затмение

Тогда у меня есть объект, который содержит ссылку на "Visual Studio 2010".

Затем я выполняю поиск релевантности для "Visual Studio" по этому объекту и хочу узнать, насколько релевантно это соответствие.

Это лучше всего сделать при построении дерева с установкой определенного значения между узлами по отдельности, или я могу / должен ли я установить, например, что один уровень на расстоянии 10 пунктов, два уровня на 5 пунктов и так далее?

Несколько узлов потенциально могут быть связаны с несколькими другими узлами. Или это плохая идея? Visual Studio также является "программным обеспечением Microsoft" и так далее.

Может ли это быть сделано в 2-х направлениях? С точками вверх и вниз по дереву.

Это мои первые мысли к тестированию вокруг и созданию своего рода релевантного движка. Пожалуйста, помогите мне взять меня на какую-то трассу.

1 ответ

Решение

Это большая банка червей, так что прости меня, если это рука волнистая и общая. Есть все виды отношений, которые вы можете встроить в эту структуру данных. В настоящее время у вас есть таксономия отношений. Вы также упомянули другую категорию "программного обеспечения Microsoft", которая будет пересекать вашу таксономию. После этого вы могли бы вступить в отношения, и так далее, и так далее.

В целом, вы говорите об онтологии. Несмотря на то, что было проведено много исследований о том, как их следует структурировать и искать, я не знаю ни одного крупного проекта, который бы программно создавал богатую онтологию, и даже если у вас есть специалисты, которые строят онтологию вручную, это не всегда понятно. как взвесить вещи для "двигателя релевантности". Я не на переднем крае этого, но большинство методов поиска информации, которые работают лучше всего, являются статистическими, которые работают с простыми структурами, а не с моделями данных с богатой структурой.

Я думаю, что вы на правильном пути. Мой совет - делайте это как можно проще. Я бы структурировал иерархию как общий граф и основывал релевантность на расстоянии графа, при необходимости ставя вес на каждое ребро. Двунаправленность здесь также хороша, поэтому вы можете наказывать за обобщение / уточнение по мере необходимости. Здесь нет настоящего подхода к кулинарной книге, вам придется экспериментировать

Другие вопросы по тегам