All Projects → PyUnit → pyunit-address

PyUnit / pyunit-address

Licence: other
字符串地址查询,支持自定义地址词库,解析地址,地址识别,地址抽取,中文地址.

Programming Languages

python
139335 projects - #7 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to pyunit-address

ethereum-checksum-address
Convert Ethereum address to a checksummed address
Stars: ✭ 20 (-71.43%)
Mutual labels:  address
ReadWordTable
使用poi解析word文档(.docx)中的表格内容及格式,并以html形式输出
Stars: ✭ 26 (-62.86%)
Mutual labels:  word
latex in word
LaTeX equation edition in a macro-enabled Word document
Stars: ✭ 29 (-58.57%)
Mutual labels:  word
officeexport-java
三行代码导出自定义样式word
Stars: ✭ 68 (-2.86%)
Mutual labels:  word
wordroller
Free Microsoft Word document (aka .docx) processing library for .Net
Stars: ✭ 17 (-75.71%)
Mutual labels:  word
addressr
Free Australian Address Validation, Search and Autocomplete
Stars: ✭ 46 (-34.29%)
Mutual labels:  address
ToolTipPopupWordTV
ToolTipopupWordTV is an Open Source Android library that allows developers to easily open a popup with details by select a word from a textview.
Stars: ✭ 41 (-41.43%)
Mutual labels:  word
awesome-spacer
Automatic Korean word spacing with TensorFlow 2.0 + Keras
Stars: ✭ 42 (-40%)
Mutual labels:  word
address-index-api
Address Index is an application which resolves addresses
Stars: ✭ 26 (-62.86%)
Mutual labels:  address
cashaddress
Python tool for convert bitcoin cash legacy addresses
Stars: ✭ 40 (-42.86%)
Mutual labels:  address
react-thailand-address-typeahead
jquery.Thailand.js in React
Stars: ✭ 78 (+11.43%)
Mutual labels:  address
wipri
(Network Metadata Privacy) MAC Address spoofer with bonus combo (options): hostname + signal spoofer - *no disconnects!* Privacy Changing w/Brand Mimics: run as command or optional new randomized identity each boot; includes flags for continually changing random times/changing valid OUI addresses + Hostname randomizer + Device/Signal/location an…
Stars: ✭ 26 (-62.86%)
Mutual labels:  address
translate english
Java程序员阅读源码必知英语单词
Stars: ✭ 24 (-65.71%)
Mutual labels:  word
flutter filereader
Flutter实现的本地文件(pdf word excel 等)查看插件,非在线预览
Stars: ✭ 101 (+44.29%)
Mutual labels:  word
ViaCEP
The ViaCEP API/webservice .NET client
Stars: ✭ 21 (-70%)
Mutual labels:  address
python-censusbatchgeocoder
A simple Python wrapper for U.S. Census Geocoding Services API batch service
Stars: ✭ 40 (-42.86%)
Mutual labels:  address
m2.ShowAddressFields
Magento2. Show Address Fields in Customer Registration Form.
Stars: ✭ 17 (-75.71%)
Mutual labels:  address
filefy
A javascript library to produce downloadable files such as in CSV, PDF, XLSX, DOCX formats
Stars: ✭ 39 (-44.29%)
Mutual labels:  word
aspose-words-cloud-node
Node.Js library for communicating with the Aspose.Words Cloud API
Stars: ✭ 20 (-71.43%)
Mutual labels:  word
WantWords
An open-source online reverse dictionary.
Stars: ✭ 6,187 (+8738.57%)
Mutual labels:  word

PyUnit-Address

字符串地址查询,支持自定义地址词库

安装

pip install pyunit-address

说明

该算法有两个词库,一个是全国五级地址,统计时间是2019年。这个地址库是默认加载。不能删除也不能替换。
如果需要提取非规则的地址,则实用深度模型:  https://github.com/PyUnit/pyunit-ner
建议两者一起使用,互相补足。

测试

from pyunit_address import *
import time

address = Address(is_max_address=True)
address.add_vague_text(['红花岗', '花溪'])  # 加入地址名称
address.add_vague_text('贵州省-遵义市-遵义县-虾子镇-乐安村-乐石台')  # 加入一串有顺序的地址
address.add_vague_text('自定义词库.txt')  # 加载词库文件,词库文件中的每一行,可以是一串顺序地址,也可以是一个地址


