跳转到主要内容

使用条件随机字段解析美国地址

项目描述

usaddress

usaddress是一个Python库,用于将无结构的美国地址字符串解析成地址组件,使用高级NLP方法。

它能做什么: 使用概率模型,它甚至能在规则解析器通常失败的复杂情况下进行(非常明智的)猜测。

它不能做什么: 它不能以完美准确率识别地址组件,也不能验证给定地址的正确性/有效性。

它也不对地址进行标准化。然而,此基于usaddress构建的库做到了。

使用usaddress构建的工具

Parserator API

一个基于usaddress的RESTful API,为不使用Python的程序员构建。需要API密钥,前1000次解析免费。

Parserator Google Sheets应用程序

Parserator:解析和分割地址,允许您在Google Sheets中轻松地将地址按街道、城市、州、邮编等分割到单独的列中。

如何使用usaddress Python库

  1. 使用pip安装usaddress,pip是安装和管理Python包的工具(初学者指南在这里)。

在终端中,

pip install usaddress
  1. 解析一些地址!

usaddress

请注意,parsetag是不同的方法

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使用parserator,这是一个用于创建和改进概率解析器的库——具体来说,是使用python-crfsuite的条件下随机字段实现的解析器。Parserator允许您在标记的训练数据上训练usaddress解析器的模型(.crfsuite设置文件),并提供添加新标记训练数据的工具。

构建和测试此存储库中的代码

要在您的计算机上构建usaddress的开发版本,请在命令行中运行以下代码

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  

然后运行测试套件以确认一切正常工作

nosetests .

在构建代码时遇到问题?打开一个问题,我们将很乐意帮助您进行故障排除。

添加新的训练数据

如果usaddress在特定地址模式上持续失败,您可以通过向模型添加新的训练数据来调整解析器的行为。按照训练目录中的指南操作,并确保提交一个拉取请求,这样我们就可以将您的贡献纳入我们的下一个版本!

重要链接

团队

错误的解析/错误

问题跟踪器中报告问题

如果地址解析错误,请告诉我们!您可以选择打开一个问题或(如果您喜欢冒险)添加新的训练数据以改进解析器的模型。在可能的情况下,请发送一些类似地址模式的实际世界示例,以及一些关于数据来源的信息——这有助于我们训练解析器并提高其性能。

如果库中的某个功能不符合直观,那么它是一个错误,应该报告。

有关补丁/拉取请求的说明

  • 复制项目。
  • 制作您的功能添加或错误修复。
  • 发送给我们一个拉取请求。主题分支将获得加分!

版权

版权所有(c)2014 亚特兰大日报宪法。在MIT 许可证下发布。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

usaddress-0.5.11.tar.gz (911.8 kB 查看哈希值)

上传时间 源代码

构建分发

usaddress-0.5.11-py3-none-any.whl (67.9 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页