Cómo manejar dos métodos de extracción de entidades en PNL

Estoy usando dos métodos de extracción de entidades diferentes https: //rasa.com/docs/nlu/entities) mientras construyo mi modelo de PNL en el marco RASA para construir un chatbot. El bot debe manejar diferentes preguntas que tienen entidades personalizadas, así como algunas generales como ubicación u organización. Entonces uso ambos componentes ner_spacy y ner_crf para crear el modelo. Después de eso, construyo un pequeño script de ayuda en Python para evaluar el rendimiento del modelo. Allí noté que la modelo lucha por elegir la enidad correcta.

Por ejemplo, para una palabra 'X' eligió la entidad predefinida 'ORG' de SpaCy, pero debe reconocerse como una entidad personalizada que definí en los datos de entrenamiento.

Si solo uso el extractor ner_crf, me enfrento a grandes problemas para identificar entidades de ubicación como las mayúsculas. También uno de mis mayores problemas son las entidades de respuesta única.

Q: "¿Cuál es tu animal favorito?"

Un perr

Mi modelo no puede extraer esta entidad única 'animal' para esta única respuesta. Si respondo esta pregunta con dos palabras como 'El perro', el modelo no tiene problemas para extraer la entidad animal con el valor 'Perro'.

Así que mi pregunta es, ¿es inteligente usar dos componentes diferentes para extraer entidades? Uno para las entidades personalizadas y el otro para las entidades predefinidas. Si uso dos métodos, ¿cuál es el mecanismo en el modelo que extractor se utiliza?

Por cierto, actualmente solo estoy probando cosas, así que mis muestras de entrenamiento no son tan grandes como deberían ser (menos de 100 ejemplos). ¿Podría resolverse el problema si tengo muchos más ejemplos de capacitación?

Respuestas a la pregunta(1)

Su respuesta a la pregunta