Document: Un pipeline de traitement du langage naturel amélioré bulgare, Actes de la conférence internationale sur les systèmes d'information, les systèmes intégrés et les applications intelligentes (ISSia) 2023.
Tout d'abord, les modèles pré-entraînés doivent être téléchargés dans le dossier Repo de HuggingFace.
Afin d'utiliser le pipeline, il doit être installé comme un package Python local:
python -m spacy package ./models_v3.3/model-best/ packages --name bg --version 1.0.0 --code language_components/custom_bg_lang.py
pip install packages/bg_bg-1.0.0/dist/bg_bg-1.0.0.tar.gz
Vous pouvez vérifier si le pipeline a été correctement installé avec la commande pip list .
Après une installation réussie, le pipeline peut être ouvert dans un fichier Python en tant que modèle de langage spacal. Le tokenzer doit être ajouté manuellement.
import spacy
nlp = spacy . load ( "bg_bg" )
from language_components . custom_tokenizer import *
nlp . tokenizer = custom_tokenizer ( nlp )Pour plus de détails sur la façon d'utiliser le pipeline, veuillez consulter le cahier de chargement et d'utilisation du modèle et la documentation officielle de Spacy.
Le pipeline se compose des étapes suivantes:
Les vecteurs anti-échanges pré-entraînés pour le langage bulgare peuvent être téléchargés à partir du site Web FastText et mis dans les vectors/ dossier.
Après avoir téléchargé les vecteurs de mots pré-entraînés et les modèles pré-entraînés, le projet devrait se compose des dossiers suivants:
configs/ - Fichiers de configuration,corpus/ - Train / Dev / Test DataSet au format .Spacy,language_components/ - fichiers pour les composants linguistiques personnalisés (tokenizer, Sentensizer et fichiers connectés),models_v3.3/ - Modèles de pipeline formés dans Spacy 3.3,models_v3.4/ - Modèles de pipeline formés dans Spacy 3.4,tests/ - unittests pour les composants personnalisés,vectors/ - incorporation de mots pré-entraînés (FastText),visualiations/ - Visualisations d'analyse de dépendance sur l'ensemble de tests. La tokenisation est la première étape du pipeline. Le jetons bulgare se compose de règles personnalisées, d'exceptions et de mots d'arrêt. Il peut être utilisé séparément du reste du pipeline.
Les règles pour le tokenizer basées sur des règles sont dans le fichier linguisé_components / personnalisé_tokizer.py. Ils sont définis par les exceptions régulières suivantes:
prefix_re = re . compile ( r'''^[[("'“„]''' )
suffix_re = re . compile ( r'''[])"'.?!,:%$€“„]$''' )
infix_re = re . compile ( r'''[~]''' )
simple_url_re = re . compile ( r'''^https?://''' ) Les exceptions de tokenizer se trouvent dans le fichier language_components/token_exceptions.py. Ils sont regroupés dans les variables suivantes:
METRICS_NO_DOT_EXC - Unités de mesureDASH_ABBR_EXC - abréviations avec un tableau de bord intérieurDASH_ABBR_TITLE_EXC - abréviations avec un tableau de bord intérieur, capitaliséABBR_DOT_MIDDLE_EXC - abréviations avec un point qui ne peut pas être à la fin de la phraseABBR_DOT_MIDDLE_TITLE_EXC - la même chose avec une majusculeABBR_DOT_END_EXC - abréviations avec un point qui peut être à la fin de la phraseABBR_UPPERCASE_EXC - Abréviations en majuscules Dans le fichier language_components/stopwords.py . Les mots d'arrêt sont tirés du site Web de Bultreebank.
Veuillez vous référer au document pour plus de détails sur le reste des composants du pipeline.
Si vous utilisez le pipeline dans votre projet académique, veuillez citer comme:
@ article
{berbatova2023improved,
title={An improved Bulgarian natural language processing pipelihttps://github.com/melaniab/spacy-pipeline-bgne},
author={Berbatova, Melania and Ivanov, Filip},
journal={Annual of Sofia University St. Kliment Ohridski. Faculty of Mathematics and Informatics},
volume={110},
pages={37--50},
year={2023}
} Licence MIT
Copyright (C) 2023 Melania Berbatova