Java 使用Stanford NER从文本文档中提取地址?

Java 使用Stanford NER从文本文档中提取地址?,java,stanford-nlp,text-processing,Java,Stanford Nlp,Text Processing,我正在寻找斯坦福大学,并考虑使用JavaAPI it从文本文档中提取邮政地址。该文件可以是有邮政地址部分的任何文件,例如水电费账单、电费账单 所以我认为,作为一种方法 使用位置和其他原语命名实体将邮政地址定义为命名实体 定义分段和其他子流程 我试图找到一个同样的示例管道(需要哪些详细步骤),以前有人这样做过吗?欢迎您提出建议。请澄清:所有的功劳都归Raj Vardhan(和John Bauer)所有,他们在邮件列表上有过互动 拉吉·瓦尔丹(Raj Vardhan)写到了“在一句话中找到街道地址”

我正在寻找斯坦福大学,并考虑使用JavaAPI it从文本文档中提取邮政地址。该文件可以是有邮政地址部分的任何文件,例如水电费账单、电费账单

所以我认为,作为一种方法

  • 使用位置和其他原语命名实体将邮政地址定义为命名实体
  • 定义分段和其他子流程

  • 我试图找到一个同样的示例管道(需要哪些详细步骤),以前有人这样做过吗?欢迎您提出建议。

    请澄清:所有的功劳都归Raj Vardhan(和John Bauer)所有,他们在邮件列表上有过互动

    拉吉·瓦尔丹(Raj Vardhan)写到了“在一句话中找到街道地址”的工作计划:

    以下是我想到的一种方法:

  • 在句子中找到事件锚
  • 从该事件节点选择SemanticGraph中的传出边 具有诸如*“prep in”或“prep at”之类的关系
  • 如果关系中的依赖值的POS标记为NNP
  • a) 从从属值的节点查找具有以下关系的传出边 作为“nn”

    b) 按事件中出现的递增顺序连接所有此类节点 判决

    c) 将结果值打印为事件发生的位置

    这显然与某些假设有关,例如直接依赖性 在事件锚和句子中的位置之间


    我不确定这是否能帮到你,但我想提一下以防万一。同样,任何信用都应该归Raj Vardhan(和John Bauer)所有。

    你有文本地址培训集吗?@GaborAngeli是的,我有一个国家的文本地址,但没有正确标记zip、city、addressline1、addressline2。在这种情况下,我的建议是收集一个文本地址数据集,然后训练一些类似斯坦福大学的系统。或者,结合斯坦福大学的NER和TokensRegexNER,构建一些基于规则的启发式系统。@GaborAngeli我喜欢在文本中标记地址的想法。我现在的问题是,我是否应该将地址分成多个部分,例如{city,zip,line1,line 2},然后根据现有已定义的命名实体位置定义一个复合实体,或者将地址定义为具有某种结构的新实体?有什么建议吗?我想你只有把地址分成不同的部分才能赢;根据地址的结构,它为序列模型的隐藏状态提供了更多的解决方法,并允许每个类处理更窄范围的字。如果没有其他方法,您可以轻松地折叠状态并进行尝试。另一方面,它也需要更多的注释工作,而且很可能不会有很大的不同。你打算标记多少个句子?谢谢。我也要尝试一下,但是如果位置分布在多条直线上,分割就会变得有点棘手。我会更新我的发现。@yadab你是怎么做的?我希望做一些类似的事情,不想重新发明轮子。