Usaddress es una biblioteca de Python para analizar las cadenas de direcciones de los Estados Unidos no estructuradas en los componentes de la dirección, utilizando métodos NLP avanzados.
Lo que esto puede hacer: al usar un modelo probabilístico, hace conjeturas (muy educadas) para identificar componentes de dirección, incluso en casos difíciles en los que los analizadores basados en reglas generalmente se descomponen.
Lo que esto no puede hacer: no puede identificar los componentes de la dirección con una precisión perfecta, ni puede verificar que una dirección dada sea correcta/válida.
Tampoco normaliza la dirección. Sin embargo, esta biblioteca construida sobre Usaddress sí.
Una API RESTful construida sobre Usaddress para programadores que no usan Python. Requiere una clave API y los primeros 1,000 analizados son gratuitos.
Parserator: las direcciones de análisis y dividido le permiten dividir fácilmente las direcciones en columnas separadas por calle, ciudad, estado, zipcode y más correcto en las hojas de Google.
En la terminal,
pip install usaddress Tenga en cuenta que parse y tag son métodos diferentes:
import usaddress
addr = '123 Main St. Suite 100 Chicago, IL'
# The parse method will split your address string into components, and label each component.
# expected output: [(u'123', 'AddressNumber'), (u'Main', 'StreetName'), (u'St.', 'StreetNamePostType'), (u'Suite', 'OccupancyType'), (u'100', 'OccupancyIdentifier'), (u'Chicago,', 'PlaceName'), (u'IL', 'StateName')]
usaddress . parse ( addr )
# The tag method will try to be a little smarter
# it will merge consecutive components, strip commas, & return an address type
# expected output: (OrderedDict([('AddressNumber', u'123'), ('StreetName', u'Main'), ('StreetNamePostType', u'St.'), ('OccupancyType', u'Suite'), ('OccupancyIdentifier', u'100'), ('PlaceName', u'Chicago'), ('StateName', u'IL')]), 'Street Address')
usaddress . tag ( addr )Usaddress utiliza Parserator, una biblioteca para realizar y mejorar los analizadores probabilísticos, específicamente, los analizadores que utilizan la implementación de los campos aleatorios condicionales de Python -Crfsuite de los campos aleatorios condicionales. Parserator le permite capacitar al modelo de analizador Usaddress (un archivo de configuración .Crfsuite) en datos de capacitación etiquetados, y proporciona herramientas para agregar nuevos datos de capacitación etiquetados.
Para construir una versión de desarrollo de Usaddress en su máquina, ejecute el siguiente código en su línea de comando:
git clone https://github.com/datamade/usaddress.git
cd usaddress
pip install -r requirements.txt
python setup.py develop
parserator train training/labeled.xml usaddress
Luego ejecute la suite de prueba para confirmar que todo funciona correctamente:
nosetests .
¿Tiene problemas para construir el código? Abra un problema y nos alegraría ayudarlo a solucionar problemas.
Si Usaddress está fallando constantemente en patrones de dirección particulares, puede ajustar el comportamiento del analizador agregando nuevos datos de entrenamiento al modelo. ¡Siga nuestra guía en el directorio de capacitación y asegúrese de hacer una solicitud de extracción para que podamos incorporar su contribución en nuestro próximo lanzamiento!
Informar cuestiones en el rastreador de problemas
Si una dirección se analizó incorrectamente, ¡háganoslo saber! Puede abrir un problema o (si es aventurero) agregar nuevos datos de entrenamiento para mejorar el modelo de analizador. Cuando sea posible, envíe algunos ejemplos del mundo real de patrones de dirección similares, junto con cierta información sobre la fuente de los datos; esto nos ayudará a capacitar al analizador y mejorar su rendimiento.
Si algo en la biblioteca no se está comportando intuitivamente, es un error y debe informarse.
Copyright (c) 2014 Atlanta Journal Constitution. Liberado bajo la licencia MIT.