gpt4 book ai didi

algorithm - 自由格式文本的通用地址解析器

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:30:07 27 4
gpt4 key购买 nike

我们有一个显示 map 数据的程序(想想 Google map ,但为我们的客户提供了更多的交互性和自定义图层)。

我们允许通过一组组合框进行导航,这些组合框用一组数据预填充某些字段(即:国家:加拿大,填写了省份字段。选择安大略,并填写了县/地区列表。选择一个县/地区,一个城市被填入等等...)。

虽然这保证了准确的地址,但如果用户不知道街道地址或城市的位置(即基奇纳位于哪个县/地区?),这对用户来说是一种痛苦。

所以我们正在考虑尝试使用自由格式文本字段来做一个地址解析器。

用户可以输入如下内容(类似于 Google map 、Bing map 等...):基奇纳大街 22 号

我们可以将其划分为多个部分并查找数据并找到他们正在寻找的点(或建议替代方案)。

问题在于我们如何正确地划分信息?我们如何分解这些部分并找到可能的匹配项?我猜我们不能保证用户会以我们一直期望的格式(显然)输入数据。如果我们没有找到完全匹配(或找到多个完全匹配......例如,在不同县具有相同街道名称的两个城市),则后续将如何呈现数据。

我们在 map 数据(主要是 mapinfo 选项卡格式)中有大量数据可用。所以我们可以快速扫描街道名称、城市、州等。但我不确定解决这个问题的最佳方法。当然,使用谷歌地图会很好,因为我们的大多数客户都处于封闭的网络中,通常不允许外部访问,而且大多数人不愿意依赖谷歌地图(因为它不包含他们需要的信息,例如自定义 map 层)。很明显,他们可以去谷歌并找到正确的位置,然后转移到我们的软件,但这会很耗时,而且过程的速度可能非常重要。

最佳答案

这本质上是一类命名实体解析问题。 NER on Wikipedia

解决此问题的最佳方法是使用语言转换器解析地址以识别各种结构 - 这种方法类似于使用有限状态机的正则表达式。

我在名为 GATE 的 Java NLP 和机器学习框架方面取得了巨大成功,他们的传感器库称为 Jape。查看他们的 GUI,并使用它为它编写一些 Java 代码!

他们的内置示例应该让您从基础开始,然后您可以根据需要扩展它。本质上,它使用规则和规则引擎将文本划分为组件,例如,

Xyz, Blah St,
Foo City, 11110, CA

将被翻译成,

Place: Xyz
Street: Blah St
City: Foo
...

然后您可以使用您的位置数据库进行匹配。

除了规则之外,Jape 还支持字典查找 - 所以如果您的数据库中已经有“Blah St”,并且它有 2 个父级 - 城市 Foo 和 Bar - 您只需通过解析下一行来消除歧义。

编辑:GATE 包含一个名为 ANNIE 的工具 - 一个信息提取系统,可以用来识别地址。这使用了一些您可以构建的内置 Jape 规则。

关于algorithm - 自由格式文本的通用地址解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/953150/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com