Pergunta

Por exemplo...

Frango é um animal.
Burrito é a Comida.

O WordNet permite que você faça "Is-A" ... o recurso HiEarchy.

No entanto, como sei quando parar de viajar pela árvore? Eu quero um nível.
Isso é consistente.

Por exemplo, se apresentado com várias palavras, quero que o WordNet categorize todos eles, mas em um determinado nível, para que não chegue muito longe. A categorizar "Burrito" como uma "coisa" é muito ampla, mas "comida embrulhada mexicana" é muito específica. Eu quero subir a enigma ou descer ... até o nível certo.

Foi útil?

Solução

O WordNet é um léxico e não uma ontologia, então os 'níveis' não se aplicam.

Sumô, que é uma ontologia superior que se relaciona com o WordNet, se você deseja uma treliça direcionada em vez de uma rede.

Para alguns domínios, a ontologia de nível médio de Sumo é provavelmente onde você quer olhar, mas não tenho certeza de que tenha 'comida mexicana embrulhada', pois a maioria de seus tópicos é científica ou engenharia.

A hierarquia do WordNet é

beef burrito < burrito < dish/2 < victuals < food < substance < entity. 

A entidade é um conceito de nível superior; portanto, se você parar a substância de um abaixo, terá comida de Burrito Isa. Você pode calcular um nível com base nisso, mas não será necessariamente tão consistente quanto o SUMO, ou gerar seu próprio conjunto de conceitos de nível médio úteis para encerrar. Não existe um passo de 'comida embrulhada mexicana' na WordNet.

Outras dicas

[Por favor, credite Pete Kirkham, ele veio pela primeira vez com a referência ao sumô que pode muito bem responder à pergunta feita por Alex, o op

(Estou apenas fornecendo um complemento de informação aqui; comecei em um campo de comentários, mas logo ficou sem espaço e capabilitos de layout ...)

Alex: A maior parte do sumô é ciência ou engenharia? Não contém palavras diárias, como alimentos, pessoas, carros, empregos, etc?
Pete k: O sumô é uma ontologia superior. As ontologias de nível médio (onde você encontraria conceitos entre 'coisa' e 'burrito de carne') listados na página não incluem comida, mas refletem os tipos de organizações que financiam o projeto. Há uma ontologia de nível médio para as pessoas. Há também um para as indústrias (e, portanto, empregos), incluindo fornecedores de alimentos, mas sem menção a burritos se você o grepá.

Meus dois centavos
100% do WordNet (3,0 ou seja, as mais recentes e versões mais antigas) são mapeado para sumô, e que poderia Seja o que Alex precisa. As ontologias de nível médio associadas ao SUMO (ou melhor ao MILO) são efetivamente em domínios específicos e, neste momento, não incluem alimentos, mas como o WordNet o faz (inclua todos-bem, muitas coisas do dia a dia), você faz Não precisa aproveitar qualquer ontologia formal "em sumô", mas usar o mapeamento do WordNet da Sumo (possivelmente além do WordNet, que, novamente, não é uma ontologia, mas com sua "hierarquia" informal e solta também pode ajudar.

Alguma dificuldade pode surgir, no entanto, de duas áreas (e mais algumas ;-)?):

  • O "nível" da Ontologia da Sumo pode não ser o nível que você teria em mente para o seu aplicativo específico. Por exemplo, enquanto "Burrito"traz"Comida", na entidade de nível superior em sumô"Frango"traz bem"Frango"que somente através de uma longa cadeia achados"Animal"(Especificamente: frango-> aves-> pássaro-> warm_blooded_vertebrae-> vertebrae-> animal).
  • A cobertura e os metadados do WordNet são impressionantes, mas com relação aos conceitos de nível médio podem ser um pouco inconsistentes. Por exemplo, "nosso" Hypernym do Burrito é apropriadamente "prato", que fornece cerca de 140 pratos de comida, que incluem genéricos como "sopa" ou "caçarola", bem como "frango marengo" (mas omitindo dizer "frango cacciatore")

Meu argumento, ao trazer essas questões, não é criticar o WordNet ou o SUMO e suas ontologias relacionadas, mas ilustrar simplesmente alguns dos desafios associados à construção de ontologia, particularmente no nível médio.

Independentemente de algumas falhas possíveis e falta de uma solução baseada em SUMO e WordNet, um uso pragmático dessas estruturas pode muito bem "ajustar a conta" (85% das vezes)

Para obter níveis, você precisa predefinar o conteúdo de cada nível. Uma ontologia geralmente os define como os filhos imediatos IS_A de um conceito específico, mas se isso estiver ausente, você precisa desenvolver um método disso.

O próximo passo é colocar uma prioridade em cada conceito, caso você queira apresentar apenas uma categoria para cada palavra. A prioridade pode ser feita de várias maneiras, por exemplo, como a contagem das relações IS_A entre a categoria e a palavra, ou prioridades selecionadas manualmente para cada categoria. Para cada palavra, você pode escolher a categoria com a maior prioridade. Por exemplo, você pode querer que a carne seja "comida" em vez de substância química.

Você também pode escolher algumas palavras, que muda de prioridade se elas estiverem no caminho. Por exemplo, se você deseja alguns produtos químicos que também são alimentos, para serem anunciados como produtos químicos, mas outros ainda devem ser alimentos.

A árvore de hipernym do WordNet termina com um único synset de raiz para a palavra "entidade". Se você estiver usando a biblioteca C da WordNet, poderá obter uma estrutura recursiva para os ancestrais de um Synset usando traceptrs_ds, e você pode obter toda a árvore do Synset seguindo recursivamente nextss e ptrlst ponteiros até você bater null Ponteiros.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top