Name

debug_standardize_address — パースしたトークンと標準化のリストをJSON形式の文字列で返します

Synopsis

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

説明

これは住所標準化ルールとlex/gazの対応付けに関するデバッグ用関数です。合致する規則と、lex tableテーブル名、gaz tablerules 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)