Skip to content

Commit

Permalink
update 1.2.17 优化排序算法,增加识别精度
Browse files Browse the repository at this point in the history
  • Loading branch information
asseek authored and asseek committed Sep 25, 2021
1 parent 7373791 commit 6c57109
Show file tree
Hide file tree
Showing 10 changed files with 32 additions and 22 deletions.
1 change: 1 addition & 0 deletions dist/area.js
Original file line number Diff line number Diff line change
Expand Up @@ -1690,6 +1690,7 @@ var data = {
'361030': '广昌县',
'361102': '信州区',
'361103': '广丰区',
'361104': '广信区',
'361121': '上饶县',
'361123': '玉山县',
'361124': '铅山县',
Expand Down
2 changes: 1 addition & 1 deletion dist/bundle.js

Large diffs are not rendered by default.

7 changes: 5 additions & 2 deletions dist/parse/parse-area.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ var ProvinceKeys = ['特别行政区', '古自治区', '维吾尔自治区', '

var CityKeys = ['布依族苗族自治州', '苗族侗族自治州', '藏族羌族自治州', '哈尼族彝族自治州', '壮族苗族自治州', '傣族景颇族自治州', '蒙古族藏族自治州', '傣族自治州', '白族自治州', '藏族自治州', '彝族自治州', '回族自治州', '蒙古自治州', '朝鲜族自治州', '地区', '哈萨克自治州', '盟', '市'];

var AreaKeys = ['满族自治县', '满族蒙古族自治县', '蒙古族自治县', '朝鲜族自治县', '回族彝族自治县', '彝族回族苗族自治县', '彝族苗族自治县', '土家族苗族自治县', '布依族苗族自治县', '苗族布依族自治县', '彝族傣族自治县', '傣族彝族自治县', '仡佬族苗族自治县', '黎族苗族自治县', '苗族侗族自治县', '哈尼族彝族傣族自治县', '哈尼族彝族自治县', '彝族哈尼族拉祜族自治县', '傣族拉祜族佤族自治县', '傣族佤族自治县', '拉祜族佤族布朗族傣族自治县', '苗族瑶族傣族自治县', '彝族回族自治县', '独龙族怒族自治县', '保安族东乡族撒拉族自治县', '回族土族自治县', '撒拉族自治县', '哈萨克自治县', '塔吉克自治县', '回族自治县', '畲族自治县', '土家族自治县', '布依族自治县', '苗族自治县', '瑶族自治县', '侗族自治县', '水族自治县', '傈僳族自治县', '仫佬族自治县', '毛南族自治县', '黎族自治县', '羌族自治县', '彝族自治县', '藏族自治县', '纳西族自治县', '裕固族自治县', '哈萨克族自治县', '哈尼族自治县', '拉祜族自治县', '佤族自治县', '达斡尔族区', '达斡尔族自治旗', '左旗', '右旗', '中旗', '后旗', '联合旗', '自治旗', '旗', '自治县', '街道办事处', '新区', '区', '县', '市'];
var AreaKeys = ['满族自治县', '满族蒙古族自治县', '蒙古族自治县', '朝鲜族自治县', '回族彝族自治县', '彝族回族苗族自治县', '彝族苗族自治县', '土家族苗族自治县', '布依族苗族自治县', '苗族布依族自治县', '苗族土家族自治县', '彝族傣族自治县', '傣族彝族自治县', '仡佬族苗族自治县', '黎族苗族自治县', '苗族侗族自治县', '哈尼族彝族傣族自治县', '哈尼族彝族自治县', '彝族哈尼族拉祜族自治县', '傣族拉祜族佤族自治县', '傣族佤族自治县', '拉祜族佤族布朗族傣族自治县', '苗族瑶族傣族自治县', '彝族回族自治县', '独龙族怒族自治县', '保安族东乡族撒拉族自治县', '回族土族自治县', '撒拉族自治县', '哈萨克自治县', '塔吉克自治县', '回族自治县', '畲族自治县', '土家族自治县', '布依族自治县', '苗族自治县', '瑶族自治县', '侗族自治县', '水族自治县', '傈僳族自治县', '仫佬族自治县', '毛南族自治县', '黎族自治县', '羌族自治县', '彝族自治县', '藏族自治县', '纳西族自治县', '裕固族自治县', '哈萨克族自治县', '哈尼族自治县', '拉祜族自治县', '佤族自治县', '达斡尔族区', '达斡尔族自治旗', '左旗', '右旗', '中旗', '后旗', '联合旗', '自治旗', '旗', '自治县', '街道办事处', '新区', '区', '县', '市'];

var ParseArea = function () {
_createClass(ParseArea, null, [{
Expand Down Expand Up @@ -145,6 +145,8 @@ var ParseArea = function () {

if (result.area && _address.includes(result.area)) {
result.__parse += 1;
} else if (result.area && _address.includes(result.area.substr(0, 2))) {
result.__parse += 0.5;
}
}
}
Expand Down Expand Up @@ -774,8 +776,9 @@ var ParseArea = function () {
break;
}
}

if (shortArea && address.charAt(index + areaLength) === '县') index += 1;
address = address.substr(index + areaLength);

if (_provinceName || _cityName) {
result.__parse = true;
break;
Expand Down
2 changes: 1 addition & 1 deletion dist/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ function getAllAreaTestList() {
};
}

var list = [['福建省福州市福清市石竹街道义明综合楼3F,15000000000,asseek', '350181'], ['福建省福清市石竹街道义明综合楼3F,15000000000,asseek', '350181'], ['福州市福清市石竹街道义明综合楼3F,15000000000,asseek', '350181'], ['福清市石竹街道义明综合楼3F,15000000000,asseek', '350181'], ['浙江省温州市乐清柳市镇', '330382'], ['李xx 13512222322 广西壮族自治区 桂林市 恭城瑶族自治县 恭城镇拱辰东路xx-xx号', '450332'], ['李xx 13512222222 恭城 恭城镇拱辰东路08-88号', '450332'], ['四川成都高新区天府大道中段530号东方希望天祥广场a座4302号北京万商天勤(成都)律师事务所', '510191'], '房pp,18263333333,山东省 德州市 乐陵市 市中街道怡然居小区,253600', ['张y,18802222222,黑龙江省 哈尔滨市 道里区 经纬街道经纬七道街,000000', { name: '张y' }], ['深圳市龙华新区民治街道办民乐新村。陆xg15822222222', { name: '陆xg' }], '张l,15222222222,内蒙古自治区 呼和浩特市 和林格尔县 盛乐经济工业园区内蒙古师范大学盛乐校区十三号楼,011500', ['张l,15222222222,和林格尔 盛乐经济工业园区内蒙古师范大学盛乐校区十三号楼,011500', '150123'], '上海市徐汇区 复兴中路1237号 5楼WeWork 200010 柚子', ['龙湖区黄山路潮华雅居10栋000房 肖小姐', { code: '440507', name: '肖小姐' }], ['西安市雁塔区丈八东路晶城秀府7号楼2单元 李飞', { code: '610113', name: '李飞' }], ['湖北省安陆市西亚小铺,文元13377777788', { code: '420982', name: '文元' }], ['福建宁德福鼎太姥山镇岭后路。 丹', { code: '350982', name: '丹' }], ['南京市雨花区小行路58号名城世家花园', '320114'], ['四川省阆中市', '511381'], ['北京市市辖区东城区嘿嘿 嘿嘿 18031491271', { code: '110101', name: '嘿嘿' }], ['福建省福州市福清市台江公寓', '350181'], ['山东省青岛市平度市南村镇亭兰 张13668888888', { code: '370283', name: '张' }], ['佛山市南海区盐步 穗盐路景裕嘉园1期 13609770999 大旋仔', { name: '大旋仔' }], ['广东省 东莞市 东城街道', { details: '', code: '441916' }], ['山东省青岛平度市南村镇', '370283'], ['重庆市县城口县', '500229'], ['上海 上海市 浦东区 asd,大liu, ', '310115'], ['吐鲁番市吐鲁番宾馆', '650400'], ['新疆伊宁市上海城徐汇苑23号楼5单元401室', '654002'], ['重庆忠县', '500233'], ['湖北神农架太阳村10组', '429021'], ['广东省惠来县惠城镇南门西路209号', '445224'], ['江苏省靖江市江阴经济开发区靖江园区五星村里面的江阴经济开发区', { details: '江阴经济开发区靖江园区五星村里面的江阴经济开发区' }], ['北京市密云区花园小区1楼三单元30115801691123 唐娜明收', { mobile: '15801691123' }], ['重庆市永川区南大街街道重庆文理学院', '500118'], ['18112341234 上海奉贤区南桥镇程普路123号上海可通营业部 朱某某', { code: '310120', name: '朱某某' }], ['18112341234 天津大港区大港油田花园路123号 刘某某', { code: '120100', name: '刘某某' }], ['海南省三亚市天涯区海南省三亚市天涯区凤凰镇芒果村', { details: '凤凰镇芒果村', code: '460204' }], ['海南省海南省白沙黎族自治县海南省省直辖县级行政区划白沙黎族自治县海南省白沙黎族自治县牙叉农场老机关九栋107号', { details: '牙叉农场老机关九栋107号' }], ['海南省三亚市天涯区收货人吴艾培手机号码17689751439所在地区海南省三亚市吉阳区国营南新农场详细地址三亚富春山居', { name: '吴艾培', details: '吉阳区国营南新农场 三亚富春山居' }], ['广东省东莞市东莞市塘厦塘镇东莞市印中电子厂林村林东三路16号', { details: '塘厦塘镇东莞市印中电子厂林村林东三路16号' }], ['黑龙江齐齐哈尔市梅里斯区', '230208']];
var list = [['福建省福州市福清市石竹街道义明综合楼3F,15000000000,asseek', '350181'], ['福建省福清市石竹街道义明综合楼3F,15000000000,asseek', '350181'], ['福州市福清市石竹街道义明综合楼3F,15000000000,asseek', '350181'], ['福清市石竹街道义明综合楼3F,15000000000,asseek', '350181'], ['浙江省温州市乐清柳市镇', '330382'], ['李xx 13512222322 广西壮族自治区 桂林市 恭城瑶族自治县 恭城镇拱辰东路xx-xx号', '450332'], ['李xx 13512222222 恭城 恭城镇拱辰东路08-88号', '450332'], ['四川成都高新区天府大道中段530号东方希望天祥广场a座4302号北京万商天勤(成都)律师事务所', '510191'], '房pp,18263333333,山东省 德州市 乐陵市 市中街道怡然居小区,253600', ['张y,18802222222,黑龙江省 哈尔滨市 道里区 经纬街道经纬七道街,000000', { name: '张y' }], ['深圳市龙华新区民治街道办民乐新村。陆xg15822222222', { name: '陆xg' }], '张l,15222222222,内蒙古自治区 呼和浩特市 和林格尔县 盛乐经济工业园区内蒙古师范大学盛乐校区十三号楼,011500', ['张l,15222222222,和林格尔 盛乐经济工业园区内蒙古师范大学盛乐校区十三号楼,011500', '150123'], '上海市徐汇区 复兴中路1237号 5楼WeWork 200010 柚子', ['龙湖区黄山路潮华雅居10栋000房 肖小姐', { code: '440507', name: '肖小姐' }], ['西安市雁塔区丈八东路晶城秀府7号楼2单元 李飞', { code: '610113', name: '李飞' }], ['湖北省安陆市西亚小铺,文元13377777788', { code: '420982', name: '文元' }], ['福建宁德福鼎太姥山镇岭后路。 丹', { code: '350982', name: '丹' }], ['南京市雨花区小行路58号名城世家花园', '320114'], ['四川省阆中市', '511381'], ['北京市市辖区东城区嘿嘿 嘿嘿 18031491271', { code: '110101', name: '嘿嘿' }], ['福建省福州市福清市台江公寓', '350181'], ['山东省青岛市平度市南村镇亭兰 张13668888888', { code: '370283', name: '张' }], ['佛山市南海区盐步 穗盐路景裕嘉园1期 13609770999 大旋仔', { name: '大旋仔' }], ['广东省 东莞市 东城街道', { details: '', code: '441916' }], ['山东省青岛平度市南村镇', '370283'], ['重庆市县城口县', '500229'], ['上海 上海市 浦东区 asd,大liu, ', '310115'], ['吐鲁番市吐鲁番宾馆', '650400'], ['新疆伊宁市上海城徐汇苑23号楼5单元401室', '654002'], ['重庆忠县', '500233'], ['湖北神农架太阳村10组', '429021'], ['广东省惠来县惠城镇南门西路209号', '445224'], ['江苏省靖江市江阴经济开发区靖江园区五星村里面的江阴经济开发区', { details: '江阴经济开发区靖江园区五星村里面的江阴经济开发区' }], ['北京市密云区花园小区1楼三单元30115801691123 唐娜明收', { mobile: '15801691123' }], ['重庆市永川区南大街街道重庆文理学院', '500118'], ['18112341234 上海奉贤区南桥镇程普路123号上海可通营业部 朱某某', { code: '310120', name: '朱某某' }], ['18112341234 天津大港区大港油田花园路123号 刘某某', { code: '120100', name: '刘某某' }], ['海南省三亚市天涯区海南省三亚市天涯区凤凰镇芒果村', { details: '凤凰镇芒果村', code: '460204' }], ['海南省海南省白沙黎族自治县海南省省直辖县级行政区划白沙黎族自治县海南省白沙黎族自治县牙叉农场老机关九栋107号', { details: '牙叉农场老机关九栋107号' }], ['海南省三亚市天涯区收货人吴艾培手机号码17689751439所在地区海南省三亚市吉阳区国营南新农场详细地址三亚富春山居', { name: '吴艾培', details: '吉阳区国营南新农场 三亚富春山居' }], ['广东省东莞市东莞市塘厦塘镇东莞市印中电子厂林村林东三路16号', { details: '塘厦塘镇东莞市印中电子厂林村林东三路16号' }], ['黑龙江齐齐哈尔市梅里斯区', '230208'], ['江西上饶市广信区华坛山镇', '361104'], ['重庆石柱县南宾街道', '500240']];

console.time('测试地址解析耗时');
var result1 = addressParseTest(list);
Expand Down
2 changes: 1 addition & 1 deletion docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<title>address-parse</title>
<script src="js/bundle.js?v=1.2.15"></script>
<script src="js/bundle.js?v=1.2.17"></script>
</head>
<body>
<h1>address parse 地址解析测试</h1>
Expand Down
2 changes: 1 addition & 1 deletion docs/js/bundle.js

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "address-parse",
"author": "akebe <[email protected]>",
"version": "1.2.16",
"version": "1.2.17",
"description": "cn address parse",
"main": "dist/parse/index.js",
"devDependencies": {
Expand All @@ -22,7 +22,7 @@
"address-parse"
],
"dependencies": {
"address-parse": "^1.2.16"
"address-parse": "^1.2.17"
},
"scripts": {
"build": "babel src -d dist --presets es2015,stage-2",
Expand Down
1 change: 1 addition & 0 deletions src/area.js
Original file line number Diff line number Diff line change
Expand Up @@ -1694,6 +1694,7 @@ const data = {
'361030': '广昌县',
'361102': '信州区',
'361103': '广丰区',
'361104': '广信区',
'361121': '上饶县',
'361123': '玉山县',
'361124': '铅山县',
Expand Down
25 changes: 14 additions & 11 deletions src/parse/parse-area.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@ import AREA from '../area';
import Utils from './utils';

const ProvinceKeys = [
'特别行政区', '古自治区', '维吾尔自治区', '壮族自治区', '回族自治区', '自治区', '省省直辖', '省', '市',
'特别行政区', '古自治区', '维吾尔自治区', '壮族自治区', '回族自治区', '自治区', '省省直辖', '省', '市'
];

const CityKeys = [
'布依族苗族自治州', '苗族侗族自治州', '藏族羌族自治州', '哈尼族彝族自治州', '壮族苗族自治州', '傣族景颇族自治州', '蒙古族藏族自治州',
'傣族自治州', '白族自治州', '藏族自治州', '彝族自治州', '回族自治州', '蒙古自治州', '朝鲜族自治州', '地区', '哈萨克自治州', '盟', '市',
'傣族自治州', '白族自治州', '藏族自治州', '彝族自治州', '回族自治州', '蒙古自治州', '朝鲜族自治州', '地区', '哈萨克自治州', '盟', '市'
];

const AreaKeys = [
'满族自治县', '满族蒙古族自治县', '蒙古族自治县', '朝鲜族自治县',
'回族彝族自治县', '彝族回族苗族自治县', '彝族苗族自治县', '土家族苗族自治县', '布依族苗族自治县', '苗族布依族自治县',
'回族彝族自治县', '彝族回族苗族自治县', '彝族苗族自治县', '土家族苗族自治县', '布依族苗族自治县', '苗族布依族自治县', '苗族土家族自治县',
'彝族傣族自治县', '傣族彝族自治县', '仡佬族苗族自治县', '黎族苗族自治县', '苗族侗族自治县', '哈尼族彝族傣族自治县', '哈尼族彝族自治县',
'彝族哈尼族拉祜族自治县', '傣族拉祜族佤族自治县', '傣族佤族自治县', '拉祜族佤族布朗族傣族自治县', '苗族瑶族傣族自治县', '彝族回族自治县',
'独龙族怒族自治县', '保安族东乡族撒拉族自治县', '回族土族自治县', '撒拉族自治县', '哈萨克自治县', '塔吉克自治县',
Expand All @@ -27,7 +27,7 @@ const AreaKeys = [
'达斡尔族区', '达斡尔族自治旗',
'左旗', '右旗', '中旗', '后旗', '联合旗', '自治旗', '旗', '自治县',
'街道办事处',
'新区', '区', '县', '市',
'新区', '区', '县', '市'
];

class ParseArea {
Expand Down Expand Up @@ -125,6 +125,8 @@ class ParseArea {

if (result.area && _address.includes(result.area)) {
result.__parse += 1;
} else if (result.area && _address.includes(result.area.substr(0, 2))) {
result.__parse += 0.5;
}
}
}
Expand All @@ -141,7 +143,7 @@ class ParseArea {
a.__parse && b.__parse && a.__parse < b.__parse ? 1 :
a.__parse && a.__type === 'parseByProvince' ? -1 :
b.__parse && b.__type === 'parseByProvince' ? 1 :
a.name.length > b.name.length ? 1 : a.name.length < b.name.length ? -1 : 0,
a.name.length > b.name.length ? 1 : a.name.length < b.name.length ? -1 : 0
);

return this.results;
Expand All @@ -161,7 +163,7 @@ class ParseArea {
name: '',
code: '',
__type: 'parseByProvince',
__parse: false,
__parse: false
};
let address = addressBase;
for (const code in province_list) {
Expand Down Expand Up @@ -240,7 +242,7 @@ class ParseArea {
code: '',
index: -1,
address: '',
isShort: false,
isShort: false
};
for (const city of cityList) {
let index = address.indexOf(city.name);
Expand Down Expand Up @@ -305,7 +307,7 @@ class ParseArea {
code: '',
index: -1,
address: '',
isShort: false,
isShort: false
};
for (const area of areaList) {
let index = address.indexOf(area.name);
Expand Down Expand Up @@ -391,7 +393,7 @@ class ParseArea {
name: '',
code: '',
__type: 'parseByCity',
__parse: false,
__parse: false
};
let address = addressBase;
for (const code in city_list) {
Expand Down Expand Up @@ -464,7 +466,7 @@ class ParseArea {
name: '',
code: '',
__type: 'parseByArea',
__parse: false,
__parse: false
};
let address = addressBase;
for (const code in area_list) {
Expand Down Expand Up @@ -527,8 +529,9 @@ class ParseArea {
break;
}
}

if (shortArea && address.charAt(index + areaLength) === '县') index += 1;
address = address.substr(index + areaLength);

if (_provinceName || _cityName) {
result.__parse = true;
break;
Expand Down
8 changes: 5 additions & 3 deletions src/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ function getAllAreaTestList() {
}
return {
cityTestList,
areaTestList,
areaTestList
};
}

Expand Down Expand Up @@ -103,8 +103,10 @@ const list = [
['海南省三亚市天涯区海南省三亚市天涯区凤凰镇芒果村', {details: '凤凰镇芒果村', code: '460204'}],
['海南省海南省白沙黎族自治县海南省省直辖县级行政区划白沙黎族自治县海南省白沙黎族自治县牙叉农场老机关九栋107号', {details: '牙叉农场老机关九栋107号'}],
['海南省三亚市天涯区收货人吴艾培手机号码17689751439所在地区海南省三亚市吉阳区国营南新农场详细地址三亚富春山居', {name: '吴艾培', details: '吉阳区国营南新农场 三亚富春山居'}],
['广东省东莞市东莞市塘厦塘镇东莞市印中电子厂林村林东三路16号',{details: '塘厦塘镇东莞市印中电子厂林村林东三路16号'}],
['黑龙江齐齐哈尔市梅里斯区', '230208']
['广东省东莞市东莞市塘厦塘镇东莞市印中电子厂林村林东三路16号', {details: '塘厦塘镇东莞市印中电子厂林村林东三路16号'}],
['黑龙江齐齐哈尔市梅里斯区', '230208'],
['江西上饶市广信区华坛山镇', '361104'],
['重庆石柱县南宾街道', '500240'],
];

console.time('测试地址解析耗时');
Expand Down

0 comments on commit 6c57109

Please sign in to comment.