Question

I love to eat chicken.
Today I went running, swimming and played basketball.

Mon objectif est de revenir ALIMENTS et DES SPORTS juste en analysant ces deux phrases. Comment peux-tu faire ça?

Je connais NLP et WordNet. Mais y a-t-il quelque chose de plus de haut niveau / pratique pratique / moderne ??

Y a-t-il quelque chose qui classe automatiquement les mots pour vous, en "niveaux"?

Plus important encore, quel est le terme technique de ce processus?

Était-ce utile?

La solution

Ce problème est difficile à résoudre de manière procédurale, mais de nombreux progrès ont été réalisés dans la région ces derniers temps.

La plupart du traitement du langage naturel commence par une grammaire (qui peut ou non être sans contexte.) C'est un ensemble de règles de construction indiquant comment les choses plus générales sont faites à partir de plus spécifiques.

Exemple de grammaire sans contexte:

Sentence ::= NounPhrase VerbPhrase
NounPhrase ::= ["The"] [Adjective] Noun
Adjective ::= "big" | "small" | "red" | "green"
Noun ::= "cat" | "man" | "house"
VerbPhrase ::= "fell over"

Ceci est évidemment simplifié, mais la tâche de faire une grammaire complète pour définir tout l'anglais est énorme, et la plupart des systèmes réels ne définissent qu'un sous-ensemble applicable à un domaine de problème.

Une fois qu'une grammaire a été définie (ou appris à l'aide d'algorithmes complexes connus uniquement de Google), une chaîne, appelée "exemplaire" est analysée selon la grammaire. qui marque chaque mot avec les parties de la parole. Une grammaire très complexe n'aurait pas seulement les parties de discours que vous avez apprises à l'école, mais des catégories telles que des "sites Web" "noms de personnes âgées" et "ingrédients".

Ces catégories peuvent être laborieusement intégrées à la grammaire par les humains ou déduites en utilisant des choses comme la modélisation analogique ou les machines vectorielles de support. Dans chacun, des choses comme "poulet", "football", "barbecue" et "cricket" seraient définies comme des points dans un espace de très haut dimension, ainsi que des millions d'autres points, puis les algorithmes de clustering, définiraient des groupes simplement Sur la base des positions de ces points par rapport aux autres. Ensuite, on peut essayer de déduire des noms pour les groupes à partir d'un exemple de texte.

texte de liaisonCette recherche Google répertorie plusieurs techniques utilisées dans la PNL, et vous pourriez en apprendre beaucoup.

Modifier pour résoudre ce problème, on pourrait ramper sur le Web pour les phrases du formulaire "_ est un _"Pour construire une base de données de relations d'élément-catégorie. Ensuite, vous analysez une chaîne comme ci-dessus, et recherchez des mots connus dans la base de données

Autres conseils

SETS Google en fait une partie, et il y en a discussion Cela mentionne les superssets. Cependant, je n'ai pas vraiment vu de détails techniques là-dedans, juste des idées et des discussions.

Peut-être que cela pourrait au moins aider vos recherches ...

La question que vous posez est tout un domaine de recherche appelé Topical Text Catégorisation. Un grand aperçu des techniques est "Machine Learning in Automated Text Catégorisation" dans les enquêtes informatiques ACM, par Fabrizio Sebastiani.. L'une des techniques les plus simples (mais pas nécessairement la plus performante) est d'avoir de nombreux (centaines) d'exemples de phrases dans chaque catégorie, puis de former un classificateur bayésien naïf sur ces phrases d'échantillons. NLTK contient un classificateur bayésien naïf dans le module nltk.classify.naivebayes.

Vous pourriez jeter un œil à Domains WordNet Ressource par des gens de FBK. Il s'agit d'une extension de WordNet qui est conçue pour être utilisée pour la catégorisation de texte et la désambiguïsation du sens des mots. Il permet divers degrés de granularité.

http://wndomains.fbk.eu/

L'une des façons possibles de l'appliquer à votre tâche pourrait être de faire sortir les parties NP de vos phrases, d'obtenir leurs mots de tête et d'obtenir les catégories à partir de domaines WordNet.

Tenqyu Résolu à l'aide de python et d'apprentissage automatique.

  1. Avoir un ensemble de données de texte
  2. Appliquer la vectorisation TF-IDF. Le poids d'un terme qui se produit dans un document est simplement proportionnel
    au terme fréquence. (L'hypothèse Luhn 1957) La spécificité d'un terme peut être quantifiée en fonction inverse du nombre de documents dans lesquels il se produit.
  3. Un modèle d'espace vectoriel
  4. Classification multinomiale des Bayes indigènes

Le processus plus en détail est ici:https://hackernoon.com/how-to-better-classify-coachella-with-machine-learning-start-1-dc84c53d1a9c

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