Alguém poderia recomendar uma boa medida de similaridade para objetos que possuem várias classes, onde cada classe faz parte de uma hierarquia?
Por exemplo, digamos que as classes se pareçam com:
1 Produce
1.1 Eggs
1.1.1 Duck eggs
1.1.2 Chicken eggs
1.2 Milk
1.2.1 Cow milk
1.2.2 Goat milk
2 Baked goods
2.1 Cakes
2.1.1 Cheesecake
2.1.2 Chocolate
Um objeto pode ser marcado com itens acima em qualquer nível, por exemplo:
Omelette: eggs, milk (1.1, 1.2)
Duck egg omelette: duck eggs, milk (1.1.1, 1.2)
Goat milk chocolate cheesecake: goat milk, cheesecake, chocolate (1.2.2, 2.1.1, 2.1.2)
Beef: produce (1)
Se as classes não fizessem parte de uma hierarquia, provavelmente examinaria a semelhança de cosseno (ou equivalente) entre as classes atribuídas a um objeto, mas gostaria de usar o fato de que diferentes classes com os mesmos pais também têm algum valor de semelhança (por exemplo, no exemplo acima, a carne bovina tem uma pequena semelhança com a omelete, pois ambos têm itens da classe '1 product').
Se ajudar, a hierarquia possui ~ 200k classes, com uma profundidade máxima de 5.
fonte