def all_test():
    string_ = '我家在红花岗,你家在贵州贵阳花溪区,他家在贵州省遵义市花溪区'
    finds = find_address(address, string_)
    for find in finds:
        print()
        print('地址', find)
        print('补全地址', supplement_address(address, find))
        print('纠错地址', correct_address(address, find))
        print('--------------------------')


# 地址 红花岗
# 补全地址 ['贵州省-遵义市-红花岗区']
# 纠错地址 贵州省-遵义市-红花岗区
# --------------------------
# 
# 地址 贵州贵阳花溪区
# 补全地址 ['贵州省-贵阳市-花溪区']
# 纠错地址 贵州省-贵阳市-花溪区
# --------------------------
# 
# 地址 贵州省遵义市花溪区            注:这个地址是错误的
# 补全地址 []                      注:错误的地址无法补全
# 纠错地址 贵州省-贵阳市-花溪区      注:错误的地址被纠正为对的地址
# --------------------------


if __name__ == '__main__':
    start = time.time()
    all_test()
    print(time.time() - start)  # 0.0002001047134399414秒

查询地址

from pyunit_address import Address, find_address


def test():
    address = Address(is_max_address=True)

    # 添加词库,可以是一个字符串、可以是列表字符串、可以是词库文件,一个词语占一行
    address.add_vague_text('红花岗')  # 在默认词库上追加地址词库
    address.add_vague_text('贵州省-遵义市-遵义县-虾子镇-乐安村')  # 添加补全地址
    address.add_vague_text(['花溪', '贵州省-遵义市-遵义县-虾子镇-乐安村'])  # 加载词库列表,替换默认词库
    address.add_vague_text('自定义词库.txt')  # 加载词库文件,替换默认词库
    af = find_address(address, '我家在贵州遵义红花岗区')
    print(af)


if __name__ == '__main__':
    test()

自动补全地址:输入一句话

from pyunit_address import Address, supplement_address


def test_supplement_address():
    address = Address(is_max_address=True)
    asu = supplement_address(address, '我家在遵义县')  # [贵州省-遵义市-遵义县]
    print(asu)


if __name__ == '__main__':
    test_supplement_address()

自动纠正地址

from pyunit_address import Address, correct_address


def correct_address_test():
    address = Address(is_max_address=True)
    print(correct_address(address, '贵州省遵义市花溪区'))  # 贵州省-贵阳市-花溪区


if __name__ == '__main__':
    correct_address_test()

Docker部署

docker pull jtyoui/pyunit-address
docker run -d -P pyunit-time

Swagger在线api文档

http://localhost:xxx/docs

寻找地址的请求参数

参数名 类型 是否可以为空 说明
data string YES 输入一句带有地址的句子

请求示例

Python3 Requests测试

import requests

url = "http://127.0.0.1:2312/pyunit/address/find"
data = {
    'data': '我家在贵州龙里'
}
response = requests.get(url, params=data).json()
print(response)

返回结果

{
  "code": 200,
  "result": [
    {
      "address": "龙里",
      "correct_address": "贵州省-黔南布依族苗族自治州-龙里县",
      "supplement_address": [
        {
          "key": "贵州省-黔南布依族苗族自治州-龙里县"
        }
      ],
      "type": "区县"
    }
  ]
}

增加地址词库请求参数

参数名 类型 是否可以为空 说明
data string YES 输入一句带有地址的句子

请求示例

Python3 Requests测试

import json
import requests

url = "http://127.0.0.1:2312/pyunit/address/add"
data = {
    'data': json.dumps(['贵州省-贵阳市-观山湖区-观山湖公园', '金融大街', '小吃城'])
}
response = requests.get(url, params=data).json()
print(response)

删除地址词库请求参数

参数名 类型 是否可以为空 说明
data string YES 输入一句带有地址的句子

请求示例

Python3 Requests测试

import json

import requests

url = "http://127.0.0.1:2312/pyunit/address/del"
data = {
    'data': json.dumps(['金融大街', '小吃城']),
}
response = requests.get(url, params=data).json()
print(response)

返回结果

{
  "code": 200,
  "result": "del success"
}

TODO

  • 自动寻找最长地址长度
  • 全国五级地址新词库
  • 支持自定义地址词库
  • 不支持非规则地址
  • 支持地址自动补全
  • 支持快速高效搜索
  • 支持纠错地址

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].