Identification de l'entité nommée NLTK sur une liste Python
J'ai utilisé NLTK de ne_chunk
pour extraire des entités nommées à partir d'un texte:
my_sent = "WASHINGTON -- In the wake of a string of abuses by New York police officers in the 1990s, Loretta E. Lynch, the top federal prosecutor in Brooklyn, spoke forcefully about the pain of a broken trust that African-Americans felt and said the responsibility for repairing generations of miscommunication and mistrust fell to law enforcement."
nltk.ne_chunk(my_sent, binary=True)
Mais je ne peux pas trouver comment sauver ces entités à une liste? E. g. –
print Entity_list
('WASHINGTON', 'New York', 'Loretta', 'Brooklyn', 'African')
Grâce.
source d'informationauteur Zlo
Vous devez vous connecter pour publier un commentaire.
nltk.ne_chunk
retourne un imbriquéenltk.tree.Tree
objet alors vous pourriez avoir à traverser laTree
objet pour obtenir de la NEs.Prendre un coup d'oeil à La Reconnaissance des entités nommées avec Expression Régulière: NLTK
Vous pouvez aussi extraire le
label
de chaque Entité du Nom dans le texte à l'aide de ce code:De sortie:
Vous pouvez voir
Washington
New York
etBrooklyn
sontGPE
signifie géo-politique entitéset
Loretta E. Lynch
est unPERSON
Que vous obtenez un
arbre
comme une valeur de retour, je suppose que vous voulez ramasser ces sous-arbres qui sont étiquetés avecNE
Voici un exemple simple de rassembler tous ceux qui, dans une liste:
Cela donne:
ou d'une liste de listes:
Voir aussi: Comment naviguer dans un nltk.d'arbre en arbre.L'arbre?
Un
Tree
est une liste de. Les morceaux sont sous-arborescences, non fragments de mots réguliers sont des chaînes de caractères. Donc, nous allons aller en bas de la liste, d'extraire les mots de chaque morceau, et se joindre à eux.utilisation tree2conlltags de nltk.chunk. Aussi ne_chunk besoins pos tagging tags mot jetons (donc des besoins word_tokenize).
Cela vous donnera une liste de tuples: [(jeton, pos_tag, name_entity_tag)]
Si cette liste n'est pas exactement ce que vous voulez, il est certainement plus facile à analyser la liste que vous voulez de cette liste puis un nltk arbre.
Code et les détails de ce lien; check it out pour plus d'informations
Modifier Ajout de la sortie docstring
Vous pouvez également envisager l'utilisation de Spacy: