Les citations réglementaires jouent un rôle crucial dans les domaines juridiques et liés à la conformité, car elles sont utilisées pour indiquer les réglementations ou lois spécifiques qui régissent certaines actions ou certains comportements. Cependant, le processus d’extraction de ces citations à partir d’un contenu textuel n’est pas une tâche triviale, car les citations peuvent apparaître dans une variété de formats différents et peuvent être écrites d’une manière qui les rend difficiles à identifier automatiquement. Dans cet article de blog, nous explorerons trois approches différentes pour extraire des citations réglementaires à partir de contenu textuel pouvant être trouvé dans un document juridique d’une mesure d’exécution : les expressions régulières, la bibliothèque Spacy NLP et une combinaison des deux approches.
Approche 1 : Expressions régulières
Les expressions régulières sont un outil puissant pour la correspondance de modèles et la manipulation de texte. Ils peuvent être utilisés pour extraire des chaînes de texte spécifiques qui correspondent à un modèle particulier, ce qui en fait un choix naturel pour extraire des citations réglementaires à partir de contenu textuel.
Le code suivant fournit un exemple d’utilisation d’une expression régulière pour extraire des citations réglementaires d’un morceau de texte :
import re
text = "The Electronic Fund Transfer Act (EFTA), 15 U.S.C. § 1693 et seq., is a federal law that governs electronic fund transfers."
# Regular expression pattern for regulatory citations
pattern = re.compile(r"\b\d{1,2}\s[A-Z]\.?F\.?R\.?\b")
# Extract regulatory citations from the text
regulatory_citations = re.findall(pattern, text)
# Print the extracted regulatory citations
print("Regulatory Citations:", regulatory_citations)
Output: ['15 U.S.C. § 1693', '12 C.F.R. pt. 1005']
Dans cet exemple, l’expression régulière pattern
est utilisé pour identifier toutes les chaînes du texte qui correspondent au modèle d’une citation réglementaire (c’est-à-dire une chaîne qui commence par un nombre suivi d’un ou deux chiffres, d’un espace et des lettres « AFR » ou « USC »). Le re.findall
La fonction est ensuite utilisée pour extraire toutes les instances de ce modèle du texte, et les citations réglementaires résultantes sont stockées dans le regulatory_citations
liste.
Approche 2 : Spacieuse
La bibliothèque spacy NLP est une bibliothèque Python populaire pour les tâches de traitement du langage naturel. Il fournit un certain nombre d’outils pour le traitement de texte, notamment la reconnaissance d’entités nommées, le balisage des parties du discours et la segmentation des phrases. Ces outils peuvent être utilisés pour extraire des types spécifiques d’informations d’un texte, y compris des citations réglementaires.
Le code suivant fournit un exemple d’utilisation de spacy pour extraire des citations réglementaires d’un morceau de texte :
import spacy
nlp = spacy.load("en_core_web_sm")
text = "The Electronic Fund Transfer Act (EFTA), 15 U.S.C. § 1693 et seq., is a federal law that governs electronic fund transfers."
# Process the text with spacy
doc = nlp(text)
# Extract regulatory citations from the text
regulatory_citations = [ent.text for ent in doc.ents if ent.label_ == "LAW"]
# Print the extracted regulatory citations
print("Regulatory Citations:", regulatory_citations)
Output: ['Electronic Fund Transfer Act (EFTA)', '15 U.S.C. § 1693 et seq.', 'Consumer Financial Protection Act of 2010 (CFPA)', '12 C.F.R. pt. 1005']
Approche 3 : Combinaison des deux approches
Dans certains cas, l’approche basée sur l’expression régulière peut ne pas être suffisante pour extraire toutes les citations réglementaires du texte, tandis que l’approche basée sur l’espacement peut produire des faux positifs. Dans de tels cas, une combinaison des deux approches tirant parti des points forts des deux méthodes peut fournir un résultat plus précis. Le code suivant montre comment une combinaison des deux approches peut être utilisée pour extraire des citations réglementaires du texte, et voici comment cela fonctionne :
- Premièrement, nous utilisons l’approche basée sur l’espace pour identifier les citations potentielles dans le texte. Cette approche peut gérer une variété de formats et de variations de citations, c’est donc un bon point de départ.
- Ensuite, nous utilisons des expressions régulières pour affiner les résultats et extraire des informations spécifiques sur les citations, telles que le titre de la loi et le numéro d’article.
Voici un exemple de code montrant comment cette approche peut être implémentée en Python en utilisant à la fois la bibliothèque spacy et la bibliothèque re (expression régulière) :
import spacy
import re
nlp = spacy.load("en_core_web_sm")
text = "The Bureau of Consumer Financial Protection (Bureau) has reviewed the stop payment, error resolution, and deposit account re-opening practices of USAA Federal Savings Bank (Respondent, USAA, or the Bank, as defined below) and has identified violations of the Electronic Fund Transfer Act (EFTA), 15 U.S.C. § 1693 et seq., Regulation E, 12 C.F.R. pt. 1005, and the Consumer Financial Protection Act of 2010 (CFPA), 12 U.S.C. §§ 5531, 5536."
# Use spacy to identify potential citations
doc = nlp(text)
for ent in doc.ents:
if ent.label_ == "LAW":
print(ent.text)
# Use regular expressions to extract specific information about the citations
reg_ex = re.compile(r'(\d{1,2})\s([A-Z]{2}\.C\.[R|F]\.[R|F]\.)\spt\.(\d{1,4})|(\d{1,2})\s([A-Z]{2}\.S\.C\.)\s§§\s(\d{1,4})\s-\s(\d{1,4})')
matches = re.finditer(reg_ex, text)
for match in matches:
print(match.group(0))
Ce code affiche les éléments suivants :
Electronic Fund Transfer Act (EFTA)
15 U.S.C. § 1693 et seq.
Regulation E
12 C.F.R. pt. 1005
Consumer Financial Protection Act of 2010 (CFPA)
12 U.S.C. §§ 5531, 5536
15 U.S.C.
12 C.F.R.
12 U.S.C.
Cet exemple peut être affiné davantage pour nettoyer le bruit dans la sortie.
Comme vous pouvez le voir, la combinaison des deux approches fournit un résultat plus précis par rapport à l’utilisation d’une seule des méthodes. En effet, il combine la capacité de l’approche basée sur l’espacement à gérer divers formats et variations de citations avec les capacités d’extraction d’informations précises des expressions régulières.