来自非结构化文本的美国州决议

US state resolution from unstructured text

我有一个带有 "location" 字段的数据库,该字段包含字符串形式的不受约束的用户输入。我想将每个条目映射到美国州或 NULL。

例如:

'Southeastern Massachusetts' -> MA
'Brookhaven, NY' -> NY
'Manitowoc' -> WI
'Blue Springs, MO' -> MO
'A Damp & Cold Corner Of The World.' -> NULL
'Baltimore, Maryland' -> MD
'Indiana' -> IN

我可以容忍一些错误,但显然越少越好。解决此问题的最佳方法是什么?

您可以使用 Geonames,它提供了非常大的位置名称列表及其相关信息,而且是免费的。在最简单的情况下,字符串匹配(或近似字符串匹配)可能不会太难实现。

您可能会遇到的一个困难是名称不明确,即有多个指代对象(例如华盛顿,是州还是市)。如果存在多个指标,您可以检查它们的连贯性。否则,您可以检查输入的其他单词,但这可能有风险。

IMO,这非常接近实体链接,考虑到已链接的实体,后验搜索到最接近的状态。

为了后代:我只是向它扔了一堆正则表达式,它起作用了 'pretty alright'。