J'essaie de générer un modèle intelligent qui peut analyser un ensemble de mots ou de chaînes et les classer en tant que noms, numéros mobiles, adresses, villes, États, pays et autres entités à l'aide de l'apprentissage automatique ou de l'apprentissage profond.
J'avais cherché des approches, mais malheureusement je n'ai trouvé aucune approche à adopter. J'avais essayé avec le modèle de sac de mots et l'intégration de mot de gant pour prédire si une chaîne est un nom ou une ville, etc.
Mais, je n'ai pas réussi avec le modèle de sac de mots et avec GloVe il y a beaucoup de noms qui ne sont pas couverts dans l'exemple d'intégration: - Lauren est présent dans Glove et Laurena n'est pas
J'ai trouvé ce post ici , qui avait une réponse raisonnable, mais je ne pouvais pas utiliser l'approche utilisée pour résoudre ce problème, à part le fait que la PNL et la SVM étaient utilisées pour le résoudre.
Toutes les suggestions sont appréciées
Merci et salutations, Sai Charan Adurthi.
la source
Réponses:
Vous pouvez appliquer des grammes de caractères - Intuitivement, il pourrait y avoir une énorme différence dans le jeu de caractères entre un numéro de téléphone et une adresse e-mail. puis passez le vecteur gramme de caractères à SVM pour faire une prédiction. Vous pouvez l'implémenter à l'aide de sklearn à l'aide des extracteurs de fonctionnalités ci-dessous.
TfIdfVectorizer (analyseur = 'caractère')
CountVectorizer (analyseur = 'caractère')
Validation croisée sur la plage de ngrammes et les variables de relâchement de SVM pour affiner votre modèle.
la source
L'application d'étiquettes catégorielles communes aux mots est généralement appelée reconnaissance d'entité nommée (NER) .
NER peut être effectué par des règles statiques (par exemple, des expressions régulières) ou des règles apprises (par exemple, des arbres de décision). Ces règles sont souvent fragiles et ne se généralisent pas. Les champs aléatoires conditionnels (CRF) sont souvent une meilleure solution car ils sont capables de modéliser les états latents des langues. Les performances de pointe actuelles dans NER sont réalisées avec une combinaison de modèles d'apprentissage en profondeur .
Le Stanford Named Entity Recognizer et spaCy sont des packages pour effectuer le NER.
la source