Tengo una colección de más de 1 millón de cuerpos de texto. Dentro de esos cuerpos hay múltiples entidades cuyos nombres imitan palabras vacías y frases comunes.

Esto ha creado problemas al tokenizar los datos, ya que hay ~ 50 entidades con el mismo problema. Para contrarrestar esto, he desactivado la eliminación de las palabras vacías coincidentes antes de su eliminación. Esto está bien, pero lo ideal sería tener una forma de diferenciar cuándo un token está destinado a ser una palabra de parada frente a una entidad, ya que solo me importa cuando se usa como una entidad.

Aquí hay un extracto de muestra:

A determined somebody slept. Prior to this, A could never be comfortable with the idea of responsibility. It was foreign, something heard about through a story passed down by words of U. As slow as it could be, A began to find meaning in the words of a story.

A y U son entidades / sustantivos en la mayoría de sus usos aquí. El etiquetado de POS hasta ahora solo ha etiquetado a A como un determinante, y NER tampoco etiquetará ninguna instancia de la palabra. Agregar las etiquetas de destino a la lista NER dará como resultado que cada instancia se etiquete como una entidad, lo que no es el caso.

Hasta ahora he utilizado principalmente Stanford POS Tagger y SpaCY para NER.

0
Propagating 26 feb. 2021 a las 03:41

1 respuesta

La mejor respuesta

Creo que deberías intentar entrenar tu propio modelo NER.
Puede hacer esto en tres pasos, de la siguiente manera:

  1. etiquete varios documentos en su corpus. Puede hacerlo mediante el spacy-annotator.
  2. entrena tu modelo NER espacioso desde cero. Puede seguir las instrucciones de los documentos espaciales.
  3. Utilice el modelo entrenado para predecir entidades en su corpus.

Al etiquetar una buena cantidad de entidades en el paso 1, el modelo aprenderá a diferenciar entre un determinante y una entidad.

1
iEriii 6 mar. 2021 a las 16:05