debug_standardize_address — Returnerar en json-formaterad text som listar parsetokens och standardiseringar
text debug_standardize_address(
text lextab, text gaztab, text rultab, text micro, text macro=NULL)
;
Detta är en funktion för felsökning av regler för adresstandardisering och lex/gaz-mappningar. Den returnerar en json-formaterad text som innehåller matchningsregler, mappning av tokens och bästa standardiserade adress stdaddr form av en inmatningsadress som använder lex table tabellnamn, gaz table och rules table tabellnamn och en adress.
För adresser på en rad används bara micro
För tvåradig adress En mikro
som består av standard första raden av en postadress, t.ex. house_num street
, och ett makro som består av standard andra raden av en adress, t.ex. city, state postal_code country
.
Element som returneras i json-dokumentet är
input_tokens
För varje ord i inmatningsadressen returneras ordets position, ordets token-kategorisering och det standardord som det är mappat till. Observera att för vissa inmatningsord kan du få tillbaka flera poster eftersom vissa inmatningar kan kategoriseras som mer än en sak.
rules
Uppsättningen av regler som matchar indata och motsvarande poäng för varje regel. Den första regeln (högst poäng) är den som används för standardisering
stdaddr
De standardiserade adresselementen stdaddr som skulle returneras när du kör standardize_address
Tillgänglighet: 3.4.0
Denna metod behöver address_standardizer-tillägg.
Använda tillägg address_standardizer_data_us
CREATE EXTENSION address_standardizer_data_us; -- only needs to be done once
Variant 1: Enradig adressering och returnering av inmatningstecken
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)
Variant 2: Flerradig adress och returnering av första regelns indatamappningar och poäng
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, rules table, lex table, gaz table, Pagc_Normalize_Address