请大家多多来讨论:中文地址匹配算法

tyb98032 2004-07-23 04:12:45
大家知道中文检索中经常要用到 词句分割 算法的,但是中文地址匹配可能是比较特殊的,比如:用户输入“北京宣武区广外大街××路××号”进行查询,现需要一匹配算法,从地址库中匹配出相关的记录。

我想这可能不是一个挑出其中的单词,然后逐个进行匹配,能较完美地解决的。比较稳妥点儿的方法是:先对地址库中的街道地址进行标准化,可能是这样的表结构:

行政区 | 地名| sub-地名(可能是区名)| 街道 | 门牌

然后把分割后的查询条件,逐个匹配地址库里的记录,对相似的记录进行打分 Rank,类似Google的 page rank。
复杂在如何确定打分的标准,可能要照顾一些拼写错误和发音错误。

当然,这只是一部分,可能会有地名匹配和邮政编码匹配的情况,比如:用户输入北京西单文化广场,或者 100001 等,都可以进行地址查找的。

就大概是这个意思,不知道我说明白没有,希望大家给点算法方面的思路或者告诉我需要关注哪些重点。
...全文
648 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
tyb98032 2004-07-28
多谢未名。

只是,这样的算法需要强大的后备库支持啊。即使分词分割对了,先把单词逐个匹配一遍,如果没有结果,再转换成拼音,这个难啊……
  • 打赏
  • 举报
回复
zzwu 2004-07-28
1.直接利用拼音(而不是利用汉字)进行检索,方法没有本质上差别. 这可以使速度提高一点点,但效果也明显差了: 会有更多不相关的东西被列出来.

2.拼写错误和发音错误的纠正也不难,如果你输入串S,但词库中没有与S匹配的单词,但有单词W,它的拚音S'和S大多数字符匹配,只有个别不对,就提示你“您是不是要找:W”。 "
  • 打赏
  • 举报
回复
zhanlin911 2004-07-28
我也认为它是空间换时间的做法

后天数据库要大啊
  • 打赏
  • 举报
回复
tyb98032 2004-07-27
那么,我再问一个细致一点的问题:如何照顾一些拼写错误和发音错误?

现在,Google支持“拼音汉字转换”:
Google 运用智能软件系统对拼音关键词能进行自动中文转换并提供相应提示(需用简体中文界面)。 例如:搜索“shang wu tong”, Google 能自动提示 “您是不是要找:商务通”。 如果您点击“商务通”, Google 将以“商务通”作为关键词进行搜索。对于拼音和中文混和关键词, 系统也能做有效转换。 对于拼音“lü”, “lüe”, “nü” 或 “nüe”,您可输入 “lv”, “lve”, “nv” 或 “nve”. 如果拼音中没有空格, 例如 “shangwutong”,Google 也会做相应处理,但是在多个拼音中加空格能提高转换准确率和速度。


BTW:大家推荐一个比较好的词分算法?
  • 打赏
  • 举报
回复
zzwu 2004-07-26
我看你已经说明白了,好像也可以照着作了!
  • 打赏
  • 举报
回复
tyb98032 2004-07-26
那么,在 数据结构 版应该问什么类型的问题呢?
  • 打赏
  • 举报
回复
相关推荐
发帖
数据结构与算法

3.2w+

社区成员

数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
帖子事件
创建了帖子
2004-07-23 04:12
社区公告
暂无公告