Artigo: Um pipeline de processamento de linguagem natural búlgara aprimorado, Anais da Conferência Internacional sobre Sistemas de Informação, Sistemas Incorporados e Aplicações Inteligentes (ISSIA) 2023.
Primeiro, os modelos pré -rastreados precisam ser baixados na pasta repo do huggingface.
Para usar o pipeline, ele deve ser instalado como um pacote 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
Você pode verificar se o pipeline foi instalado corretamente com o comando pip list .
Após uma instalação bem -sucedida, o pipeline pode ser aberto em um arquivo python como um modelo de idioma espacial. O tokenizer precisa ser adicionado manualmente.
import spacy
nlp = spacy . load ( "bg_bg" )
from language_components . custom_tokenizer import *
nlp . tokenizer = custom_tokenizer ( nlp )Para obter mais detalhes sobre como usar o pipeline, consulte o notebook de carregamento e uso do modelo e a documentação oficial da Spacy.
O oleoduto consiste nas seguintes etapas:
Os vetores fasttext pré -tenhados para o idioma búlgaro podem ser baixados no site FastText e colocados nos vectors/ pasta.
Após o download dos vetores de palavras pré -tenham e os modelos pré -teremam, o projeto deve consistir nas seguintes pastas:
configs/ arquivos de configuração,corpus/ - trem/dev/teste no formato .spacy,language_components/ - arquivos para os componentes de idioma personalizados (Tokenizer, Sentencizer e Arquivos Conectados),models_v3.3/ - modelos de pipeline treinados no spacy 3.3,models_v3.4/ - modelos de pipeline treinados no spacy 3.4,tests/ - unittests para os componentes personalizados,vectors/ - incorporações de palavras pré -tenhadas (text fasttext),visualiations/ - Visualizações de análise de dependência no conjunto de testes. A tokenização é a primeira etapa do pipeline. O tokenizador búlgaro consiste em regras, exceções e palavras de parada personalizadas. Pode ser usado separadamente do restante do pipeline.
As regras para o tokenizer baseado em regras estão no arquivo Language_Components/Custom_Tokenizer.py. Eles são definidos pelas seguintes exceções regulares:
prefix_re = re . compile ( r'''^[[("'“„]''' )
suffix_re = re . compile ( r'''[])"'.?!,:%$€“„]$''' )
infix_re = re . compile ( r'''[~]''' )
simple_url_re = re . compile ( r'''^https?://''' ) As exceções do Tokenizer estão no arquivo language_components/token_exceptions.py. Eles são agrupados nas seguintes variáveis:
METRICS_NO_DOT_EXC - Unidades de medidaDASH_ABBR_EXC - Abreviações com um painel internoDASH_ABBR_TITLE_EXC - Abreviações com um painel interno, capitalizadoABBR_DOT_MIDDLE_EXC - abreviações com um ponto que não pode estar no final da fraseABBR_DOT_MIDDLE_TITLE_EXC - O mesmo com uma letra maiúsculaABBR_DOT_END_EXC - abreviações com um ponto que pode estar no final da fraseABBR_UPPERCASE_EXC - abreviações de mancal No arquivo language_components/stopwords.py . As palavras de parada são retiradas do site do BulTreeBank.
Consulte o artigo para obter detalhes sobre o restante dos componentes do pipeline.
Se você usar o pipeline em seu projeto acadêmico, cite como:
@ 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}
} MIT Licença
Copyright (C) 2023 Melania Berbatova