debug_standardize_address — 返回 json 格式的文本,列出解析标记和标准化
text debug_standardize_address(
text lextab, text gaztab, text rultab, text micro, text macro=NULL)
;
这是一个用于调试地址标准化器规则和 lex/gaz 映射的函数。 它返回一个 json 格式的文本,其中包括匹配规则、令牌映射以及使用 lex table的表名称、gaz table和rules table的表名称和地址的输入地址的最佳标准化地址stdaddr 形式。
对于单行地址,仅使用 micro
对于两行地址,一个是由micro
的邮政地址第一行组成,例如 house_num street
,另一个是由标准的邮政地址第二行组成,例如 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)