名称

debug_standardize_address — 返回一个包含解析标记和标准化的 json 格式文本

概要

text debug_standardize_address(text lextab, text gaztab, text rultab, text micro, text macro=NULL);

描述

这是一个用于调试地址标准化规则和词法/地名映射的函数。它返回一个 json 格式的文本,其中包含匹配的规则、标记的映射以及使用 stdaddr 表格名称、词法表格 表格名称、地名表格 表格名称和地址对输入地址进行标准化的最佳标准化地址 stdaddr 形式。

对于单行地址,只需使用 micro

对于两行地址,micro 包含标准的邮政地址第一行,例如 house_num street,而 macro 包含标准的邮政地址第二行,例如 city, state postal_code country

json 文档中返回的元素是

input_tokens

对于输入地址中的每个单词,返回单词的位置、单词的标记分类以及它映射到的标准单词。请注意,对于某些输入单词,您可能会获得多个记录,因为某些输入可以被归类为不止一种东西。

rules

与输入匹配的规则集以及每个规则的对应分数。第一个规则(得分最高)用于标准化

stdaddr

运行 standardize_address 时将返回的标准化地址元素 stdaddr

可用性:3.4.0

此方法需要 address_standardizer 扩展。

示例

使用 address_standardizer_data_us 扩展

CREATE EXTENSION address_standardizer_data_us; -- only needs to be done once

变体 1:单行地址并返回输入标记

SELECT it->>'pos' AS position, it->>'word' AS word, it->>'stdword' AS standardized_word,
            it->>'token' AS token, it->>'token-code' AS token_code
    FROM jsonb(
            debug_standardize_address('us_lex',
                'us_gaz', 'us_rules', 'One Devonshire Place, PH 301, Boston, MA 02109')
                 ) AS s, jsonb_array_elements(s->'input_tokens') AS it;
position |    word    | standardized_word | token  | token_code
----------+------------+-------------------+--------+------------
 0        | ONE        | 1                 | NUMBER | 0
 0        | ONE        | 1                 | WORD   | 1
 1        | DEVONSHIRE | DEVONSHIRE        | WORD   | 1
 2        | PLACE      | PLACE             | TYPE   | 2
 3        | PH         | PATH              | TYPE   | 2
 3        | PH         | PENTHOUSE         | UNITT  | 17
 4        | 301        | 301               | NUMBER | 0
(7 rows)

变体 2:多行地址并返回第一个规则输入映射和分数

SELECT (s->'rules'->0->>'score')::numeric AS score, it->>'pos' AS position,
        it->>'input-word' AS word, it->>'input-token' AS input_token, it->>'mapped-word' AS standardized_word,
            it->>'output-token' AS output_token
    FROM jsonb(
            debug_standardize_address('us_lex',
                'us_gaz', 'us_rules', 'One Devonshire Place, PH 301', 'Boston, MA 02109')
                 ) AS s, jsonb_array_elements(s->'rules'->0->'rule_tokens') AS it;
 score   | position |    word    | input_token | standardized_word | output_token
----------+----------+------------+-------------+-------------------+--------------
 0.876250 | 0        | ONE        | NUMBER      | 1                 | HOUSE
 0.876250 | 1        | DEVONSHIRE | WORD        | DEVONSHIRE        | STREET
 0.876250 | 2        | PLACE      | TYPE        | PLACE             | SUFTYP
 0.876250 | 3        | PH         | UNITT       | PENTHOUSE         | UNITT
 0.876250 | 4        | 301        | NUMBER      | 301               | UNITT
(5 rows)

另请参阅

stdaddr规则表格词法表格地名表格Pagc_Normalize_Address