征求下各位意见~~~~

来源:百度知道 编辑:UC知道 时间:2024/07/02 15:26:16
这样的~~

从某网站抓取的一批数据,城市这一项

同一个城市有好几种写发

比如北京

beijing

Beijing

beijingcity

bejingtianjing

beijingchina

bei jig city

当我对城市信息统计时,肯定少不了数据清晰工作.

每次都有少则几大千 多则几W

要是我一个个手动来弄的话,蛮烦的

所以我现在打算用程序来做,用正则来清洗数据

而用正则的话,我就必须要把中国的所有城市先给搜罗来然后改成各种形式的正则

那么

这效率,速度上是否.......

或者你有更好的方法?
=====================

正则能力不是我担心的

我担心的是速度上

我的数据源 少则几大千 多则几万

全中国有多少城市? 需要匹配的量~?

这是问题

我觉得正则完全可以。除了这个
bei jig city 应该是你打错了
比如北京 只要出现了了 bei jing 这两个关键部分。不管大小写。都记录为北京。
正则足以。

补充回答
如果必须要考虑速度的话
beijing
Beijing
beijingcity
bejingtianjing
beijingchina
bei jing city
这几个。除了beijingtianjing我不知道你要如何处理这两个城市之外。其他的都是城市名称在前。这样的话。可以把中国所有的城市首先生成一个庞大的dfa。输入一个有效字符则跳转一个状态。每一个城市对应着一个终态。首先达到的终态就是需要得到的城市。

这个图可能有点大。那么应该根据中文来构图。
将每个城市可能出现的汉字列出并给出其拼音。
构建汉字鉴别的dfa。然后根据生成的汉字判断城市。

而且。我觉得如果这个不要求实时处理的话。速度不用太担心。
假设城市的数量级是10^3
使用kmp字符串匹配则可以将匹配时间降至线性 根据城市拼音长度 时间复杂度数量级为 10^1
设数据量数量级为10^4
结果为10^8。完全可以在10分钟之内得到答案。
个人感觉不会问题太大。。

我也做过相似的数据处理,隆重向你推荐多线程