使用条件随机字段解析美国地址
项目描述
usaddress
usaddress是一个Python库,用于将无结构的美国地址字符串解析成地址组件,使用高级NLP方法。
它能做什么: 使用概率模型,它甚至能在规则解析器通常失败的复杂情况下进行(非常明智的)猜测。
它不能做什么: 它不能以完美准确率识别地址组件,也不能验证给定地址的正确性/有效性。
它也不对地址进行标准化。然而,此基于usaddress构建的库做到了。
使用usaddress构建的工具
Parserator API
一个基于usaddress的RESTful API,为不使用Python的程序员构建。需要API密钥,前1000次解析免费。
Parserator Google Sheets应用程序
Parserator:解析和分割地址,允许您在Google Sheets中轻松地将地址按街道、城市、州、邮编等分割到单独的列中。
如何使用usaddress Python库
在终端中,
pip install usaddress
- 解析一些地址!
请注意,parse
和tag
是不同的方法
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在特定地址模式上持续失败,您可以通过向模型添加新的训练数据来调整解析器的行为。按照训练目录中的指南操作,并确保提交一个拉取请求,这样我们就可以将您的贡献纳入我们的下一个版本!
重要链接
- 网络界面:https://parserator.datamade.us/usaddress
- Python包分发:https://pypi.python.org/pypi/usaddress
- Python包文档:https://usaddress.readthedocs.io/
- API文档:https://parserator.datamade.us/api-docs
- 存储库:https://github.com/datamade/usaddress
- 问题:https://github.com/datamade/usaddress/issues
- 博客文章:http://datamade.us/blog/parsing-addresses-with-usaddress
团队
- Forest Gregg,DataMade
- Cathy Deng,DataMade
- Miroslav Batchkarov,苏塞克斯大学
- Jean Cochrane,DataMade
错误的解析/错误
在问题跟踪器中报告问题
如果地址解析错误,请告诉我们!您可以选择打开一个问题或(如果您喜欢冒险)添加新的训练数据以改进解析器的模型。在可能的情况下,请发送一些类似地址模式的实际世界示例,以及一些关于数据来源的信息——这有助于我们训练解析器并提高其性能。
如果库中的某个功能不符合直观,那么它是一个错误,应该报告。
有关补丁/拉取请求的说明
- 复制项目。
- 制作您的功能添加或错误修复。
- 发送给我们一个拉取请求。主题分支将获得加分!
版权
版权所有(c)2014 亚特兰大日报宪法。在MIT 许可证下发布。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分发
构建分发
usaddress-0.5.11.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | eec4c473b94e2a29350ee335f18bac7fe4fa698e08271211dad5fed63bdd3e60 |
|
MD5 | 28c0b79d12e97e2eaf2a42e0b784c64a |
|
BLAKE2b-256 | 9e7380d6a137655c431404d3179ba104a9807f339bbb55ca18a156d6840b09ed |
usaddress-0.5.11-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a745be0ff0c525d64463f19f2ec798bb1679a9bb6864b0d9a8b9054023f683b5 |
|
MD5 | 93ea416ba69756817767acfb4511a6b7 |
|
BLAKE2b-256 | 3b41884d67e033e238788c876c608dc2ec195e2cba313d34016b58400763269f |