qué técnicas de máquina / aprendizaje profundo / nlp se utilizan para clasificar palabras determinadas como nombre, número de teléfono móvil, dirección, correo electrónico, estado, condado, ciudad, etc.

9

Estoy tratando de generar un modelo inteligente que pueda escanear un conjunto de palabras o cadenas y clasificarlas como nombres, números móviles, direcciones, ciudades, estados, países y otras entidades utilizando el aprendizaje automático o el aprendizaje profundo.

Había buscado enfoques, pero desafortunadamente no encontré ningún enfoque. Intenté con el modelo de bolsa de palabras y la incrustación de palabras de guantes para predecir si una cadena es nombre o ciudad, etc.

Pero no tuve éxito con el modelo de bolsa de palabras y con GloVe hay muchos nombres que no están cubiertos en el ejemplo de incrustación: Lauren está presente en Glove y Laurene no

Encontré esta publicación aquí , que tenía una respuesta razonable, pero no pude utilizar el enfoque para resolver ese problema, aparte del hecho de que NLP y SVM se utilizaron para resolverlo.

Cualquier sugerencia es apreciada

Gracias y Saludos, Sai Charan Adurthi.

Sai Charan Adurthi
fuente
44
No es una respuesta, pero esto se llama Reconocimiento de entidad con nombre. Buscar con esos términos puede generar información útil.
kbrose
Gracias @kbrose, estudiaremos las técnicas de reconocimiento de entidades con nombre.
Sai Charan Adurthi

Respuestas:

1

Puede aplicar gramos de caracteres: intuitivamente, puede haber una gran diferencia en el conjunto de caracteres entre un número de teléfono y una dirección de correo electrónico. y luego pasa el vector de gramo de caracteres a SVM para hacer una predicción. Puede implementar esto usando sklearn usando los siguientes extractores de funciones.

  1. TfIdfVectorizer (analizador = 'personaje')

  2. CountVectorizer (analizador = 'personaje')

Valide en forma cruzada el rango de ngram y las variables de holgura de SVM para ajustar su modelo.

karthikbharadwaj
fuente
¡Gracias! @karthikbharadwaj. Actualmente estoy trabajando con R, buscaré en sklearn y veré si funciona ...
Sai Charan Adurthi
@Sai Charan Adurthi - Vota a favor si lo encontraste útil y acepta las respuestas si las encontraste útiles.
karthikbharadwaj
seguro, definitivamente lo haré una vez que lo revise en Python ...
Sai Charan Adurthi
0

La aplicación de etiquetas categóricas comunes a las palabras generalmente se denomina reconocimiento de entidad con nombre (NER) .

NER puede hacerse mediante reglas estáticas (p. Ej., Expresiones regulares) o reglas aprendidas (p. Ej., Árboles de decisión). Estas reglas son a menudo frágiles y no se generalizan. Los campos aleatorios condicionales (CRF) son a menudo una mejor solución porque pueden modelar los estados latentes de los idiomas. El rendimiento actual de vanguardia en NER se realiza con una combinación de modelos de Deep Learning .

El Stanford Named Entidad Reconocedor y SPACY son paquetes para llevar a cabo NER.

Brian Spiering
fuente
Gracias Dr. Brain! .. pero, quiero construir un modelo que tome solo una palabra o una palabra de cadenas y predecir si se trata de un nombre, dirección, etc. Intenté NER usando Apache en R.NLP No tuve éxito en eso. Ese párrafo de palabras necesario para hacer uso de la gramática y las partes del discurso, quiero tener un modelo que incluso pueda entender cosas como códigos postales, códigos postales y códigos de estado. Voy con el enfoque correcto aquí Dr. cerebro?
Sai Charan Adurthi
No debe pensar en tener un solo modelo general. Debe construir un modelo para cada tipo de elemento. Por ejemplo, la mayoría de los códigos postales se pueden encontrar con una expresión regular. También el contexto es el rey, un modelo con una sola palabra hará un mal trabajo prediciendo NER. Es mejor tener grandes secciones de texto.
Brian Spiering
Hola, Dr. Brain, probé con el paquete text2vec para R, usé las incrustaciones de Glove Word para comprobar qué tan similares son las palabras. Ej: Tengo datos de trenes de 1000 filas con categorías como nombre, ciudad, estado, país, etc., datos de prueba con diferentes valores. Utilicé text2vec para construir TCM para ambos valores de datos de prueba y tren, luego ajusté el modelo de guantes a esos TCM y verifiqué la similitud de cada palabra en los datos de prueba para entrenar datos por categoría usando la función de similitud de coseno. Pero no pude lograr una buena precisión e incluso es variable cada vez que genero modelos de guantes y compruebo la similitud.
Sai Charan Adurthi
Gracias, Dr.Brian, funciona si uso oraciones para obtener el contexto y uso NER. Pero, quiero hacerlo solo usando palabras y ver si algún modelo puede aprender patrones de las palabras.
Sai Charan Adurthi
Hola Brain, había usado Apache Open NLP para usar modelos NER pre-entrenados. Y sí, también funciona con palabras.
Sai Charan Adurthi