debug_standardize_address — パースしたトークンと標準化のリストをJSON形式の文字列で返します
text debug_standardize_address(
text lextab, text gaztab, text rultab, text micro, text macro=NULL)
;
これは住所標準化ルールとlex/gazの対応付けに関するデバッグ用関数です。合致する規則と、lex tableテーブル名、gaz table、rules tableテーブル名と住所を使用して、入力住所のstdaddr形式による最善標準化住所を含むJSON形式の文字列を返します。
単一行の住所はmicro
だけを使います
二行住所では、郵便住所の標準の1行目であるhouse_num street
等で構成されるmicro
と、2行目であるcity, state postal_code country
等で構成されるmacroからなります。
JSON文書で返される要素は次の通りです
input_tokens
入力住所の単語ごとに、単語位置、単語のトークン分類、関連付けられる標準単語が返されます。入力単語のうち、入力が1回より多く分類されると、複数レコードが返されることがあります。
rules
入力に合致した規則と対応する個々のスコアの集合です。最初の規則 (最高スコア)が標準化に使われます
stdaddr
standardize_addressを実行しているとkにに返される標準化された住所要素stdaddr
Availability: 3.4.0
このメソッドはaddress_standardizerエクステンションが必要です。
address_standardizer_data_usエクステンションを使います。
CREATE EXTENSION address_standardizer_data_us; -- only needs to be done once
一つ目の形式: 単一行アドレスと入力トークンの返却
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)
二つ目の形式: 複数行住所と最初の入力規則の対応付けとスコアの返却
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)