Estoy encantado de anunciar el lanzamiento de mi primer paquete Python, englishidioms
. Este paquete es una herramienta poderosa para identificar modismos, frases y verbos de frases en inglés, con una base de datos de 22,209 expresiones únicas.
Antecedentes: como parte de un proyecto personal de procesamiento del lenguaje natural (PNL), encontré la necesidad de un paquete Python capaz de reconocer expresiones idiomáticas dentro de las oraciones inglesas. Para mi sorpresa, no pude encontrar una solución adecuada, así que decidí construir una desde cero.
Instalación: puede instalar fácilmente el paquete usando PIP: pip install englishidioms
Cómo usarlo:
>>> from englishidioms import find_idioms
>>> sentence = "The plan didn't work, but I'll give you an a for effort for trying."
>>> results = find_idioms(sentence, limit=1)
>>> print(results)
[{'phrase': '*an A for effort', 'definition': 'acknowledgement for having tried to do something, even if it was not successful. (*Typically: get ~; give someone ~.) _ The plan didn’t work, but I’ll give you an A for effort for trying.'}]
Argumentos
sentence
(str): la oración en inglés que desea analizar (requerida).limit
(int): número máximo de resultados, ordenados por puntos de coincidencia (predeterminado: 10).html
(BOOL) - Frase de retorno y definición en el marcado HTML para preservar el formato original del diccionario (predeterminado: falso).span
(BOOL) - RETURN COMPORTACIÓN EN LA FIRA (predeterminado: falso).entry_range
Bool) - Línea de inicio/finalización del diccionario de retorno para la depuración (predeterminado: falso).entry_id
(bool) - Return Dictionary Ind Id en frases.json para la depuración (predeterminado: falso).Cómo funciona (simplificado):
Este paquete fue desarrollado al analizar todas las entradas del diccionario en el "Diccionario McGraw-Hill de modismos y verbos componentes estadounidenses". Al usar bibliotecas de Python como Python-Docx y aprovechar el formato predefinido, extraí puntos clave de cada entrada. Estos puntos clave incluyen:
Constantes: Clases de palabras fijas que forman el núcleo de la expresión idiomática. Variables: clases de palabras variables que se pueden combinar ampliamente. Constantes opcionales: palabras o frases opcionales adicionales dentro de una sola expresión idiomática. Verbos: verbos que generalmente preceden a la frase idiomática.
Por ejemplo, considere la entrada del diccionario:
*Un timbre (muerto) (para alguien ) Fig. Muy similar en apariencia a otra persona. (*Típicamente: be ~; parezca ~.) _ Estás seguro de un timbre muerto para mi hermano. _ ¿No es un timbre para Chuck?
Para esta entrada, identificamos:
Con cada llamada al método 'find_idioms', un algoritmo de búsqueda examina estos puntos clave en 22,209 entradas del diccionario y los coincide con la oración dada, considerando variaciones gramaticales y orden de palabras. Luego devuelve una lista de entradas coincidentes.
Actuación:
Probé este paquete en 40,442 oraciones del libro, y detectó la entrada correcta del diccionario coincidente en el 91% de los casos. Además, el tiempo de ejecución promedio para procesar una oración es de aproximadamente 3 segundos.
Detalles del proyecto
Este proyecto se divide en varios pasos clave:
1. Obtener los datos:
Comenzamos obteniendo el material fuente del "Diccionario McGraw-Hill de modismos estadounidenses y verbos componentes". Puede acceder a una copia de este recurso en formato PDF aquí.
A continuación, convertimos el PDF en un formato más utilizable, un documento DOCX llamado 'Clean-Output.docx'. Lo reformatamos de un diseño de dos columnas a un texto de una sola columna. Tenga en cuenta que los detalles técnicos de este proceso de conversión no se discuten en esta documentación.
2. Preparación de los datos:
Revisamos una serie de doce pasos para procesar y refinar los datos de 'Clean-Output.docx' y guardárselos en 'frases.json'. Cada paso se gestiona mediante un módulo de pitón específico:
Es importante ejecutar estos módulos en el orden especificado para crear la versión final de 'frases.json', que es la base de datos integral para los datos de 'Clean-Output.docx. En Windows CMD, puede ejecutarlos secuencialmente usando este comando:
python A_breakitup.py && python A_splitrandom.py && python B_breakitup.py && python C_readit.py && python D_readit.py && python E_tidyup.py && python F_tidyup.py && python FF_manualoverride.py && python G_asterisk.py && python H_hyphenated_words.py && python I_getpatterns.py && python J_getwordforms.py && python K_getexamples.py
3. Funcionalidad central:
El corazón del proyecto es el módulo 'l_algorithm.py'. Utiliza 'frases.json' para que coincida con expresiones idiomáticas con oraciones en inglés. Este módulo es crucial para el paquete, lo que permite la identificación de modismos, frases y verbos frasales en oraciones.
El corazón del proyecto es el módulo 'l_algorithm.py', que se encuentra en el directorio 'Englishidioms'. Utiliza 'frases.json' para que coincida con expresiones idiomáticas con oraciones en inglés. Mantener 'l_algorithm.py' y 'frases.json' en el directorio 'Englishidioms' sirve a un doble propósito:
Tamaño de paquete reducido: al aislar estos componentes centrales, hacemos que el paquete sea más pequeño en términos de espacio en disco. Esto significa que los usuarios solo necesitan instalar los componentes esenciales, haciendo que el paquete sea más liviano y eficiente.
Dependencias minimizadas: la combinación 'l_algorithm.py' y 'frases.json' requiere menos dependencias externas en comparación con todo el paquete. Esto simplifica el proceso de instalación para los usuarios finales, reduciendo la necesidad de instalar bibliotecas y requisitos adicionales que pueden no ser necesarios para su uso específico.
El directorio 'Englishidioms' también incluye tres recursos NLTK necesarios necesarios para ejecutar 'l_algorithm.py'
Al adoptar este enfoque optimizado, nos aseguramos de que los usuarios puedan acceder de manera rápida y fácil a la funcionalidad central del paquete sin ninguna sobrecarga innecesaria.
4. Comprobación y prueba:
Para garantizar la calidad de los datos y la efectividad del algoritmo de búsqueda en 'l_algorithm.py', usamos tres módulos adicionales:
Tenga en cuenta que para los usuarios finales que buscan usar el paquete, solo se necesitan 'l_algorithm.py' y 'frases.json'. Los otros módulos son principalmente para el procesamiento y validación de datos durante el desarrollo.
Cómo contribuir:
Todo el proyecto es de código abierto y está disponible en GitHub. Siéntase libre de explorar el código, hacer mejoras y contribuir a su desarrollo.
Descargo de responsabilidad: este paquete de Python está diseñado para proporcionar a los usuarios acceso a una colección de modismos y verbos frasales tal como aparecen en el "Diccionario McGraw-Hill de modismos estadounidenses y verbos frasales". Tenga en cuenta que este paquete no está respaldado o autorizado por McGraw-Hill Companies, Inc., el titular de los derechos de autor del diccionario.
Aviso de derechos de autor: El "Diccionario McGraw-Hill de American Idiom and Vergerbs" es material con derechos de autor, y su uso está sujeto a los términos de derechos de autor establecidos por McGraw-Hill Companies, Inc. Este paquete se basa en contenido derivado de una copia personal de Biblia.
Uso previsto: este paquete de Python está destinado solo a fines educativos y de investigación, y para uso personal no comercial. No está destinado a aplicaciones comerciales.
Responsabilidad del usuario: al usar este paquete de Python, usted reconoce que debe cumplir con las leyes de derechos de autor y los términos de uso descritos en el trabajo original. Se le permite usar este paquete solo para fines personales y no comerciales. Cualquier aplicación o distribución comercial de la producción de este paquete puede requerir el consentimiento previo por escrito del editor, McGraw-Hill Companies, Inc. Se recomienda encarecidamente que los usuarios que tienen la intención de usar este paquete de forma regular consideran comprar su propia copia personal de El "Diccionario McGraw-Hill de los modismos y verbos de compras estadounidenses" para apoyar a los autores y adherirse a las leyes de derechos de autor.
Apoye al autor: si tiene la intención de utilizar el contenido de este paquete con fines comerciales, le recomiendo que obtenga los permisos y licencias necesarios de McGraw-Hill Companies, Inc. Comprando su propia copia personal del "Diccionario McGraw-Hill de los modismos estadounidenses y los verbos componentes".
Responsabilidad: Los creadores y mantenedores de este paquete de Python no serán responsables de ninguna infracción de los derechos de autor o el mal uso del paquete. Los usuarios son responsables de cumplir con todos los requisitos legales y de derechos de autor cuando usan este paquete.
Animo el uso ético y legal de este paquete, respetando los derechos de los titulares y autores de los derechos de autor. Úselo de manera responsable.