addressrec


Nameaddressrec JSON
Version 0.0.14 PyPI version JSON
download
home_page
Summary字符串智能解析,解析省市区、姓名、电话
upload_time2023-12-19 03:33:13
maintainer
docs_urlNone
author
requires_python>=3.0
license
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 地址解析识别python版本
> 👉[JavaScript版本](https://github.com/wzc570738205/smartParsePro)

项目基于[JioNLP 地址解析](https://github.com/dongrixinyu/JioNLP/wiki/Gadget-%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3#user-content-%E5%9C%B0%E5%9D%80%E8%A7%A3%E6%9E%90)来进行地址识别

地址库:[2020年国家统计局行政区划](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2020)

基于[结巴分词](https://github.com/fxsjy/jieba) 提供的分词以及语义化分析进行姓名识别

基于[Levenshtein](https://github.com/Levenshtein) 字符串相似度算法来进行详细地址过滤

# 依赖下载
python支持版本:`>=3.8`

```bash
pip3 install addressrec
```
# 使用
直接运行
```bash
import addressrec
print(addressrec.run('王志超029-68216000新疆维吾尔自治区乌鲁木齐市沙依巴克区西虹东路463号', True, False))

# addressrec(text, town_village, town_village)
# "text":"王志超029-68216000新疆维吾尔自治区乌鲁木齐市沙依巴克区西虹东路463号",
# "town_village": True, //可不传默认True 指定参数town_village(bool),可获取乡镇、村、社区两级详细地名 
# "change2new": False //可不传默认True 指定参数change2new(bool)可自动将旧地址转换为新地址
```

返回结果:
```json
{
    "city": "乌鲁木齐市",
    "county": "沙依巴克区",
    "detail": "西虹东路463号",
    "name": "王志超",
    "phone": "029-68216000",
    "province": "新疆维吾尔自治区",
    "town": "",
    "village": ""
}
```
封装为接口调用:
```python
# pip3 install flask
from flask import Flask, request, jsonify

app = Flask(__name__)
@app.route('/smart_address', methods=['POST'])
def handle_smart_address():
    data = request.get_json()

    text = data.get('text', '')
    town_village = data.get('town_village', True)
    change2new = data.get('change2new', False)
    result = smart_address(text, town_village, change2new)

    if result:
        return jsonify(result)
    else:
        return jsonify({"error": "Failed to process the request"}), 500

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=3000)

#URL: `http://127.0.0.1:3000/smart_address`
#METHOD: 'POST'
#BODY:
#{
#    "text":"王志超029-68216000新疆维吾尔自治区乌鲁木齐市沙依巴克区西虹东路463号",
#    "town_village": true, //可不传默认true 指定参数town_village(bool),可获取乡镇、村、社区两级详细地名 
#    "change2new": false //可不传默认false 指定参数change2new(bool)可自动将旧地址转换为新地址
#}
```
# 识别结果测试
```bash
广东省珠海市香洲区盘山路28号幸福茶庄,陈景勇,13593464918 识别结果:
{'city': '珠海市',
 'county': '香洲区',
 'detail': '盘山路28号幸福茶庄,,',
 'name': '陈景勇',
 'phone': '13593464918',
 'province': '广东省',
 'town': '',
 'village': ''}
-----------------
马云,陕西省西安市雁塔区丈八沟街道高新四路高新大都荟  13593464918  识别结果:
{'city': '西安市',
 'county': '雁塔区',
 'detail': '高新四路高新大都荟',
 'name': '马云',
 'phone': ' 13593464918',
 'province': '陕西省',
 'town': '丈八沟街道',
 'village': ''}
-----------------
陕西省西安市雁塔区丈八沟街道高新四路高新大都荟710061 刘国良 13593464918  识别结果:
{'city': '西安市',
 'county': '雁塔区',
 'detail': '高新四路高新大都荟710061',
 'name': '刘国良',
 'phone': ' 13593464918',
 'province': '陕西省',
 'town': '丈八沟街道',
 'village': ''}
-----------------
西安市雁塔区丈八沟街道高新四路高新大都荟710061 刘国良 13593464918  识别结果:
{'city': '西安市',
 'county': '雁塔区',
 'detail': '高新四路高新大都荟710061',
 'name': '刘国良',
 'phone': ' 13593464918',
 'province': '陕西省',
 'town': '丈八沟街道',
 'village': ''}
-----------------
雁塔区丈八沟街道高新四路高新大都荟710061 刘国良 13593464918  识别结果:
{'city': '西安市',
 'county': '雁塔区',
 'detail': '高新四路高新大都荟710061',
 'name': '刘国良',
 'phone': ' 13593464918',
 'province': '陕西省',
 'town': '丈八沟街道',
 'village': ''}
-----------------
收货人: 李节霁手机号码: 15180231234所在地区: 浙江省金华市婺城区西关街道详细地址: 金磐路上坞街 识别结果:
{'city': '金华市',
 'county': '婺城区',
 'detail': '详细地址: 金磐路上坞街',
 'name': '李节',
 'phone': ' 15180231234',
 'province': '浙江省',
 'town': '西关街道',
 'village': ''}
-----------------
收货人: 马云手机号码: 150-3569-6956详细地址: 河北省石家庄市新华区中华北大街68号鹿城商务中心6号楼1413室 识别结果:
{'city': '石家庄市',
 'county': '新华区',
 'detail': '中华北大街68号鹿城商务中心6号楼1413室',
 'name': '马云',
 'phone': ' 150-3569-6956',
 'phone1': '150-3569-6956',
 'province': '河北省',
 'town': '',
 'village': ''}
-----------------
```
#### LICENSE:[Apache License](https://github.com/wzc570738205/smartParsePro/blob/master/LICENSE)
#### IDE:致谢[JetBrains](https://www.jetbrains.com/?from=smartParsePro)为本项目提供免费license支持
[![JetBrains](http://cdn.wangzc.wang/LOGO-1.png)](https://www.jetbrains.com/?from=smartParsePro)
#### 联系我,欢迎交流
<img src="https://user-images.githubusercontent.com/33707245/211184007-971089c8-bdea-4d99-80d9-78de2fd59e01.png" width="300px">

#### qq交流群

![WX20210922-091703.png](https://cdn.wangzc.wang/uPic/WX20210922-09170315%20.png)

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "addressrec",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.0",
    "maintainer_email": "",
    "keywords": "",
    "author": "",
    "author_email": "zhichao wang <wzc570738205@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/20/ed/494c654e8e6b0d8a8618402cff1fdd80f170f0376cd9623ada0c78c858ce/addressrec-0.0.14.tar.gz",
    "platform": null,
    "description": "# \u5730\u5740\u89e3\u6790\u8bc6\u522bpython\u7248\u672c\n> \ud83d\udc49[JavaScript\u7248\u672c](https://github.com/wzc570738205/smartParsePro)\n\n\u9879\u76ee\u57fa\u4e8e[JioNLP \u5730\u5740\u89e3\u6790](https://github.com/dongrixinyu/JioNLP/wiki/Gadget-%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3#user-content-%E5%9C%B0%E5%9D%80%E8%A7%A3%E6%9E%90)\u6765\u8fdb\u884c\u5730\u5740\u8bc6\u522b\n\n\u5730\u5740\u5e93\uff1a[2020\u5e74\u56fd\u5bb6\u7edf\u8ba1\u5c40\u884c\u653f\u533a\u5212](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2020)\n\n\u57fa\u4e8e[\u7ed3\u5df4\u5206\u8bcd](https://github.com/fxsjy/jieba) \u63d0\u4f9b\u7684\u5206\u8bcd\u4ee5\u53ca\u8bed\u4e49\u5316\u5206\u6790\u8fdb\u884c\u59d3\u540d\u8bc6\u522b\n\n\u57fa\u4e8e[Levenshtein](https://github.com/Levenshtein) \u5b57\u7b26\u4e32\u76f8\u4f3c\u5ea6\u7b97\u6cd5\u6765\u8fdb\u884c\u8be6\u7ec6\u5730\u5740\u8fc7\u6ee4\n\n# \u4f9d\u8d56\u4e0b\u8f7d\npython\u652f\u6301\u7248\u672c\uff1a`>=3.8`\n\n```bash\npip3 install addressrec\n```\n# \u4f7f\u7528\n\u76f4\u63a5\u8fd0\u884c\n```bash\nimport addressrec\nprint(addressrec.run('\u738b\u5fd7\u8d85029-68216000\u65b0\u7586\u7ef4\u543e\u5c14\u81ea\u6cbb\u533a\u4e4c\u9c81\u6728\u9f50\u5e02\u6c99\u4f9d\u5df4\u514b\u533a\u897f\u8679\u4e1c\u8def463\u53f7', True, False))\n\n# addressrec(text, town_village, town_village)\n# \"text\":\"\u738b\u5fd7\u8d85029-68216000\u65b0\u7586\u7ef4\u543e\u5c14\u81ea\u6cbb\u533a\u4e4c\u9c81\u6728\u9f50\u5e02\u6c99\u4f9d\u5df4\u514b\u533a\u897f\u8679\u4e1c\u8def463\u53f7\",\n# \"town_village\": True, //\u53ef\u4e0d\u4f20\u9ed8\u8ba4True \u6307\u5b9a\u53c2\u6570town_village(bool)\uff0c\u53ef\u83b7\u53d6\u4e61\u9547\u3001\u6751\u3001\u793e\u533a\u4e24\u7ea7\u8be6\u7ec6\u5730\u540d \n# \"change2new\": False //\u53ef\u4e0d\u4f20\u9ed8\u8ba4True \u6307\u5b9a\u53c2\u6570change2new(bool)\u53ef\u81ea\u52a8\u5c06\u65e7\u5730\u5740\u8f6c\u6362\u4e3a\u65b0\u5730\u5740\n```\n\n\u8fd4\u56de\u7ed3\u679c\uff1a\n```json\n{\n    \"city\": \"\u4e4c\u9c81\u6728\u9f50\u5e02\",\n    \"county\": \"\u6c99\u4f9d\u5df4\u514b\u533a\",\n    \"detail\": \"\u897f\u8679\u4e1c\u8def463\u53f7\",\n    \"name\": \"\u738b\u5fd7\u8d85\",\n    \"phone\": \"029-68216000\",\n    \"province\": \"\u65b0\u7586\u7ef4\u543e\u5c14\u81ea\u6cbb\u533a\",\n    \"town\": \"\",\n    \"village\": \"\"\n}\n```\n\u5c01\u88c5\u4e3a\u63a5\u53e3\u8c03\u7528\uff1a\n```python\n# pip3 install flask\nfrom flask import Flask, request, jsonify\n\napp = Flask(__name__)\n@app.route('/smart_address', methods=['POST'])\ndef handle_smart_address():\n    data = request.get_json()\n\n    text = data.get('text', '')\n    town_village = data.get('town_village', True)\n    change2new = data.get('change2new', False)\n    result = smart_address(text, town_village, change2new)\n\n    if result:\n        return jsonify(result)\n    else:\n        return jsonify({\"error\": \"Failed to process the request\"}), 500\n\nif __name__ == '__main__':\n    app.run(host='0.0.0.0', port=3000)\n\n#URL: `http://127.0.0.1:3000/smart_address`\n#METHOD: 'POST'\n#BODY:\n#{\n#    \"text\":\"\u738b\u5fd7\u8d85029-68216000\u65b0\u7586\u7ef4\u543e\u5c14\u81ea\u6cbb\u533a\u4e4c\u9c81\u6728\u9f50\u5e02\u6c99\u4f9d\u5df4\u514b\u533a\u897f\u8679\u4e1c\u8def463\u53f7\",\n#    \"town_village\": true, //\u53ef\u4e0d\u4f20\u9ed8\u8ba4true \u6307\u5b9a\u53c2\u6570town_village(bool)\uff0c\u53ef\u83b7\u53d6\u4e61\u9547\u3001\u6751\u3001\u793e\u533a\u4e24\u7ea7\u8be6\u7ec6\u5730\u540d \n#    \"change2new\": false //\u53ef\u4e0d\u4f20\u9ed8\u8ba4false \u6307\u5b9a\u53c2\u6570change2new(bool)\u53ef\u81ea\u52a8\u5c06\u65e7\u5730\u5740\u8f6c\u6362\u4e3a\u65b0\u5730\u5740\n#}\n```\n# \u8bc6\u522b\u7ed3\u679c\u6d4b\u8bd5\n```bash\n\u5e7f\u4e1c\u7701\u73e0\u6d77\u5e02\u9999\u6d32\u533a\u76d8\u5c71\u8def28\u53f7\u5e78\u798f\u8336\u5e84,\u9648\u666f\u52c7\uff0c13593464918 \u8bc6\u522b\u7ed3\u679c\uff1a\n{'city': '\u73e0\u6d77\u5e02',\n 'county': '\u9999\u6d32\u533a',\n 'detail': '\u76d8\u5c71\u8def28\u53f7\u5e78\u798f\u8336\u5e84,\uff0c',\n 'name': '\u9648\u666f\u52c7',\n 'phone': '13593464918',\n 'province': '\u5e7f\u4e1c\u7701',\n 'town': '',\n 'village': ''}\n-----------------\n\u9a6c\u4e91\uff0c\u9655\u897f\u7701\u897f\u5b89\u5e02\u96c1\u5854\u533a\u4e08\u516b\u6c9f\u8857\u9053\u9ad8\u65b0\u56db\u8def\u9ad8\u65b0\u5927\u90fd\u835f  13593464918  \u8bc6\u522b\u7ed3\u679c\uff1a\n{'city': '\u897f\u5b89\u5e02',\n 'county': '\u96c1\u5854\u533a',\n 'detail': '\u9ad8\u65b0\u56db\u8def\u9ad8\u65b0\u5927\u90fd\u835f',\n 'name': '\u9a6c\u4e91',\n 'phone': ' 13593464918',\n 'province': '\u9655\u897f\u7701',\n 'town': '\u4e08\u516b\u6c9f\u8857\u9053',\n 'village': ''}\n-----------------\n\u9655\u897f\u7701\u897f\u5b89\u5e02\u96c1\u5854\u533a\u4e08\u516b\u6c9f\u8857\u9053\u9ad8\u65b0\u56db\u8def\u9ad8\u65b0\u5927\u90fd\u835f710061 \u5218\u56fd\u826f 13593464918  \u8bc6\u522b\u7ed3\u679c\uff1a\n{'city': '\u897f\u5b89\u5e02',\n 'county': '\u96c1\u5854\u533a',\n 'detail': '\u9ad8\u65b0\u56db\u8def\u9ad8\u65b0\u5927\u90fd\u835f710061',\n 'name': '\u5218\u56fd\u826f',\n 'phone': ' 13593464918',\n 'province': '\u9655\u897f\u7701',\n 'town': '\u4e08\u516b\u6c9f\u8857\u9053',\n 'village': ''}\n-----------------\n\u897f\u5b89\u5e02\u96c1\u5854\u533a\u4e08\u516b\u6c9f\u8857\u9053\u9ad8\u65b0\u56db\u8def\u9ad8\u65b0\u5927\u90fd\u835f710061 \u5218\u56fd\u826f 13593464918  \u8bc6\u522b\u7ed3\u679c\uff1a\n{'city': '\u897f\u5b89\u5e02',\n 'county': '\u96c1\u5854\u533a',\n 'detail': '\u9ad8\u65b0\u56db\u8def\u9ad8\u65b0\u5927\u90fd\u835f710061',\n 'name': '\u5218\u56fd\u826f',\n 'phone': ' 13593464918',\n 'province': '\u9655\u897f\u7701',\n 'town': '\u4e08\u516b\u6c9f\u8857\u9053',\n 'village': ''}\n-----------------\n\u96c1\u5854\u533a\u4e08\u516b\u6c9f\u8857\u9053\u9ad8\u65b0\u56db\u8def\u9ad8\u65b0\u5927\u90fd\u835f710061 \u5218\u56fd\u826f 13593464918  \u8bc6\u522b\u7ed3\u679c\uff1a\n{'city': '\u897f\u5b89\u5e02',\n 'county': '\u96c1\u5854\u533a',\n 'detail': '\u9ad8\u65b0\u56db\u8def\u9ad8\u65b0\u5927\u90fd\u835f710061',\n 'name': '\u5218\u56fd\u826f',\n 'phone': ' 13593464918',\n 'province': '\u9655\u897f\u7701',\n 'town': '\u4e08\u516b\u6c9f\u8857\u9053',\n 'village': ''}\n-----------------\n\u6536\u8d27\u4eba: \u674e\u8282\u9701\u624b\u673a\u53f7\u7801: 15180231234\u6240\u5728\u5730\u533a: \u6d59\u6c5f\u7701\u91d1\u534e\u5e02\u5a7a\u57ce\u533a\u897f\u5173\u8857\u9053\u8be6\u7ec6\u5730\u5740: \u91d1\u78d0\u8def\u4e0a\u575e\u8857 \u8bc6\u522b\u7ed3\u679c\uff1a\n{'city': '\u91d1\u534e\u5e02',\n 'county': '\u5a7a\u57ce\u533a',\n 'detail': '\u8be6\u7ec6\u5730\u5740: \u91d1\u78d0\u8def\u4e0a\u575e\u8857',\n 'name': '\u674e\u8282',\n 'phone': ' 15180231234',\n 'province': '\u6d59\u6c5f\u7701',\n 'town': '\u897f\u5173\u8857\u9053',\n 'village': ''}\n-----------------\n\u6536\u8d27\u4eba: \u9a6c\u4e91\u624b\u673a\u53f7\u7801: 150-3569-6956\u8be6\u7ec6\u5730\u5740: \u6cb3\u5317\u7701\u77f3\u5bb6\u5e84\u5e02\u65b0\u534e\u533a\u4e2d\u534e\u5317\u5927\u885768\u53f7\u9e7f\u57ce\u5546\u52a1\u4e2d\u5fc36\u53f7\u697c1413\u5ba4 \u8bc6\u522b\u7ed3\u679c\uff1a\n{'city': '\u77f3\u5bb6\u5e84\u5e02',\n 'county': '\u65b0\u534e\u533a',\n 'detail': '\u4e2d\u534e\u5317\u5927\u885768\u53f7\u9e7f\u57ce\u5546\u52a1\u4e2d\u5fc36\u53f7\u697c1413\u5ba4',\n 'name': '\u9a6c\u4e91',\n 'phone': ' 150-3569-6956',\n 'phone1': '150-3569-6956',\n 'province': '\u6cb3\u5317\u7701',\n 'town': '',\n 'village': ''}\n-----------------\n```\n#### LICENSE\uff1a[Apache License](https://github.com/wzc570738205/smartParsePro/blob/master/LICENSE)\n#### IDE:\u81f4\u8c22[JetBrains](https://www.jetbrains.com/?from=smartParsePro)\u4e3a\u672c\u9879\u76ee\u63d0\u4f9b\u514d\u8d39license\u652f\u6301\n[![JetBrains](http://cdn.wangzc.wang/LOGO-1.png)](https://www.jetbrains.com/?from=smartParsePro)\n#### \u8054\u7cfb\u6211\uff0c\u6b22\u8fce\u4ea4\u6d41\n<img src=\"https://user-images.githubusercontent.com/33707245/211184007-971089c8-bdea-4d99-80d9-78de2fd59e01.png\" width=\"300px\">\n\n#### qq\u4ea4\u6d41\u7fa4\n\n![WX20210922-091703.png](https://cdn.wangzc.wang/uPic/WX20210922-09170315%20.png)\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "\u5b57\u7b26\u4e32\u667a\u80fd\u89e3\u6790\uff0c\u89e3\u6790\u7701\u5e02\u533a\u3001\u59d3\u540d\u3001\u7535\u8bdd",
    "version": "0.0.14",
    "project_urls": {
        "Source": "https://github.com/wzc570738205/smartParsePro-py"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7d772a55961b4051e29410db707c87610d98b64caf74f67e21ce2b89e59ccaa4",
                "md5": "b1f01d2da87cf1a74399b05511a3dea5",
                "sha256": "58aec4ae06bc82c98f4cabef51aa921092ccd9e10aebb0e065c46d9789f88a85"
            },
            "downloads": -1,
            "filename": "addressrec-0.0.14-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b1f01d2da87cf1a74399b05511a3dea5",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.0",
            "size": 9122,
            "upload_time": "2023-12-19T03:33:11",
            "upload_time_iso_8601": "2023-12-19T03:33:11.213349Z",
            "url": "https://files.pythonhosted.org/packages/7d/77/2a55961b4051e29410db707c87610d98b64caf74f67e21ce2b89e59ccaa4/addressrec-0.0.14-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "20ed494c654e8e6b0d8a8618402cff1fdd80f170f0376cd9623ada0c78c858ce",
                "md5": "bb6db737f94ebcb6771e73865067836c",
                "sha256": "51f44b6c72884f29ef50e002fe82187c5b2d89e37295f463603316c3a94140d8"
            },
            "downloads": -1,
            "filename": "addressrec-0.0.14.tar.gz",
            "has_sig": false,
            "md5_digest": "bb6db737f94ebcb6771e73865067836c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.0",
            "size": 8845,
            "upload_time": "2023-12-19T03:33:13",
            "upload_time_iso_8601": "2023-12-19T03:33:13.032593Z",
            "url": "https://files.pythonhosted.org/packages/20/ed/494c654e8e6b0d8a8618402cff1fdd80f170f0376cd9623ada0c78c858ce/addressrec-0.0.14.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-12-19 03:33:13",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "wzc570738205",
    "github_project": "smartParsePro-py",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "addressrec"
}
        
Elapsed time: 0.17481s