[急]一个关于“中文地址匹配”的问题

[复制链接]
查看11 | 回复9 | 2006-4-13 07:34:50 | 显示全部楼层 |阅读模式
小弟在做一个数据整理的工作,遇到这样一个问题。比如现在数据表里面有两条含有地址信息的记录:如“北京市海淀区XXX路15号”和“北京海淀区XXX路15号”。如果凭肉眼去判定。这两条记录肯定是一样的。但是现在需要用程序去判定。我打算用自定义函数。小弟想问的是这个算法应该怎么样去写?思路是?现在需要一个关于字符串分割的算法。
回复

使用道具 举报

千问 | 2006-4-13 07:34:50 | 显示全部楼层
关注
回复

使用道具 举报

千问 | 2006-4-13 07:34:50 | 显示全部楼层
可以考虑一下用全文匹配的功能:
SQL> select addr from test;
ADDR
------------------------------
北京海淀区民享路15号
北京市海淀区民享路15号
北京市东圃区民生路15号
广州市天河区民享路10号
北京海淀区民享路20号
北京市mk区民享路15号
已选择6行。
SQL> select addr from test where contains(addr,'北京 near 海淀 and 民享 near 15'
)>0;
ADDR
------------------------------
北京海淀区民享路15号
北京市海淀区民享路15号
回复

使用道具 举报

千问 | 2006-4-13 07:34:50 | 显示全部楼层
又学了一招。
回复

使用道具 举报

千问 | 2006-4-13 07:34:50 | 显示全部楼层
原帖由 ilovemk 于 2007-11-26 21:26 发表
可以考虑一下用全文匹配的功能:
SQL> select addr from test;
ADDR
------------------------------
北京海淀区民享路15号
北京市海淀区民享路15号
北京市东圃区民生路15号
广州市天河区民享路10号
...



回复

使用道具 举报

千问 | 2006-4-13 07:34:50 | 显示全部楼层
原帖由 bluemaple_zeng 于 2007-11-26 17:14 发表
小弟在做一个数据整理的工作,遇到这样一个问题。比如现在数据表里面有两条含有地址信息的记录:如“北京市海淀区XXX路15号”和“北京海淀区XXX路15号”。如果凭肉眼去判定。这两条记录肯定是一样的。但是现在需 ...

电脑凭啥认为这两条记录是一样的?
全文检索等模糊查询也靠不住,因为电脑很难辨认不同的语义
电脑一般只能处理确定的规则
电脑毕竟不是人脑


回复

使用道具 举报

千问 | 2006-4-13 07:34:50 | 显示全部楼层
不错,学习!
回复

使用道具 举报

千问 | 2006-4-13 07:34:50 | 显示全部楼层
原帖由 ilovemk 于 2007-11-26 21:26 发表
可以考虑一下用全文匹配的功能:
SQL> select addr from test;
ADDR
------------------------------
北京海淀区民享路15号
北京市海淀区民享路15号
北京市东圃区民生路15号
广州市天河区民享路10号
...

contains这个方法是不是必须给这个表建一个索引才能用呀?
回复

使用道具 举报

千问 | 2006-4-13 07:34:50 | 显示全部楼层
原帖由 oracle_worker 于 2007-11-27 10:40 发表
contains这个方法是不是必须给这个表建一个索引才能用呀?


全文索引
回复

使用道具 举报

千问 | 2006-4-13 07:34:50 | 显示全部楼层
谢了!先试试,但这个是不是还得做一个字符的截取呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行