GISarabia.org
PostGIS › الدليل الرسمي › 12. إضافات PostGIS › 12.1.4. دوال مُوحِّد العناوين
PostGIS 3.6 · Official Manual · ترجمة عربية

debug_standardize_address

الصفحة الأصلية بالإنجليزية postgis.net ↗

الاسم

debug_standardize_address — تُعيد نصًا بتنسيق json يسرد رموز التحليل وعمليات التوحيد

المختصر

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

الوصف

هذه دالة لتصحيح أخطاء قواعد مُوحِّد العناوين وربطيات lex/gaz. تُعيد نصًا بتنسيق json يتضمن القواعد المطابقة، وربط الرموز، وأفضل صيغة عنوان موحَّد stdaddr لعنوان مُدخل، باستخدام اسم جدول lex table وأسماء جداول gaz table وrules table وعنوان.

للعناوين أحادية السطر استخدم micro فقط

للعنوان ثنائي السطر: micro يتكون من السطر الأول القياسي للعنوان البريدي، مثل house_num street، وmacro يتكون من السطر الثاني القياسي للعنوان البريدي، مثل city, state postal_code country.

العناصر المُعادة في مستند json هي

input_tokens

لكل كلمة في العنوان المُدخل، تُعيد موضع الكلمة، وتصنيف رمزها، والكلمة القياسية المربوطة بها. لاحظ أنك قد تحصل لبعض الكلمات المُدخلة على عدة سجلات، لأن بعض المُدخلات يمكن تصنيفها بأكثر من تصنيف.

rules

مجموعة القواعد المطابقة للمُدخل والدرجة المقابلة لكل منها. القاعدة الأولى (الأعلى درجة) هي المستخدمة في التوحيد

stdaddr

عناصر العنوان الموحَّد stdaddr التي ستُعاد عند تشغيل standardize_address

متاحة منذ: 3.4.0

تتطلب هذه الدالة الامتداد address_standardizer.

أمثلة

باستخدام امتداد address_standardizer_data_us

CREATE EXTENSION address_standardizer_data_us; -- only needs to be done once

الصيغة 1: عنوان أحادي السطر مع إعادة رموز الإدخال

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)

الصيغة 2: عنوان متعدد الأسطر مع إعادة ربطيات الإدخال للقاعدة الأولى ودرجتها

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)