【问题标题】:String matching between complete and incomplete(or short form) strings完整和不完整(或短格式)字符串之间的字符串匹配
【发布时间】:2013-05-21 07:07:25
【问题描述】:

这个问题可能会被报告重复,但我做了很多研究,没有得到任何令人满意的结果,所以我认为我最好准确地问它。

在我的项目中,我需要匹配地址字符串。我已经实现了几种字符串搜索算法,例如 Soundex、Levenshtein 距离、Damerau–Levenshtein 距离、模糊搜索、字符频率匹配等。但是对于 St. 和 Street、Jr. 和 Junior 等字符串之间的搜索结果并不令人满意。想过用 Streets 替换所有 St.,但这会导致像“St.”这样的地址出现问题。保罗街”。 我该怎么办?

【问题讨论】:

  • 仅在地址末尾将 St. 替换为 Street。
  • 行不通,在像“第二街,某些地区”这样的情况下,我在数据库中有很多这样的地址。无论如何,谢谢,但我需要更聪明的技术

标签: string algorithm string-matching


【解决方案1】:

创建一个字符串距离字典。示例:Distance('street','st')=0 。不过,您需要一些训练数据来创建这个字典。

【讨论】:

  • 看起来不错,但不存在任何算法或技巧或可以预测长格式或进行匹配的东西。到目前为止,您的方式似乎是最好的,但我认为我应该寻找一种更聪明的方法,因为如果我错过了一些简短的形式,那么搜索就会不一致。你还是给了最后的手段,谢谢。
  • 更聪明地发现“street”和“st”可能是等价的?这几乎是不可能的。但是从数据中发现这样的关系应该是可能的(取决于你能多么聪明地找到这样的训练数据)。
猜你喜欢
  • 2011-06-17
  • 2019-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-26
  • 1970-01-01
相关资源
最近更新 更多