Modelos de extracción de entidades para el cuidado de la salud

AutoML Entity Extraction for Healthcare te proporciona un punto de partida para entrenar modelos personalizados de Healthcare Natural Language.

Prepara tus datos de entrenamiento

Para entrenar un modelo AutoML Entity Extraction for Healthcare, proporciona muestras representativas del tipo de texto médico que deseas analizar, anotadas con etiquetas que identifiquen los tipos de entidades que deseas que tengan tu modelo personalizado para identificar. Ten en cuenta las siguientes recomendaciones cuando compiles datos de entrenamiento:

  • Debes proporcionar entre 50 y 100,000 muestras de texto médico para entrenar tu modelo personalizado.
  • Puedes etiquetar el texto médico con una o 100 etiquetas únicas para anotar las entidades que quieres aprenda el modelo para extraer.
  • Cada anotación es un intervalo de texto y una etiqueta asociada.
  • Los nombres de las etiquetas pueden tener entre 2 y 30 caracteres.
  • Cada etiqueta puede anotar entre una y 10 palabras.
  • Para entrenar un modelo de manera eficaz, tu conjunto de datos de entrenamiento debe usar cada etiqueta al menos 200 veces.

Si anotas un tipo de documento estructurado o semiestructurado, como una factura médica o un formulario de consentimiento, AutoML Natural Language puede considerar la posición de una anotación en la página como un factor que contribuye a la asignación de la etiqueta adecuada.

Dar formato a los documentos de entrenamiento

Para formatear documentos de entrenamiento, sube los datos de entrenamiento a AutoML Natural Language como archivos JSONL que contienen el texto de muestra y los documentos. Cada línea en el archivo es un documento de entrenamiento único, especificado en una de las siguientes formas:

  • El contenido completo del documento, con una longitud de entre 10 y 10,000 bytes (codificación UTF-8)
  • El URI de un archivo PDF de un bucket de Cloud Storage asociado con tu proyecto

Puedes anotar los documentos de texto directamente antes de subirlos, en la IU de AutoML Natural Language después de subir documentos no anotados, o agregar anotaciones a documentos anotados con anterioridad en la IU.

Documentos JSONL

Para ayudarte a crear archivos de entrenamiento JSONL, AutoML Natural Language ofrece una secuencia de comandos de Python que convierte archivos de texto sin formato en archivos JSONL con el formato adecuado. Mira los comentarios en la secuencia de comandos para obtener más detalles.

Cada documento del archivo JSONL tiene uno de los siguientes formatos:

Para los documentos no anotados:

{
  "text_snippet":
    {"content": string}
}

Para los documentos anotados:

{
  "annotations": [
     {
      "text_extraction": {
         "text_segment": {
            "end_offset": number, "start_offset": number
          }
       },
       "display_name": string
     },
     {
       "text_extraction": {
          "text_segment": {
             "end_offset": number, "start_offset": number
           }
        },
        "display_name": string
     },
   ...
  ],
  "text_snippet":
    {"content": string}
}

En los archivos JSONL de muestra:

  • Cada elemento text_extraction identifica una anotación dentro de text_snippet.content. text_extraction indica la posición del texto anotado mediante la especificación del número de caracteres desde el comienzo de text_snippet.content hasta el principio (start_offset) y el final (end_offset ) del texto.
  • display_name es la etiqueta de la entidad.
  • start_offset y end_offset son compensaciones de caracteres, no compensaciones de bytes. El carácter de end_offset no está incluido en el segmento de texto.

Para obtener más información, consulta TextSegment

Los elementos text_extraction son opcionales. Puedes omitirlos si planeas anotar el documento con la IU de AutoML Natural Language. Cada anotación puede abarcar hasta diez tokens, por lo general, palabras. No pueden superponerse, es decir, el start_offset de una anotación no puede estar entre el start_offset y el end_offset de otra anotación en el mismo documento.

En el siguiente documento de entrenamiento de ejemplo, se identifican las enfermedades específicas mencionadas en un resumen del corpus del NCBI:

