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

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

Скажем, у вас есть дерево релевантных данных, подобное этому:

  • IDEs
    • Visual Studio
      • Visual Studio 2008
      • Визуальная студия 2010
    • Затмение

Затем у меня есть объект, содержащий ссылку на «Visual Studio 2010».

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

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

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

Можно ли сделать его двусторонним? С точками как вверх по дереву, так и вниз по дереву.

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


person Seb Nilsson    schedule 26.05.2011    source источник


Ответы (1)


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

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

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

person dfb    schedule 26.05.2011
comment
Вопрос был волнистым и общим, так что не за что извиняться :P - person Seb Nilsson; 26.05.2011