Recherche de mots associés (objets physiques en particulier) à un mot spécifique

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

  •  03-07-2019
  •  | 
  •  

Question

J'essaie de trouver des mots (en particulier des objets physiques) liés à un seul mot. Par exemple:

Tennis : raquette de tennis, balle de tennis, chaussure de tennis

Snooker : queue de snooker, boule de snooker, craie

Échecs : échiquier, pièce d’échecs

Bibliothèque : livre

J'ai essayé d'utiliser WordNet, en particulier la relation sémantique méronyme; Cependant, cette méthode n’est pas cohérente, comme le montrent les résultats ci-dessous:

Tennis : service, volley, faille du pied, point de consigne, retour, avantage

Snooker : rien

Échecs : déplacement d'échecs, en damier (dont les relations de méronymat indiquent "carré" # 8217; & amp; 'diagonale')

.

Bibliothèque : rangez

Il faudra éventuellement pondérer les termes, mais ce n’est pas vraiment une préoccupation pour le moment.

Quelqu'un a des suggestions sur la façon de procéder?

Juste une mise à jour: nous avons fini par utiliser un mélange de réponses de Jeff et de StompChicken.

La qualité des informations récupérées sur Wikipédia est excellente, notamment en ce qui concerne (sans surprise) la quantité d’informations pertinentes (par rapport à certains corpus où les termes tels que "blog" et "ipod" n'existent pas).

La gamme des résultats de Wikipedia est la meilleure partie. Le logiciel est capable d’apparier des termes tels que (listes coupées par souci de brièveté):

  • golf: [balle, fer à repasser, tee-shirt, sac, club]
  • photographie: [appareil photo, film, photographie, art, image]
  • pêche: [poisson, filet, hameçon, piège, appât, leurre, canne]

Le plus gros problème est de classer certains mots comme des artefacts physiques; WordNet par défaut n'est pas une ressource fiable, car de nombreux termes (tels que "ipod" et même "trampoline") n'y figurent pas.

Était-ce utile?

La solution

Je pense que ce que vous demandez est une source de relations sémantiques entre les concepts. Pour cela, je peux penser à un certain nombre de solutions:

  1. Algorithmes de similarité sémantique . Ces algorithmes effectuent généralement une analyse arborescente des relations dans Wordnet pour obtenir un score réel de la relation entre deux termes. Celles-ci seront limitées par la capacité de WordNet à modéliser les concepts qui vous intéressent. WordNet :: La similarité (écrite en Perl) est très bonne.
  2. Essayez d’utiliser OpenCyc comme base de connaissances . OpenCyc est une version à source ouverte de Cyc, une très grande base de connaissances sur des faits réels. Il devrait avoir un ensemble de relations sématiques beaucoup plus riche que WordNet. Cependant, je n’ai jamais utilisé OpenCyc, je ne peux donc pas dire à quel point il est complet ou facile à utiliser.
  3. Analyse de fréquence n-gramme . Comme mentionné par Jeff Moser. Une approche basée sur les données qui peut "découvrir" les relations à partir de grandes quantités de données, mais peut souvent produire des résultats bruyants.
  4. Analyse sémantique latente . Une approche basée sur les données, similaire à l’analyse de fréquence à n-grammes, qui trouve des ensembles de mots sémantiquement liés.

[...]

À en juger par ce que vous dites vouloir faire, je pense que les deux dernières options ont plus de chances de réussir. Si les relations ne sont pas dans Wordnet, la similarité sémantique ne fonctionnera pas et OpenCyc ne semble pas en savoir beaucoup sur snook autre que le fait qu'il existe.

Je pense qu'une combinaison des deux n-grammes et LSA (ou quelque chose comme ça) serait une bonne idée. Les fréquences de N-grammes trouveront des concepts étroitement liés à votre concept cible (par exemple, une balle de tennis) et LSA rechercherait des concepts connexes mentionnés dans la même phrase / un même document (par exemple, net, serve). De plus, si vous êtes uniquement intéressé par les noms, filtrez votre sortie pour ne contenir que des noms ou des expressions nominales (en utilisant un étiqueteur de partie du discours ) pourrait améliorer les résultats.

Autres conseils

Dans le premier cas, vous recherchez probablement n-grammes où n = 2. Vous pouvez les obtenir à partir de sites tels que Google ou créer le vôtre à partir de toute la Wikipedia .

Pour plus d'informations, consultez cette pile associée. Question de débordement .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top