6
votes

Définir le contexte d'un mot - python

Je pense que c'est une question intéressante, du moins pour moi.


J'ai une liste de mots , disons:

Photo, Gratuit, Recherche, Image, CSS3, CSS, Tutorials, WebDesign, Tutoriel, Google, Chine, Censure, Politique, Internet

Et j'ai une liste de contextes :

  • Programmation
  • Nouvelles du monde
  • Technologie
  • Design Web

    Je dois essayer de faire correspondre des mots avec le contexte / contextes appropriés si possible.

    peut-être découvrir des relations de mots d'une manière ou d'une autre.

    text alt


    Des idées?

    aide serait très apprécié!


4 commentaires

Je ne pense pas que la solution est prête à ce sujet. Peut-être que des algorithmes d'apprentissage de la machine?


S'il vous plaît essayez de mieux encadrer le problème. Par exemple: a) sont les mots dans la "liste des mots" [a priori] complètement indépendant ou pouvons-nous en déduire leur "contexte" des mots voisins. b) La liste des contextes prédéfinies est-elle prédéfinie ou si l'algorithme découvrir ces c) peut-il appartenir à des contextes multiples d) Comment cela est-il lié au mot-arbre centré sur l'image "Discours" ...


@Radiantthex: Au vu des quelques réponses jusqu'à présent, vous pouvez voir pourquoi j'ai suggéré de mieux encadrer le problème ... Les questions vagues engendrent des réponses vagues!


@MJV: Vous avez raison, si j'ai encadré la question mieux, j'aurais eu des réponses plus utiles. La raison pour laquelle je n'étais pas assez précise, c'est que je ne suis pas tout à fait sûr si ou que pourrait-on faire.


4 Réponses :


3
votes

Cela ressemble à ce que c'est plus un problème de catégorisation / d'ontologie que NLP. Essayez WordNet pour une ontologie standard.

Je ne vois pas de véritable NLP dans votre problème indiqué, mais si vous avez besoin d'une analyse sémantique ou d'un analyseur, essayez NLTK .


0 commentaires

2
votes

Où vient ces mots? Viennent-ils de textes réels. S'ils sont alors il s'agit d'un problème d'exploration de données classique. Ce que vous devez faire, c'est à votre ensemble de documents dans la matrice où des lignes représentent quel document le mot provenait et les colonnes représentent les mots dans les documents.

Par exemple, si vous avez deux documents comme celui-ci:

D1: Besoin de trouver un sens. D2: Nécessité de séparer les pommes de oranges

Votre matrice ressemblera à ceci: xxx

Ceci est appelé terme par la matrice de document

Après avoir collecté ces statistiques, vous pouvez utiliser des algorithmes tels que k-signifie pour grouper des documents similaires ensemble . Depuis que vous savez déjà combien de concepts vous avez vos tâches devraient être trop simples. K-Moyens est un algorithme très lent, vous pouvez donc essayer de l'optimiser à l'aide de techniques telles que SVD


0 commentaires

2
votes

Je viens de trouver cela il y a quelques jours: ConceptNet

C'est une ontologie de la communication, il peut donc ne pas être aussi précis que possible, mais il a une API Python et vous pouvez télécharger toute leur base de données (actuellement sur 1 Go décompressée). Il suffit de garder à l'esprit leur restrictions de licence .

Si vous lisez Les papiers publiés par l'équipe qui le développait, vous peut obtenir des idées sur la manière de relier vos mots aux concepts / contextes.


0 commentaires

1
votes

La réponse à votre question dépend évidemment de la taxonomie cible que vous essayez de mapper vos conditions. Une fois que vous avez décidé de savoir cela, vous devez déterminer à quel point les concepts devraient être fins. WordNet, comme il a été suggéré dans d'autres réponses, vous donnera des synchysées, c'est-à-dire des ensembles de termes plus ou moins synonymes, mais que vous devrez cartographier des concepts tels que "Web Design" ou "Nouvelles du monde" par un autre mécanisme depuis Ceux-ci ne sont pas codés dans WordNet. Si vous visez une très large catégorisation sémantique, vous pouvez utiliser les noeuds de concept de niveau supérieur de Wordnet qui différencient, par exemple. (montée sur la hiérarchie) humaine de l'animal, animé de plantes, substances de solides, béton de choses abstraites, etc.

Un autre type de taxonomie qui peut être très utile pour vous est le système de catégorie Wikipedia. Ce n'est pas seulement une idée spontanée que je viens de créer, mais il y a eu Beaucoup de travail sur dériver de véritables ontologies des catégories de Wikipedia. Jetez un coup d'œil au Java Wikipedia Library - L'idée serait de trouver Un article de Wikipedia pour le terme en question (par exemple, «CSS3»), extrait les catégories que cet article appartient et choisissez les meilleures en ce qui concerne certains critères (c.-à-d. «Programmation», «technologie» et «développement Web») . Selon ce que vous essayez de faire cette dernière étape (choisir le meilleur de plusieurs catégories données) peut ou non être difficile.

voir ici pour une liste d'autres ontologies / connaissances bases que vous pouvez utiliser.


1 commentaires

@ferdy oh mon dieu !! J'ai eu l'idée d'utiliser Google API pour rechercher des articles sur Wikipedia connexes hier soir, car les mots clés tels que «CSS3» peuvent donner des problèmes. Je pense que je pourrais aller avec votre suggestion, merci pour la réponse très informative!