Je suis ravi d'annoncer la sortie de mon premier package Python, englishidioms
. Ce package est un outil puissant pour identifier les idiomes, les phrases et les verbes à phrases dans les phrases, avec une base de données de 22 209 expressions uniques.
Contexte: Dans le cadre d'un projet de traitement du langage naturel (NLP), j'ai trouvé la nécessité d'un package Python capable de reconnaître les expressions idiomatiques dans les phrases anglaises. À ma grande surprise, je n'ai pas pu trouver de solution appropriée, alors j'ai décidé d'en construire un à partir de zéro.
Installation: pip install englishidioms
pouvez facilement installer le pack
Comment l'utiliser:
>>> 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.'}]
Arguments
sentence
(STR) - La phrase anglaise que vous souhaitez analyser (requise).limit
(int) - Nombre maximum de résultats, ordonné par des points de correspondance (par défaut: 10).html
(BOOL) - Retour Expression et définition dans le balisage HTML pour préserver le formatage original à partir du dictionnaire (par défaut: false).span
(Bool) - Retour Span Matching dans la phrase (par défaut: false).entry_range
Bool) - Return Dictionary Start / End Line for Debugging (par défaut: false).entry_id
(bool) - retourner le dictionnaire ID d'entrée dans phrases.json pour le débogage (par défaut: false).Comment cela fonctionne (simplifié):
Ce package a été développé en analysant toutes les entrées du dictionnaire dans le "Dictionnaire McGraw-Hill des idiomes américains et des verbes à phrase". En utilisant des bibliothèques Python comme Python-Docx et en tirant parti du formatage prédéfini, j'ai extrait des points clés de chaque entrée. Ces points clés comprennent:
Constantes: classes fixes de mots qui forment le noyau de l'expression idiomatique. Variables: classes variables de mots qui peuvent être largement appariés. Constantes facultatives: mots ou phrases facultatifs supplémentaires dans une seule expression idiomatique. Verbes: Verbes qui précèdent généralement la phrase idiomatique.
Par exemple, considérez l'entrée du dictionnaire:
* Une sonnerie (morte) (pour quelqu'un ) Fig. Très étroitement similaire en apparence à quelqu'un d'autre. (* Typiquement: être ~; ressembler à ~.) _ Vous êtes sûr d'une sonnerie morte pour mon frère. _ N'est-il pas une sonnerie pour Chuck?
Pour cette entrée, nous identifions:
Avec chaque appel à la méthode «find_idioms», un algorithme de recherche examine ces points clés dans 22 209 entrées de dictionnaire et les correspond à la phrase donnée, en considérant les variations grammaticales et l'ordre des mots. Il renvoie ensuite une liste des entrées correspondantes.
Performance:
J'ai testé ce package sur 40 442 phrases du livre, et il a détecté l'entrée du dictionnaire correspondant correct dans 91% des cas. De plus, le temps d'exécution moyen pour le traitement d'une phrase est d'environ 3 secondes.
Détails du projet
Ce projet est divisé en plusieurs étapes clés:
1. Obtenir les données:
Nous commençons par obtenir le matériel source du "Dictionnaire McGraw-Hill des idiomes américains et des verbes phrasaux". Vous pouvez accéder à une copie de cette ressource au format PDF ici.
Ensuite, nous convertissons le PDF en un format plus utilisable, un document DOCX appelé «Clean-Output.docx». Nous le reformatons d'une disposition à deux colonnes à un texte à colonne unique. Veuillez noter que les détails techniques de ce processus de conversion ne sont pas discutés dans cette documentation.
2. Préparer les données:
Nous passons par une série de douze étapes pour traiter et affiner les données de «Clean-output.docx» et les enregistrer dans «phrases.json». Chaque étape est gérée par un module Python spécifique:
Il est important d'exécuter ces modules dans l'ordre spécifié pour créer la version finale de «phrases.json», qui est la base de données complète des données de «Clean-output.docx». Sur Windows CMD, vous pouvez les exécuter séquentiellement à l'aide de cette commande:
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. Fonctionnalité de base:
Le cœur du projet est le module «l_algorithm.py». Il utilise des phrases.json 'pour faire correspondre les expressions idiomatiques avec des phrases anglaises. Ce module est crucial pour le package, permettant l'identification des idiomes, des phrases et des verbes à phrase en phrases.
Le cœur du projet est le module «l_algorithm.py», qui est situé dans le répertoire «Englishidioms». Il utilise des phrases.json 'pour faire correspondre les expressions idiomatiques avec des phrases anglaises. Garder «l_algorithm.py» et «phrases.json» dans le répertoire «Englishidioms» sert un double objectif:
Taille réduite de l'emballage: en isolant ces composants centraux, nous rendons le package plus petit en termes d'espace disque. Cela signifie que les utilisateurs doivent uniquement installer les composants essentiels, ce qui rend le package plus léger et efficace.
Dépendances minimisées: la combinaison «l_algorithm.py» et «phrases.json» nécessite moins de dépendances externes par rapport à l'ensemble du package. Cela simplifie le processus d'installation pour les utilisateurs finaux, en réduisant la nécessité d'installer des bibliothèques et des exigences supplémentaires qui peuvent ne pas être nécessaires pour leur utilisation spécifique.
Le répertoire «EnglishIDIDOM» comprend également trois ressources NLTK nécessaires nécessaires pour exécuter «l_algorithm.py»
En adoptant cette approche rationalisée, nous nous assurons que les utilisateurs peuvent accéder rapidement et facilement à la fonctionnalité principale du package sans aucune frais générale inutile.
4. Vérification et test:
Pour garantir la qualité des données et l'efficacité de l'algorithme de recherche dans «l_algorithm.py», nous utilisons trois modules supplémentaires:
Veuillez noter que pour les utilisateurs finaux qui cherchent à utiliser le package, seuls «l_algorithm.py» et «phrases.json» sont nécessaires. Les autres modules sont principalement destinés au traitement et à la validation des données pendant le développement.
Comment contribuer:
L'ensemble du projet est open source et disponible sur GitHub. N'hésitez pas à explorer le code, à apporter des améliorations et à contribuer à son développement.
Avertissement: Ce package Python est conçu pour donner aux utilisateurs un accès à une collection d'idiomes et de verbes à phrases tels qu'ils apparaissent dans le "Dictionnaire McGraw-Hill des idiomes américains et des verbes phrasaux". Veuillez noter que ce package n'est pas approuvé ou autorisé par McGraw-Hill Companies, Inc., le titulaire du droit d'auteur du dictionnaire.
Avis de droit d'auteur: Le "McGraw-Hill Dictionary of American Idiomes and Phrasal Verbes" est un matériel protégé par le droit d'auteur, et son utilisation est soumise aux termes des droits d'auteur établis par McGraw-Hill Companies, Inc. Ce package repose sur le contenu dérivé d'une copie personnelle de la copie personnelle de la copie personnelle de la copie personnelle de la copie personnelle de la copie personnelle de la copie personnelle de la copie personnelle de la copie personnelle de la copie personnelle de la copie personnelle de la copie personnelle de la copie personnelle de la copie personnelle de Copy of Person le livre.
Utilisation prévue: Ce package Python est destiné à des fins éducatives et de recherche uniquement, et à des fins personnelles et non commerciales. Il n'est pas destiné aux applications commerciales.
Responsabilité de l'utilisateur: En utilisant ce package Python, vous reconnaissez que vous devez vous conformer aux lois sur le droit d'auteur et aux conditions d'utilisation décrites dans l'œuvre originale. Vous êtes autorisé à utiliser ce package à des fins personnelles et non commerciales. Toute application ou distribution commerciale de la production de ce package peut nécessiter le consentement écrit préalable de l'éditeur, The McGraw-Hill Companies, Inc. Il est fortement encouragé que les utilisateurs qui ont l'intention d'utiliser ce package sur une base régulière envisagent d'acheter leur propre copie personnelle de Le "Dictionnaire McGraw-Hill des idiomes américains et des verbes à phrases" pour soutenir les auteurs et respecter les lois sur le droit d'auteur.
Soutenez l'auteur: Si vous avez l'intention d'utiliser le contenu de ce package à des fins commerciales, je vous recommande fortement d'obtenir les autorisations et licences nécessaires de McGraw-Hill Companies, Inc. pour accéder à la gamme complète des idiomes et des verbes phrasaux, envisagez Acheter votre propre copie personnelle du "Dictionnaire McGraw-Hill des idiomes américains et des verbes phrasaux".
Responsabilité: Les créateurs et mainteneurs de ce package Python ne seront pas tenus responsables de toute violation du droit d'auteur ou de l'utilisation abusive du package. Les utilisateurs sont responsables de l'adhésion à toutes les exigences juridiques et des droits d'auteur lors de l'utilisation de ce package.
J'encourage une utilisation éthique et licite de ce package, concernant les droits des détenteurs de droits d'auteur et des auteurs. Veuillez l'utiliser de manière responsable.