debug_standardize_address — Gibt einen json-formatierten Text zurück, der die Parse-Token und Standardisierungen auflistet
text debug_standardize_address(
text lextab, text gaztab, text rultab, text micro, text macro=NULL)
;
Dies ist eine Funktion zum Debuggen von Adressstandardisierungsregeln und lex/gaz-Zuordnungen. Sie gibt einen json-formatierten Text zurück, der die Abgleichsregeln, die Zuordnung von Token und die beste standardisierte Adresse stdaddr Form einer Eingabeadresse unter Verwendung von lex table Tabellenname, gaz table und rules table Tabellennamen und einer Adresse enthält.
Für einzeilige Adressen verwenden Sie einfach micro
Für eine zweizeilige Adresse A micro
bestehend aus der ersten Zeile einer Standard-Postanschrift, z. B. house_num street
, und einem Makro bestehend aus der zweiten Zeile einer Standard-Postanschrift, z. B. city, state postal_code country
.
Die im json-Dokument zurückgegebenen Elemente sind
input_tokens
Gibt für jedes Wort in der Eingabeadresse die Position des Wortes, die Token-Kategorisierung des Wortes und das Standardwort, dem es zugeordnet ist, zurück. Beachten Sie, dass Sie für einige Eingabewörter möglicherweise mehrere Datensätze zurückerhalten, da einige Eingaben als mehr als eine Sache kategorisiert werden können.
rules
Die Menge der Regeln, die der Eingabe entsprechen, und die entsprechende Punktzahl für jede Regel. Die erste Regel (mit der höchsten Punktzahl) wird für die Standardisierung verwendet
stdaddr
Die standardisierten Adresselemente stdaddr, die bei der Ausführung von standardize_address
Verfügbarkeit: 3.4.0
Diese Methode benötigt die Erweiterung address_standardizer.
Verwendung der address_standardizer_data_us Erweiterung
CREATE EXTENSION address_standardizer_data_us; -- only needs to be done once
Variante 1: Einzeilige Adresse und Rückgabe der Eingabe-Token
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)
Variante 2: Mehrzeilige Adresse und Rückgabe der ersten Regeleingabe-Mappings und der Punktzahl
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