quelles techniques machine / deep learning / nlp sont utilisées pour classer un mot donné comme nom, numéro de mobile, adresse, email, état, comté, ville, etc.


9

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.


4
Pas une réponse, mais cela s'appelle la reconnaissance d'entité nommée. La recherche avec ces termes peut révéler des informations utiles.
kbrose

Merci @kbrose, examinera les techniques de reconnaissance des entités nommées.
Sai Charan Adurthi

Réponses:


1

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.

  1. TfIdfVectorizer (analyseur = 'caractère')

  2. 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.


Merci! @karthikbharadwaj. Je travaille actuellement en utilisant R, je vais étudier sklearn et voir si cela fonctionne ..
Sai Charan Adurthi

@Sai Charan Adurthi - Veuillez voter si vous l'avez trouvé utile et accepter les réponses si vous les avez trouvées utiles.
karthikbharadwaj

bien sûr, le fera certainement une fois que je le vérifierai en Python ...
Sai Charan Adurthi

0

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.


Merci Dr Brain! .. mais, je veux construire un modèle qui ne prend qu'un seul mot ou un mot de chaînes et prédire si c'est un nom, une adresse, etc. J'avais essayé NER en utilisant openNLP par Apache dans R. Je n'ai pas tout à fait réussi en elle. Ce paragraphe de mots nécessaire pour utiliser la grammaire et des parties du discours, je veux avoir un modèle qui peut même comprendre des choses comme les codes postaux, les codes postaux et les codes d'état. Je vais avec la bonne approche ici Dr brain?
Sai Charan Adurthi

Vous ne devriez pas penser à avoir un seul modèle général. Vous devez créer un modèle pour chaque type d'élément. Par exemple, la plupart des codes postaux peuvent être trouvés avec une expression régulière. Le contexte est également roi, un modèle donné avec un seul mot fera un mauvais travail pour prédire le TNS. Il est préférable d'avoir de grandes sections de texte.
Brian Spiering

Salut, @Dr. Cerveau, j'avais essayé avec le package text2vec pour R, j'avais utilisé les intégrations de Glove Word pour vérifier la similitude des mots. Ex: J'ai des données de train de 1000 lignes avec des catégories comme nom, ville, état, pays, etc., des données de test avec des valeurs différentes. J'ai utilisé text2vec pour construire le TCM pour le train, les valeurs des données de test, puis ajuster le modèle de gant à ces TCM et vérifier la similitude de chaque mot dans les données de test pour former les données par catégorie en utilisant la fonction de similitude cosinus. Mais, je n'ai pas pu atteindre une bonne précision et sa variable même à chaque fois que je génère des modèles de gants et vérifie la similitude.
Sai Charan Adurthi

Merci, Dr.Brian, cela fonctionne si j'utilise des phrases pour obtenir le contexte et utiliser les NER. Mais, je veux le faire uniquement en utilisant des mots et voir si un modèle peut apprendre des modèles à partir des mots.
Sai Charan Adurthi du

Salut cerveau, j'avais utilisé Apache Open NLP pour utiliser des modèles NER pré-formés. Et oui, cela fonctionne aussi sur les mots.
Sai Charan Adurthi
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.