Python >> Tutoriel Python >  >> Python Tag >> NLTK

Comment puis-je extraire l'adresse du texte brut en utilisant NLTK en python ?

Certainement des expressions régulières :)

Quelque chose comme

import re

txt = ...
regexp = "[0-9]{1,3} .+, .+, [A-Z]{2} [0-9]{5}"
address = re.findall(regexp, txt)

# address = ['44 West 22nd Street, New York, NY 12345']

Explication :

[0-9]{1,3} :1 à 3 chiffres, le numéro d'adresse

(space) :un espace entre le numéro et le nom de la rue

.+ :nom de la rue, n'importe quel caractère pour n'importe quel nombre d'occurrences

, :une virgule et un espace avant la ville

.+ :ville, n'importe quel caractère pour n'importe quel nombre d'occurrences

, :une virgule et un espace avant l'état

[A-Z]{2} :exactement 2 caractères majuscules de A à Z

[0-9]{5} :5 chiffres

re.findall(expr, string) renverra un tableau avec toutes les occurrences trouvées.


Pyap fonctionne mieux non seulement pour cet exemple particulier, mais également pour d'autres adresses contenues dans des textes.

text = ...
addresses = pyap.parse(text, country='US')

Découvrez libpostal, une librairie dédiée à l'extraction d'adresses

Il ne peut pas extraire l'adresse du texte brut mais peut aider dans les tâches connexes