logo

Reconnaissance d'entité nommée

Reconnaissance d'entité nommée (NER) est une technique dans traitement du langage naturel (NLP) qui se concentre sur l’identification et la classification des entités. Le but de NER est d'extraire automatiquement des informations structurées à partir d'un texte non structuré, permettant aux machines de comprendre et de catégoriser les entités de manière significative pour diverses applications telles que le résumé de texte, la création de graphiques de connaissances, la réponse aux questions et la construction de graphiques de connaissances. L'article explore le fondamentaux, méthodes et mise en œuvre du modèle NER.

Qu’est-ce que la reconnaissance d’entités nommées (NER) ?

Reconnaissance d'entité de nom (NER) est également appelé identification de l'entité , le découpage d'entités, et extraction d'entité . NER est le composant d'extraction d'informations qui vise à identifier et catégoriser les entités nommées dans un texte non structuré. NER implique l'identification des informations clés dans le texte et leur classification dans un ensemble de catégories prédéfinies. Une entité est la chose dont on parle ou fait référence de manière constante dans le texte, comme les noms de personnes, les organisations, les lieux, les expressions temporelles, les quantités, les pourcentages et d'autres catégories prédéfinies.

Le système NER trouve des applications dans divers domaines, notamment la réponse aux questions, la recherche d'informations et la traduction automatique. NER joue un rôle important dans l’amélioration de la précision des autres PNL des tâches telles que le marquage et l'analyse de parties du discours. À la base, la PNL n’est qu’un processus en deux étapes. Voici les deux étapes impliquées :



  • Détection des entités à partir du texte
  • Les classer en différentes catégories

Ambiguïté dans le NER

  • Pour une personne, la définition de la catégorie est intuitivement assez claire, mais pour les ordinateurs, il existe une certaine ambiguïté dans la classification. Regardons quelques exemples ambigus :
    • L'Angleterre (Organisation) a remporté la Coupe du monde 2019 contre La Coupe du monde 2019 s'est déroulée en Angleterre (Lieu).
    • Washington (lieu) est la capitale des États-Unis. Le premier président des États-Unis fut Washington (personne).

Comment fonctionne la reconnaissance d'entités nommées (NER) ?

Le fonctionnement de la reconnaissance d’entité nommée est décrit ci-dessous :

  • Le système NER analyse l'intégralité du texte saisi pour identifier et localiser les entités nommées.
  • Le système identifie ensuite les limites des phrases en considérant les règles de capitalisation. Il reconnaît la fin de la phrase lorsqu'un mot commence par une majuscule, en supposant qu'il pourrait s'agir du début d'une nouvelle phrase. Connaître les limites des phrases aide à contextualiser les entités dans le texte, permettant au modèle de comprendre les relations et les significations.
  • NER peut être formé pour classer des documents entiers en différents types, tels que des factures, des reçus ou des passeports. La classification des documents améliore la polyvalence du NER, lui permettant d'adapter sa reconnaissance d'entité en fonction des caractéristiques spécifiques et du contexte des différents types de documents.
  • NER utilise des algorithmes d'apprentissage automatique, y compris l'apprentissage supervisé, pour analyser des ensembles de données étiquetés. Ces ensembles de données contiennent des exemples d'entités annotées, guidant le modèle dans la reconnaissance d'entités similaires dans de nouvelles données invisibles.
  • Grâce à plusieurs itérations de formation, le modèle affine sa compréhension des caractéristiques contextuelles, des structures syntaxiques et des modèles d'entités, améliorant continuellement sa précision au fil du temps.
  • La capacité du modèle à s'adapter aux nouvelles données lui permet de gérer les variations de langage, de contexte et de types d'entités, ce qui le rend plus robuste et efficace.

Reconnaissance d'entité nommée (NER) Méthodes

Méthode basée sur le lexique

Le NER utilise un dictionnaire avec une liste de mots ou de termes. Le processus consiste à vérifier si l’un de ces mots est présent dans un texte donné. Cependant, cette approche n’est pas couramment utilisée car elle nécessite une mise à jour constante et une maintenance minutieuse du dictionnaire pour rester précis et efficace.

Méthode basée sur des règles

La méthode Rule Based NER utilise un ensemble de règles prédéfinies qui guident l’extraction des informations. Ces règles sont basées sur des modèles et du contexte. Les règles basées sur des modèles se concentrent sur la structure et la forme des mots, en examinant leurs modèles morphologiques. D'un autre côté, les règles basées sur le contexte prennent en compte les mots environnants ou le contexte dans lequel un mot apparaît dans le document texte. Cette combinaison de règles basées sur des modèles et basées sur le contexte améliore la précision de l'extraction d'informations dans la reconnaissance d'entités nommées (NER).

Méthode basée sur l'apprentissage automatique

Classification multiclasse avec des algorithmes d'apprentissage automatique

  • Une façon consiste à entraîner le modèle pour classification multiclasse en utilisant différents algorithmes d'apprentissage automatique, mais cela nécessite beaucoup d'étiquetage. En plus d'étiqueter le modèle, il faut également une compréhension approfondie du contexte pour faire face à l'ambiguïté des phrases. Cela en fait une tâche difficile pour un simple algorithme d’apprentissage automatique.

