Name

debug_standardize_address — Returnerar en json-formaterad text som listar parsetokens och standardiseringar

Synopsis

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

Beskrivning

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.

Exempel

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)