Encontrar palavras relacionadas (especificamente os objetos físicos) para uma palavra específica

StackOverflow https://stackoverflow.com/questions/610399

  •  03-07-2019
  •  | 
  •  

Pergunta

Estou tentando encontrar palavras (especificamente os objetos físicos) relacionadas com uma única palavra. Por exemplo:

Tennis : raquete de tênis, bola de tênis, tênis

Snooker : snooker sugestão, bola snooker, giz

Chess : Tabuleiro de xadrez, parte de xadrez

Estante : Livro

Eu tentei usar WordNet, especificamente a relação semântica meronym; no entanto, este método não é consistente como os resultados abaixo mostram:

Tennis : saque, salva, à beira falha, set point, retorno, vantagem

Snooker : nada

Chess : movimento de xadrez, tabuleiro de damas (cuja própria ‘quadrado’ relações meronym expos 'diagonal')

Estante : prateleira

Ponderação dos termos acabará por ser necessário, mas isso não é realmente uma preocupação agora.

Alguém tem alguma sugestão sobre como fazer isso?


Apenas uma atualização:. Acabei usando uma mistura de ambos Jeff e respostas de StompChicken

A qualidade da informação obtida a partir Wikipedia é excelente, especificamente como (sem surpresa) há tanta informação relevante (em comparação com alguns corpora onde termos como 'blog' e 'ipod' não existem).

A gama de resultados de Wikipedia é a melhor parte. O software é capaz de igualar termos tais como (listas de corte por brevidade):

  • golf: [bola, ferro, tee, saco, clube]
  • Fotografia: [câmera, filme, fotografia, arte, imagem]
  • pesca: [peixe, rede, gancho, armadilha, iscas, atração, haste]

O maior problema é classificar certas palavras como artefatos físicos; default WordNet não é um recurso confiável como muitos termos (como 'iPod', e mesmo 'trampolim') não existem na mesma.

Foi útil?

Solução

Eu acho que o que você está pedindo é uma fonte de relações semânticas entre conceitos. Para isso, eu posso pensar em uma série de maneiras de ir:

  1. Semantic semelhança algoritmos . Esses algoritmos normalmente realizar uma caminhada árvore sobre as relações em Wordnet para chegar a uma pontuação de valor real de como relacionadas dois termos são. Estes irão ser limitado por quão bem WordNet modelos os conceitos que você está interessado. WordNet :: similaridade (escrito em Perl) é muito bom.
  2. Tente usar OpenCyc como uma base de conhecimento . OpenCyc é uma versão de código aberto do Cyc, uma grande base de conhecimento de fatos 'mundo real'. Ela deve ter um conjunto muito mais rico de realtionships sematic que WordNet faz. No entanto, eu nunca usei OpenCyc por isso não posso falar com quão completa é, ou quão fácil é para uso.
  3. análise de frequência n-gram . Como mencionado por Jeff Moser. A abordagem orientada a dados que pode 'descobrir' as relações de grandes quantidades de dados, mas muitas vezes pode produzir resultados ruidosos.
  4. análise semântica latente . Uma abordagem orientada a dados semelhante à análise de frequência de n-grama que encontra conjuntos de palavras semanticamente relacionadas.

[...]

A julgar pelo que você diz que você quer fazer, eu acho que as duas últimas opções são mais propensos a ser bem sucedido. Se as relações não estão em Wordnet então semelhança semântica não vai funcionar e não OpenCyc não parece saber muito sobre snooker além do fato de que ele existe.

Eu acho que uma combinação de ambos os n-gramas e LSA (ou algo parecido) seria uma boa ideia. freqüências N-gram encontrará conceitos fortemente ligada ao seu conceito-alvo (por exemplo, bola de tênis) e LSA iria encontrar conceitos relacionados mencionados na mesma frase / documento (por exemplo, net, servir). Além disso, se você está interessado apenas em substantivos, filtrando a sua saída para conter apenas substantivos ou frases nominais (usando um part-of-speech tagger ) pode melhorar os resultados.

Outras dicas

No primeiro caso, você provavelmente está procurando n-gramas onde n = 2. Você pode obtê-los de lugares como Google ou criar o seu próprio a partir de todas Wikipedia .

Para obter mais informações, consulte a este Stack relacionados pergunta estouro .

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