Champ aléatoire conditionnel (CRF)

  • Le champ aléatoire conditionnel est implémenté à la fois par NLP Speech Tagger et NLTK. Il s'agit d'un modèle probabiliste qui peut être utilisé pour modéliser des données séquentielles telles que des mots.
  • Le CRF peut capturer une compréhension approfondie du contexte de la phrase. Dans ce modèle, l'entrée {	ext{X}} = left { vec{x}_{1} ,vec{x}_{2} ,vec{x}_{3}, ldots,vec{x} _{T} droit }
    p(y | mathbf{x}) = frac{1}{z(vec{x})} prod_{t=1}^{T} expleft{ sum_{k=1} ^{K} omega_k f_k(y_t, y_{t-1}, vec{x}_t) 
ight}

Méthode basée sur l'apprentissage profond

  • Le système d'apprentissage profond NER est beaucoup plus précis que la méthode précédente, car il est capable d'assembler des mots. Cela est dû au fait qu’il a utilisé une méthode appelée incorporation de mots, capable de comprendre la relation sémantique et syntaxique entre différents mots.
  • Il est également capable d'apprendre automatiquement des analyses spécifiques à un sujet ainsi que des mots de haut niveau.
  • Cela rend l’apprentissage profond NER applicable à l’exécution de plusieurs tâches. L'apprentissage en profondeur peut effectuer lui-même la plupart des travaux répétitifs, ce qui permet aux chercheurs, par exemple, d'utiliser leur temps plus efficacement.

Comment implémenter NER en Python ?

Pour implémenter le système NER, nous exploiterons la bibliothèque Spacy. Le code peut être exécuté sur Colab, mais à des fins de visualisation. Je recommande l'environnement local. Nous pouvons installer les bibliothèques requises en utilisant :

!pip install spacy !pip install nltk ! python -m spacy download en_core_web_sm>

Installer les bibliothèques importantes

Python3

import> pandas as pd> import> spacy> import> requests> from> bs4>import> BeautifulSoup> nlp>=> spacy.load(>'en_core_web_sm'>)> pd.set_option(>'display.max_rows'>,>200>)>
>
>

NER utilisant Spacy

Dans le code suivant, nous utilisons SpaCy, une bibliothèque de traitement du langage naturel pour traiter le texte et extraire les entités nommées. Le code parcourt les entités nommées identifiées dans le document traité et imprime le texte, le caractère de début, le caractère de fin et l'étiquette de chaque entité.

Python3

content>=> 'Trinamool Congress leader Mahua Moitra has moved the Supreme Court against her expulsion from the Lok Sabha over the cash-for-query allegations against her. Moitra was ousted from the Parliament last week after the Ethics Committee of the Lok Sabha found her guilty of jeopardising national security by sharing her parliamentary portal's login credentials with businessman Darshan Hiranandani.'> doc>=> nlp(content)> for> ent>in> doc.ents:> >print>(ent.text, ent.start_char, ent.end_char, ent.label_)>
>
>

Sortir:

Congress 10 18 ORG Mahua Moitra 26 38 PERSON the Supreme Court 49 66 ORG the Lok Sabha 94 107 PERSON Moitra 157 163 ORG Parliament 184 194 ORG last week 195 204 DATE the Ethics Committee 211 231 ORG Darshan Hiranandani 373 392 PERSON>

La sortie affichait les noms des entités, leurs positions de début et de fin dans le texte et leurs étiquettes prédites.

Visualiser

Ledisplacy.render>La fonction de spaCy est utilisée pour visualiser les entités nommées dans un texte. Il génère une représentation visuelle avec des surlignages colorés indiquant les entités reconnues et leurs catégories respectives.

Python3

from> spacy>import> displacy> displacy.render(doc, style>=>'ent'>)>
>
>

Sortir:

Comment implémenter NER en Python ?

En utilisant le code suivant, nous allons créer une trame de données à partir des entités nommées extraites par spaCy, y compris le texte, le type (étiquette) et le lemme de chaque entité.

Python3

entities>=> [(ent.text, ent.label_, ent.lemma_)>for> ent>in> doc.ents]> df>=> pd.DataFrame(entities, columns>=>[>'text'>,>'type'>,>'lemma'>])> print>(df)>
>
>

Sortir:

text type lemma 0 Congress ORG Congress 1 Mahua Moitra PERSON Mahua Moitra 2 the Supreme Court ORG the Supreme Court 3 the Lok Sabha PERSON the Lok Sabha 4 Moitra ORG Moitra 5 Parliament ORG Parliament 6 last week DATE last week 7 the Ethics Committee ORG the Ethics Committee 8 Darshan Hiranandani PERSON Darshan Hiranandani>

La trame de données fournit une représentation structurée des entités nommées, de leurs types et formes lemmatisées.

Foire aux questions (FAQ)

1. Quel est le but du système NER ?

Le but de NER est d'extraire automatiquement les informations structurées d'un texte non structuré, permettant aux machines de comprendre et de catégoriser les entités de manière significative pour diverses applications telles que le résumé de texte, la création de graphiques de connaissances, la réponse aux questions et la construction de graphiques de connaissances.

2. Quelles sont les méthodes de NER en PNL ?

Les méthodes de NER en PNL comprennent :

  • NER basé sur le lexique.
  • Basé sur des règles
  • Basé sur le ML
  • Basé sur l'apprentissage profond.

3. Quelles sont les utilisations du NER en PNL ?

NER joue un rôle important dans l’amélioration de la précision d’autres tâches de PNL telles que le marquage et l’analyse de parties du discours.

4. Le BERT peut-il procéder à la reconnaissance d'entités nommées ?

Oui, BERT peut être utilisé pour NER.