{
  "annotations": [
    {
      "text_extraction": {
        "text_segment": {
          "end_offset": 67,
          "start_offset": 62
        }
      },
      "display_name": "Modifier"
    },
    {
      "text_extraction": {
        "text_segment": {
          "end_offset": 158,
          "start_offset": 141
        }
      },
      "display_name": "SpecificDisease"
    },
    {
      "text_extraction": {
        "text_segment": {
          "end_offset": 330,
          "start_offset": 290
        }
      },
      "display_name": "SpecificDisease"
    },
    {
      "text_extraction": {
        "text_segment": {
          "end_offset": 337,
          "start_offset": 332
        }
      },
      "display_name": "SpecificDisease"
    },
    {
      "text_extraction": {
        "text_segment": {
          "end_offset": 627,
          "start_offset": 610
        }
      },
      "display_name": "Modifier"
    },
    {
      "text_extraction": {
        "text_segment": {
          "end_offset": 754,
          "start_offset": 749
        }
      },
      "display_name": "Modifier"
    },
    {
      "text_extraction": {
        "text_segment": {
          "end_offset": 875,
          "start_offset": 865
        }
      },
      "display_name": "Modifier"
    },
    {
      "text_extraction": {
        "text_segment": {
          "end_offset": 968,
          "start_offset": 951
        }
      },
      "display_name": "Modifier"
    },
    {
      "text_extraction": {
        "text_segment": {
          "end_offset": 1553,
          "start_offset": 1548
        }
      },
      "display_name": "Modifier"
    },
    {
      "text_extraction": {
        "text_segment": {
          "end_offset": 1652,
          "start_offset": 1606
        }
      },
      "display_name": "CompositeMention"
    },
    {
      "text_extraction": {
        "text_segment": {
          "end_offset": 1833,
          "start_offset": 1826
        }
      },
      "display_name": "DiseaseClass"
    },
    {
      "text_extraction": {
        "text_segment": {
          "end_offset": 1860,
          "start_offset": 1843
        }
      },
      "display_name": "SpecificDisease"
    },
    {
      "text_extraction": {
        "text_segment": {
          "end_offset": 1930,
          "start_offset": 1913
        }
      },
      "display_name": "SpecificDisease"
    },
    {
      "text_extraction": {
        "text_segment": {
          "end_offset": 2129,
          "start_offset": 2111
        }
      },
      "display_name": "SpecificDisease"
    },
    {
      "text_extraction": {
        "text_segment": {
          "end_offset": 2188,
          "start_offset": 2160
        }
      },
      "display_name": "SpecificDisease"
    },
    {
      "text_extraction": {
        "text_segment": {
          "end_offset": 2260,
          "start_offset": 2243
        }
      },
      "display_name": "Modifier"
    },
    {
      "text_extraction": {
        "text_segment": {
          "end_offset": 2356,
          "start_offset": 2339
        }
      },
      "display_name": "Modifier"
    }
  ],
  "text_snippet": {
    "content": "10051005\tA common MSH2 mutation in English and North American HNPCC families:
      origin, phenotypic expression, and sex specific differences in colorectal cancer .\tThe
      frequency , origin , and phenotypic expression of a germline MSH2 gene mutation previously
      identified in seven kindreds with hereditary non-polyposis cancer syndrome (HNPCC) was
      investigated . The mutation ( A-- > T at nt943 + 3 ) disrupts the 3 splice site of exon 5
      leading to the deletion of this exon from MSH2 mRNA and represents the only frequent MSH2
      mutation so far reported . Although this mutation was initially detected in four of 33
      colorectal cancer families analysed from eastern England , more extensive analysis has
      reduced the frequency to four of 52 ( 8 % ) English HNPCC kindreds analysed . In contrast ,
      the MSH2 mutation was identified in 10 of 20 ( 50 % ) separately identified colorectal
      families from Newfoundland . To investigate the origin of this mutation in colorectal cancer
      families from England ( n = 4 ) , Newfoundland ( n = 10 ) , and the United States ( n = 3 ) ,
      haplotype analysis using microsatellite markers linked to MSH2 was performed . Within the
      English and US families there was little evidence for a recent common origin of the MSH2
      splice site mutation in most families . In contrast , a common haplotype was identified
      at the two flanking markers ( CA5 and D2S288 ) in eight of the Newfoundland families .
      These findings suggested a founder effect within Newfoundland similar to that reported by
      others for two MLH1 mutations in Finnish HNPCC families . We calculated age related risks
      of all , colorectal , endometrial , and ovarian cancers in nt943 + 3 A-- > T MSH2 mutation
      carriers ( n = 76 ) for all patients and for men and women separately . For both sexes combined ,
      the penetrances at age 60 years for all cancers  and for colorectal cancer were 0 . 86 and 0 . 57 ,
      respectively . The risk of colorectal cancer was significantly higher  in males
      than females ( 0 . 63 v 0 . 30 and 0 . 84 v 0 . 44 at ages 50 and 60 years , respectively ) .
      For females there was a high risk of endometrial cancer ( 0 . 5 at age 60 years ) and premenopausal
      ovarian cancer ( 0 . 2 at 50 years ) . These intersex differences in colorectal cancer risks
      have implications for screening programmes and for attempts to identify colorectal cancer
      susceptibility modifiers .\n "
  }
}

Documentos PDF

Cada documento debe ocupar una línea en el archivo JSONL. En el siguiente ejemplo, se incluyen saltos de línea para facilitar la lectura. Debes quitarlos en el archivo JSONL. Para obtener más información, consulta jsonlines.org. Para subir un archivo PDF como documento, incluye la ruta del archivo dentro de un elemento JSONL document como se muestra en el siguiente ejemplo:

{
  "document": {
    "input_config": {
      "gcs_source": {
        "input_uris": [ "gs://cloud-ml-data/NL-entity/sample.pdf" ]
      }
    }
  }
}

El valor del elemento input_uris es la ruta de acceso a un archivo PDF en un depósito de Cloud Storage asociado con tu proyecto. El tamaño máximo del archivo PDF es de 2 MB.