Herramienta de extracción de palabras (1): descripción general de la herramienta de extracción de palabras

Una descripción general de las herramientas de extracción de palabras que pueden ser útiles para el trabajo de estandarización de datos, especialmente para crear palabras candidatas estándar.

1. Descripción general de la herramienta de extracción de palabras

1.1. Por qué desarrollamos la herramienta de extracción de palabras

Entre las tareas iniciales de estandarización de datos, la tarea más difícil es recopilar la mayor cantidad de candidatos posible y rápidamente para que se registren como palabras estándar. Herramienta de verificación de estándares de datos (ver: Herramienta de verificación estándar de datos_1.Descripción general) se puede utilizar para extraer palabras candidatas estándar, pero tiene las siguientes dificultades.

  • Si la tabla de base de datos, los datos de comentarios de columna contienen muchos caracteres especiales (símbolos como #, $, %, ., \, etc. y separadores de línea, etc.), se requiere un esfuerzo considerable para eliminarlos o refinarlos.
  • Es difícil saber la frecuencia de las palabras, por lo que es difícil determinar si registrar solo palabras sueltas, solo palabras compuestas o tanto palabras sueltas como compuestas.
  • Si una palabra compuesta se identifica más tarde después de confirmar una palabra estándar y afecta el nombre físico de un término estándar que ya se ha registrado, las excepciones a la regla de nomenclatura estándar pueden dificultar la gestión.

La herramienta de extracción de palabras se desarrolló para paliar algunas de estas dificultades. En particular, esperamos que sea útil en los siguientes casos.

  • Si no hay un diccionario estándar de datos actual o incluso si la cantidad de palabras estándar es pequeña
  • Su trabajo es tan único que no existe un diccionario estándar de datos que sea adecuado como referencia.
  • Cuando la tabla de la base de datos y los comentarios de las columnas son demasiado grandes y lleva mucho tiempo extraer manualmente las palabras
  • O, por el contrario, cuando hay poco contenido en las tablas de la base de datos y en los comentarios de las columnas, por lo que no es adecuado extraer palabras estándar y sí lo es extraerlas de documentos como manuales de trabajo.
  • Además, si es necesario extraer palabras y frecuencias de los documentos

1.2. concepto de herramienta de extracción de palabras

La herramienta de extracción de palabras es una herramienta que recibe varios tipos de archivos como entrada, extrae palabras y palabras compuestas utilizando un analizador de morfemas de procesamiento de lenguaje natural y genera la frecuencia y la fuente (nombre de archivo, nombre de tabla, nombre de columna, etc.) como un Archivo Excel.

Mecab, un analizador de morfemas de procesamiento de lenguaje natural (NLP) coreano, se utilizó y desarrolló en Python v3.8. Kkma, Komoran, Hannanum, Okt (anteriormente conocido como Twitter) y Mecab son bibliotecas representativas entre los analizadores de morfemas de procesamiento del lenguaje natural coreano. Entre ellos, Mecab fue seleccionado por tener el mejor desempeño.

La comparación de rendimiento de los analizadores de morfemas de procesamiento de lenguaje natural se puede encontrar en el siguiente enlace.

referencia: https://konlpy.org/ko/latest/morph/#comparison-between-pos-tagging-classes

한국어 형태소 분석기 성능 비교 (출처: 참조 Link에서 발췌)
Comparación de rendimiento de los analizadores de morfemas coreanos (Fuente: extracto del enlace de referencia)

El tiempo de ejecución de acuerdo con el aumento en el número de caracteres de entrada se puede resumir de la siguiente manera. (El tiempo de ejecución disminuye y el rendimiento mejora a medida que avanza de izquierda a derecha)

Kkma > Komoran > Hannanum > Okt (Twitter) > Mecab

Para referencia, el enlace de arriba es Paquete KoNLPyEste es el sitio de la persona que lo desarrolló. KoNLPyes un paquete basado en Python que agrupa varios analizadores de morfemas en uno.

KoNLPy: https://konlpy.org/ko/latest/

1.3. Cómo funciona el extractor de palabras

Mire brevemente los datos de entrada, la lógica de procesamiento y los datos de salida.

1.3.1. material de entrada de la herramienta de extracción de palabras

Los datos de entrada se pueden especificar en una o ambas de las dos formas siguientes.

  1. Documentos: MS Word, PowerPoint, archivos de texto
    • Al momento de escribir este artículo (2021-08-29), los formatos HWP y PDF aún no son compatibles.
  2. Tabla DB, comentario de columna Fuente: archivo de Excel
    • Elementos de datos de comentario de tabla: base de datos, esquema, nombre de tabla, comentario de tabla
    • Elementos de datos de comentario de columna: base de datos, esquema, nombre de tabla, comentario de tabla, nombre de columna, comentario de columna

▼ Un ejemplo de datos de comentarios de tabla es el siguiente.

Base de datosEsquemaNombre de la tablaComentario de tabla
DB1PROPIETARIO1COMTCADMINISTCODEcodigo administrativo
DB1PROPIETARIO1COMTCADMINISTCODERECPTNLOGRegistro de recepción de código de administración
DB1PROPIETARIO1COMTCCMNCLCODECódigo de clasificación común
DB1PROPIETARIO1COMTCCMNCODEcódigo común
DB1PROPIETARIO1COMTCCMNDETAILCODECódigo de detalle común
Ejemplo de datos de comentario de tabla

▼ Ejemplos de datos de comentarios de columna son los siguientes. Esta es la lista de columnas de COMTCADMINISTCODE (código administrativo) entre la lista de tablas anterior.

Base de datosEsquemaNombre de la tablaNombre de columnaComentario de columna
DB1PROPIETARIO1COMTCADMINISTCODEADMINIST_ZONE_SEdivisión del distrito administrativo
DB1PROPIETARIO1COMTCADMINISTCODEADMINIST_ZONE_CODEcódigo de distrito administrativo
DB1PROPIETARIO1COMTCADMINISTCODEUSE_ATSi usar o no
DB1PROPIETARIO1COMTCADMINISTCODEADMINIST_ZONE_NMnombre del distrito administrativo
DB1PROPIETARIO1COMTCADMINISTCODEUPPER_ADMINIST_ZONE_CODECódigo del Distrito Administrativo Superior
DB1PROPIETARIO1COMTCADMINISTCODECREAT_DEfecha de creación
DB1PROPIETARIO1COMTCADMINISTCODEABL_DEfecha de abolición
DB1PROPIETARIO1COMTCADMINISTCODEFRST_REGIST_PNTTMprimer registro
DB1PROPIETARIO1COMTCADMINISTCODEFRST_REGISTER_IDID de registrante inicial
DB1PROPIETARIO1COMTCADMINISTCODELAST_UPDT_PNTTMÚltima hora de modificación
DB1PROPIETARIO1COMTCADMINISTCODELAST_UPDUSR_IDÚltima identificación modificada
Ejemplo de datos de comentario de columna

* Los datos de ejemplo anteriores se crearon utilizando los scripts de comentarios de tabla y columna en la página "Información de configuración de tabla de componentes comunes" del Marco estándar de gobierno electrónico v3.8.

(fuente: https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:com:v3.8:init_table)

1.3.2. Lógica de procesamiento de la herramienta de extracción de palabras

Un breve resumen de toda la lógica de procesamiento es el siguiente.

  1. Extraiga texto (línea por fila, tabla/columna) abriendo los datos de entrada secuencialmente
  2. Extracción de palabras candidatas en forma de 1 sustantivo, n sustantivos, prefijo + n sustantivos, n sustantivos + sufijos, prefijo + n sustantivos + sufijos usando Mecab, un paquete analizador de morfemas de lenguaje natural
  3. Encuentre la frecuencia de las palabras extraídas de todos los datos de entrada y guarde el resultado de la extracción de palabras como un archivo de salida
  4. Cree y guarde la nube de palabras como archivo png con lista de palabras y frecuencia
  5. Emite el tiempo total requerido y sale

Un diagrama simplificado del proceso anterior es el siguiente.

단어 추출 도구 처리 과정
Proceso de la herramienta de extracción de palabras

1.3.3. Datos de salida de la herramienta de extracción de palabras

Los datos de salida, que son el resultado del procesamiento de los datos de entrada, son un archivo de Excel y un archivo de imagen (png) en forma de nube de palabras.

El archivo de Excel consta de dos hojas. El siguiente es un ejemplo de datos de comentario de columna y tabla DB como entrada.

▼ Ficha “Ejemplo de resultado de extracción de palabras”

NopalabraNombre del archivoTipo de archivoPáginaTextobase de datosEsquemamesaColumna
1administracióntabla,columna comentarios.xlsxcolumna0división del distrito administrativoDB1PROPIETARIO1COMTCADMINISTCODEADMINIST_ZONE_SE
2áreatabla,columna comentarios.xlsxcolumna0división del distrito administrativoDB1PROPIETARIO1COMTCADMINISTCODEADMINIST_ZONE_SE
3divisióntabla,columna comentarios.xlsxcolumna0división del distrito administrativoDB1PROPIETARIO1COMTCADMINISTCODEADMINIST_ZONE_SE
4División administrativa [compuesto]tabla,columna comentarios.xlsxcolumna0división del distrito administrativoDB1PROPIETARIO1COMTCADMINISTCODEADMINIST_ZONE_SE
5administracióntabla,columna comentarios.xlsxcolumna0código de distrito administrativoDB1PROPIETARIO1COMTCADMINISTCODEADMINIST_ZONE_CODE
6áreatabla,columna comentarios.xlsxcolumna0código de distrito administrativoDB1PROPIETARIO1COMTCADMINISTCODEADMINIST_ZONE_CODE
7códigotabla,columna comentarios.xlsxcolumna0código de distrito administrativoDB1PROPIETARIO1COMTCADMINISTCODEADMINIST_ZONE_CODE
8Código de distrito administrativo [compuesto]tabla,columna comentarios.xlsxcolumna0código de distrito administrativoDB1PROPIETARIO1COMTCADMINISTCODEADMINIST_ZONE_CODE
9usartabla,columna comentarios.xlsxcolumna0Si usar o noDB1PROPIETARIO1COMTCADMINISTCODEUSE_AT
10Sitabla,columna comentarios.xlsxcolumna0Si usar o noDB1PROPIETARIO1COMTCADMINISTCODEUSE_AT
11Ya sea para usar [palabra compuesta]tabla,columna comentarios.xlsxcolumna0Si usar o noDB1PROPIETARIO1COMTCADMINISTCODEUSE_AT
12regióntabla,columna comentarios.xlsxcolumna0nombre del distrito administrativoDB1PROPIETARIO1COMTCADMINISTCODEADMINIST_ZONE_NM
13Nombre de estacióntabla,columna comentarios.xlsxcolumna0nombre del distrito administrativoDB1PROPIETARIO1COMTCADMINISTCODEADMINIST_ZONE_NM
14Nombre del distrito administrativo [compuesto]tabla,columna comentarios.xlsxcolumna0nombre del distrito administrativoDB1PROPIETARIO1COMTCADMINISTCODEADMINIST_ZONE_NM
Ficha “Ejemplo de resultado de extracción de palabras”
  • Columna "Texto": Este es el valor original extraído de los datos de entrada, y en este ejemplo, corresponde a la tabla, comentario de columna.
  • Columna “Palabra”: Candidatos de palabra extraídos de Texto usando Mecab. Para palabras compuestas, especifique "[palabra compuesta]" como sufijo.
    • Línea 12 “distrito de administración”, línea 13 “nombre de la estación” son palabras extraídas de “nombre de la administración” en Mecab.
    • Se puede ver que la precisión no es 100% porque se extrae de forma diferente a la palabra realmente utilizada.

▼ Ejemplo de hoja de “Frecuencia de palabras”

palabrafrecuenciaFuente
código110DB1.OWNER1.COMTCADMINISTCODE.ADMINIST_ZONE_CODE (código de zona administrativa)
DB1.OWNER1.COMTCADMINISTCODERECPTNLOG.CHANGE_SE_CODE (cambiar código de identificación)
DB1.OWNER1.COMTCADMINISTCODERECPTNLOG.CPRVN_CODE (código de intento)
número103DB1.OWNER1.COMTCADMINISTCODERECPTNLOG.OPERT_SN(número de serie del trabajo)
DB1.OWNER1.COMTCZIP.ZIP (código postal)
DB1.OWNER1.COMTHCONFMHISTORY.CONFM_NO (número de aprobación)
número de personas88DB1.OWNER1.COMTNADBKMANAGE.ADBK_NM (nombre de la libreta de direcciones)
DB1.OWNER1.COMTCCMMNCLCODE.CL_CODE_NM (nombre del código de clasificación)
DB1.OWNER1.COMTCCMNDETAILCODE.CODE_NM (nombre de código)
Día85DB1.OWNER1.COMTCADMINISTCODE.CREAT_DE(fecha de creación)
DB1.OWNER1.COMTCADMINISTCODE.ABL_DE (fecha de jubilación)
DB1.OWNER1.COMTCADMINISTCODERECPTNLOG.OCCRRNC_DE(fecha de ocurrencia)
información77DB1.OWNER1.COMTHDBMNTRNGLOGINFO.LOG_INFO (información de registro)
DB1.OWNER1.COMTNBACKUPRESULT.ERROR_INFO (información de error)
DB1.OWNER1.COMTNINDVDLINFOPOLICY.INDVDL_INFO_POLICY_ID (ID de política de privacidad)
Si75DB1.OWNER1.COMTCADMINISTCODE.USE_AT (si se usa)
DB1.OWNER1.COMTNANNVRSRYMANAGE.REPTIT_AT (si repetir)
DB1.OWNER1.COMTNBANNER.REFLCT_AT (ya sea para reflejar)
Ejemplo de hoja de “Frecuencias de palabras”
  • Columna "Palabra": este es un valor de cadena obtenido al eliminar duplicados de la columna "Palabra" de la hoja "Resultado de extracción de palabras". Este valor es candidato a ser registrado como palabra estándar.
  • Columna “Freq”: Este es el conteo de frecuencia que indica cuántas veces se usó la palabra. La lista resultante se ordena en orden inverso desde estas palabras de alta frecuencia a las de baja frecuencia.
  • Columna “Fuente”: Indica la fuente de la palabra. Muestra hasta 10 fuentes.
    • Si la fuente es Tabla, el formato es: DB.Schema.TableName(Comentario de tabla)
    • Si el origen es Columna, el formato es: DB.Schema.TableName.ColumnName(Column comment)
    • Si la fuente es Formato de archivo: Nombre de archivo: Número de página: Texto

A continuación se muestra un ejemplo de una imagen de nube de palabras generada por la frecuencia de las palabras extraídas. Las palabras con alta frecuencia se muestran en tamaño grande.

단어 추출 결과 Word cloud
Resultados de la extracción de palabras Nube de palabras

La herramienta de extracción de palabras es una herramienta desarrollada en Python y requiere un proceso de configuración del entorno, como la instalación de Python y los paquetes necesarios antes de la ejecución. A continuación, veremos el proceso de configuración del entorno.


<< Lista de artículos relacionados >>

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

es_ESEspañol