Алгоритм релевантности / соответствия дерева значений
Есть ли название шаблона / алгоритма для того, что я пытаюсь описать ниже?...
Допустим, у вас есть дерево релевантных данных, например:
- Иды
- Visual Studio
- Visual Studio 2008
- Visual Studio 2010
- Затмение
Тогда у меня есть объект, который содержит ссылку на "Visual Studio 2010".
Затем я выполняю поиск релевантности для "Visual Studio" по этому объекту и хочу узнать, насколько релевантно это соответствие.
Это лучше всего сделать при построении дерева с установкой определенного значения между узлами по отдельности, или я могу / должен ли я установить, например, что один уровень на расстоянии 10 пунктов, два уровня на 5 пунктов и так далее?
Несколько узлов потенциально могут быть связаны с несколькими другими узлами. Или это плохая идея? Visual Studio также является "программным обеспечением Microsoft" и так далее.
Может ли это быть сделано в 2-х направлениях? С точками вверх и вниз по дереву.
Это мои первые мысли к тестированию вокруг и созданию своего рода релевантного движка. Пожалуйста, помогите мне взять меня на какую-то трассу.
1 ответ
Это большая банка червей, так что прости меня, если это рука волнистая и общая. Есть все виды отношений, которые вы можете встроить в эту структуру данных. В настоящее время у вас есть таксономия отношений. Вы также упомянули другую категорию "программного обеспечения Microsoft", которая будет пересекать вашу таксономию. После этого вы могли бы вступить в отношения, и так далее, и так далее.
В целом, вы говорите об онтологии. Несмотря на то, что было проведено много исследований о том, как их следует структурировать и искать, я не знаю ни одного крупного проекта, который бы программно создавал богатую онтологию, и даже если у вас есть специалисты, которые строят онтологию вручную, это не всегда понятно. как взвесить вещи для "двигателя релевантности". Я не на переднем крае этого, но большинство методов поиска информации, которые работают лучше всего, являются статистическими, которые работают с простыми структурами, а не с моделями данных с богатой структурой.
Я думаю, что вы на правильном пути. Мой совет - делайте это как можно проще. Я бы структурировал иерархию как общий граф и основывал релевантность на расстоянии графа, при необходимости ставя вес на каждое ребро. Двунаправленность здесь также хороша, поэтому вы можете наказывать за обобщение / уточнение по мере необходимости. Здесь нет настоящего подхода к кулинарной книге, вам придется экспериментировать