ภาพรวม
ข้อมูลตำแหน่งมาตรฐานจะบอกคุณได้ว่ามีอะไรอยู่ใกล้ๆ แต่ก็มักจะตอบคำถามที่สำคัญกว่าไม่ได้ นั่นคือ "ย่านนี้เหมาะกับฉันไหม" ความต้องการของ ผู้ใช้มีความแตกต่างกัน ครอบครัวที่มีเด็กเล็กมีลำดับความสำคัญที่แตกต่าง เมื่อเทียบกับคนหนุ่มสาวที่เพิ่งเริ่มทำงานและมีสุนัข คุณต้องให้ข้อมูลเชิงลึกที่สะท้อนความต้องการเฉพาะเหล่านี้เพื่อช่วยให้ผู้ใช้ตัดสินใจได้อย่างมั่นใจ คะแนนตำแหน่งที่กำหนดเองเป็นเครื่องมือที่มีประสิทธิภาพในการมอบมูลค่านี้และสร้างประสบการณ์ของผู้ใช้ที่แตกต่างอย่างเห็นได้ชัด
เอกสารนี้อธิบายวิธีสร้างคะแนนสถานที่ตั้งแบบหลายมิติที่กำหนดเอง โดยใช้ชุดข้อมูล ข้อมูลเชิงลึกเกี่ยวกับสถานที่ ใน BigQuery การเปลี่ยนข้อมูลจุดที่น่าสนใจให้เป็นเมตริกที่มีความหมายจะช่วยเพิ่มคุณค่าให้กับแอปพลิเคชันอสังหาริมทรัพย์ ค้าปลีก หรือการท่องเที่ยว และให้ข้อมูลที่เกี่ยวข้องซึ่งผู้ใช้ต้องการ นอกจากนี้ เรายังมีตัวเลือกในการใช้ Gemini Developer API เป็นวิธีที่มีประสิทธิภาพ ในการคำนวณคะแนนตำแหน่ง
เพิ่มมูลค่าทางธุรกิจด้วยคะแนนที่ปรับแต่ง
ตัวอย่างต่อไปนี้แสดงให้เห็นวิธีที่คุณสามารถแปลข้อมูลตำแหน่งดิบเป็นเมตริกที่เน้นผู้ใช้เป็นหลักและมีประสิทธิภาพเพื่อปรับปรุงแอปพลิเคชัน
- นักพัฒนาอสังหาริมทรัพย์สามารถสร้าง "คะแนนความเป็นมิตรกับครอบครัว" หรือ "คะแนนในฝันของคนเดินทาง" เพื่อช่วยให้ผู้ซื้อและผู้เช่าเลือกย่านที่สมบูรณ์แบบซึ่งตรงกับไลฟ์สไตล์ของตนได้ ซึ่งจะช่วยเพิ่มการมีส่วนร่วมของผู้ใช้ โอกาสในการขายที่มีคุณภาพสูงขึ้น และ Conversion ที่เร็วขึ้น
- วิศวกรด้านการท่องเที่ยวและโรงแรมสามารถสร้าง "คะแนนสถานบันเทิงยามค่ำคืน" หรือ "คะแนนสวรรค์ของนักท่องเที่ยว" เพื่อช่วยให้นักเดินทางเลือกโรงแรมที่ตรงกับสไตล์การพักผ่อน ซึ่งจะช่วยเพิ่มอัตราการจองและความพึงพอใจของลูกค้า
- นักวิเคราะห์ค้าปลีกสามารถสร้าง "คะแนนฟิตเนสและสุขภาพ" เพื่อระบุ สถานที่ตั้งที่เหมาะสมที่สุดสำหรับยิมหรือร้านขายอาหารเพื่อสุขภาพแห่งใหม่โดยอิงตาม ธุรกิจเสริมที่อยู่ใกล้เคียง เพื่อเพิ่มศักยภาพในการกำหนดเป้าหมายไปยังกลุ่มประชากรผู้ใช้ที่เหมาะสม ให้ได้สูงสุด
ในคู่มือนี้ คุณจะได้เรียนรู้ระเบียบวิธีแบบ 3 ส่วนที่ยืดหยุ่นสำหรับการสร้างคะแนนสถานที่ตั้งที่กำหนดเองทุกประเภทโดยใช้ข้อมูล Places ใน BigQuery โดยตรง เรา จะอธิบายรูปแบบนี้โดยการสร้างคะแนนตัวอย่างที่แตกต่างกัน 2 รายการ ได้แก่ คะแนนความเป็นมิตรกับครอบครัวและคะแนนสวรรค์ของคนรักสัตว์ แนวทางนี้ ช่วยให้คุณก้าวข้ามการนับสถานที่และใช้ประโยชน์จากแอตทริบิวต์ที่สมบูรณ์และมีรายละเอียด ภายในชุดข้อมูลข้อมูลเชิงลึกเกี่ยวกับสถานที่ คุณใช้ข้อมูล เช่น เวลาทำการ สถานที่เหมาะสำหรับเด็กหรือไม่ หรืออนุญาตให้นำสุนัขเข้าได้หรือไม่ เพื่อ สร้างเมตริกที่ซับซ้อนและมีความหมายสำหรับผู้ใช้ได้
เวิร์กโฟลว์ของโซลูชัน

บทแนะนำนี้ใช้คำค้นหา SQL ที่มีประสิทธิภาพเพียงรายการเดียวเพื่อสร้างคะแนนที่กำหนดเองซึ่งคุณ สามารถปรับให้เข้ากับกรณีการใช้งานใดก็ได้ เราจะอธิบายกระบวนการนี้โดยการสร้างคะแนนตัวอย่าง 2 รายการสำหรับชุดข้อมูลอพาร์ตเมนต์สมมติ
ข้อกำหนดเบื้องต้น
ก่อนเริ่มต้น ให้ทำตามวิธีการ เหล่านี้เพื่อตั้งค่าข้อมูลเชิงลึกเกี่ยวกับสถานที่
1. สร้างรากฐาน: สถานที่ที่สนใจ
คุณต้องมีรายชื่อสถานที่ที่ต้องการวิเคราะห์ก่อนจึงจะสร้างคะแนนได้
ขั้นตอนแรกคือการตรวจสอบว่าข้อมูลนี้มีอยู่ในรูปแบบตารางใน BigQuery
เคล็ดลับคือการมีตัวระบุที่ไม่ซ้ำกันสำหรับแต่ละสถานที่และGEOGRAPHY
คอลัมน์ที่จัดเก็บพิกัด
คุณสร้างและป้อนข้อมูลตารางสถานที่เพื่อจัดอันดับด้วยการค้นหาต่อไปนี้ได้
CREATE OR REPLACE TABLE `your_project.your_dataset.apartment_listings`
(
id INT64,
name STRING,
location GEOGRAPHY
);
INSERT INTO `your_project.your_dataset.apartment_listings` VALUES
(1, 'The Downtowner', ST_GEOGPOINT(-74.0077, 40.7093)),
(2, 'Suburban Oasis', ST_GEOGPOINT(-73.9825, 40.7507)),
(3, 'Riverside Lofts', ST_GEOGPOINT(-73.9470, 40.8079))
-- More rows can be added here
. . . ;
การดำเนินการ SELECT * กับข้อมูลตำแหน่งจะมีลักษณะคล้ายกับตัวอย่างต่อไปนี้

2. พัฒนากฎหลัก: การค้นหาการให้คะแนน
เมื่อกำหนดสถานที่ตั้งแล้ว ขั้นตอนถัดไปคือการค้นหา กรอง และนับ
สถานที่ใกล้เคียงที่เกี่ยวข้องกับคะแนนที่กำหนดเอง ทั้งหมดนี้ทำได้ภายใน
คำสั่ง SELECT เดียว
ค้นหาสิ่งที่อยู่ใกล้เคียงด้วยการค้นหาเชิงพื้นที่
ก่อนอื่น คุณต้องค้นหาสถานที่ทั้งหมดจากชุดข้อมูลข้อมูลเชิงลึกเกี่ยวกับสถานที่ซึ่งอยู่
ภายในระยะทางที่กำหนดจากสถานที่ตั้งแต่ละแห่ง ฟังก์ชัน BigQuery
ST_DWITHIN เหมาะสำหรับกรณีนี้ เราจะทำการJOINระหว่างตาราง apartment_listings กับตาราง places_insights เพื่อค้นหาสถานที่ทั้งหมดภายในรัศมี 800 เมตร LEFT JOIN ช่วยให้มั่นใจได้ว่าระบบจะรวมสถานที่ตั้งเดิมทั้งหมดไว้ในผลการค้นหา แม้ว่าจะไม่พบสถานที่ที่ตรงกันในบริเวณใกล้เคียงก็ตาม
กรองตามความเกี่ยวข้องด้วยแอตทริบิวต์ขั้นสูง
ในส่วนนี้ คุณจะแปลงแนวคิดที่เป็นนามธรรมของคะแนนให้เป็นตัวกรองข้อมูลที่เป็นรูปธรรม สำหรับคะแนนตัวอย่าง 2 รายการ เกณฑ์จะแตกต่างกันดังนี้
- สำหรับ "คะแนนความเป็นมิตรกับครอบครัว" เราจะพิจารณาจากสวนสาธารณะ พิพิธภัณฑ์ และ ร้านอาหารที่เหมาะสำหรับเด็กโดยเฉพาะ
- สำหรับ "คะแนนสวรรค์ของเจ้าของสัตว์เลี้ยง" เราจะพิจารณาสวนสาธารณะ คลินิกสัตวแพทย์ ร้านขายสัตว์เลี้ยง รวมถึงร้านอาหารหรือคาเฟ่ที่อนุญาตให้นำสุนัขเข้าไปได้
คุณกรองแอตทริบิวต์ที่เฉพาะเจาะจงเหล่านี้ได้โดยตรงในอนุประโยค WHERE ของ
การค้นหา
รวบรวมข้อมูลเชิงลึกสำหรับแต่ละสถานที่
สุดท้าย คุณต้องนับจำนวนสถานที่ที่เกี่ยวข้องซึ่งพบสำหรับอพาร์ตเมนต์แต่ละแห่ง
โดยGROUP BYจะรวบรวมผลลัพธ์ และฟังก์ชัน COUNTIF
จะนับสถานที่ที่ตรงกับเกณฑ์ที่เฉพาะเจาะจงสำหรับคะแนนแต่ละรายการ
คําค้นหาด้านล่างจะรวม 3 ขั้นตอนนี้เข้าด้วยกันเพื่อคํานวณจํานวนดิบสําหรับคะแนนทั้ง 2 รายการในรอบเดียว
-- This Common Table Expression (CTE) will hold the raw counts for each score component.
WITH insight_counts AS (
SELECT WITH AGGREGATION_THRESHOLD -- Correctly includes the mandatory aggregation threshold
apartments.id,
apartments.name,
COUNTIF(places.primary_type = 'park') AS park_count,
COUNTIF(places.primary_type = 'museum') AS museum_count,
COUNTIF(places.primary_type = 'restaurant' AND places.good_for_children = TRUE) AS family_restaurant_count,
COUNTIF(places.primary_type IN ('veterinary_care', 'pet_store')) AS pet_service_count,
COUNTIF(places.allows_dogs = TRUE) AS dog_friendly_place_count
FROM
`your_project.your_dataset.apartment_listings` AS apartments
LEFT JOIN
`your-project.places_insights___us.places` AS places -- Corrected table name for the US dataset
ON ST_DWITHIN(apartments.location, places.point, 800) -- Find places within 800 meters
GROUP BY
apartments.id, apartments.name
)
SELECT * FROM insight_counts;
ผลลัพธ์ของการค้นหานี้จะคล้ายกับผลลัพธ์ต่อไปนี้

เราจะต่อยอดจากผลลัพธ์เหล่านี้ในส่วนถัดไป
3. สร้างคะแนน
ตอนนี้คุณมีจำนวนสถานที่และการให้น้ำหนักสำหรับสถานที่แต่ละประเภทของแต่ละ สถานที่แล้ว คุณจึงสร้างคะแนนสถานที่ที่กำหนดเองได้ เราจะพูดถึง 2 ตัวเลือกในส่วนนี้ ได้แก่ การใช้การคำนวณที่กำหนดเองใน BigQuery หรือการใช้ Gemini Developer API
ตัวเลือกที่ 1: ใช้การคำนวณที่กำหนดเองใน BigQuery
จำนวนดิบจากขั้นตอนก่อนหน้ามีประโยชน์ แต่เป้าหมายคือคะแนนเดียวที่ใช้งานง่าย ขั้นตอนสุดท้ายคือการรวมจำนวนเหล่านี้โดยใช้ น้ำหนัก แล้วปรับผลลัพธ์ให้อยู่ในระดับ 0-10
การใช้การถ่วงน้ำหนักที่กำหนดเอง การเลือกการถ่วงน้ำหนักเป็นทั้งศาสตร์และศิลป์ โดยควรสะท้อนถึงลำดับความสำคัญทางธุรกิจของคุณ หรือสิ่งที่คุณเชื่อว่าสำคัญที่สุดสำหรับผู้ใช้ สำหรับคะแนน "เหมาะสำหรับครอบครัว" คุณอาจตัดสินใจว่า สวนสาธารณะสำคัญเป็น 2 เท่าของพิพิธภัณฑ์ เริ่มต้นด้วยสมมติฐานที่ดีที่สุดและ ทำซ้ำตามความคิดเห็นของผู้ใช้
การปรับคะแนนให้เป็นมาตรฐาน การค้นหาด้านล่างใช้ Common Table Expressions
(CTE) 2 รายการ โดยรายการแรกจะคำนวณจำนวนดิบเช่นเดียวกับก่อนหน้า และรายการที่ 2 จะคำนวณ
คะแนนแบบถ่วงน้ำหนัก จากนั้นSELECTคำสั่งสุดท้ายจะทำการปรับค่าให้เป็นช่วงต่ำสุด-สูงสุด
ในคะแนนที่มีการถ่วงน้ำหนัก ระบบจะแสดงผลคอลัมน์ location ของตารางตัวอย่าง
apartment_listings เพื่อเปิดใช้การแสดงข้อมูลผ่านภาพบนแผนที่
WITH
-- CTE 1: Count nearby amenities of interest for each apartment listing.
insight_counts AS (
SELECT WITH AGGREGATION_THRESHOLD
apartments.id,
apartments.name,
COUNTIF(places.primary_type = 'park') AS park_count,
COUNTIF(places.primary_type = 'museum') AS museum_count,
COUNTIF(places.primary_type = 'restaurant' AND places.good_for_children = TRUE) AS family_restaurant_count,
COUNTIF(places.primary_type IN ('veterinary_care', 'pet_store')) AS pet_service_count,
COUNTIF(places.allows_dogs = TRUE) AS dog_friendly_place_count
FROM
`your_project.your_dataset.apartment_listings` AS apartments
LEFT JOIN
`your-project.places_insights___us.places` AS places
ON ST_DWITHIN(apartments.location, places.point, 800)
GROUP BY
apartments.id,
apartments.name
),
-- CTE 2: Apply custom weighting to the amenity counts to generate raw scores.
raw_scores AS (
SELECT
id,
name,
(park_count * 3.0) + (museum_count * 1.5) + (family_restaurant_count * 2.5) AS family_friendliness_score,
(park_count * 2.0) + (pet_service_count * 3.5) + (dog_friendly_place_count * 2.5) AS pet_paradise_score
FROM
insight_counts
)
-- Final Step: Normalize scores to a 0-10 scale and rejoin to retrieve the location geometry.
SELECT
raw_scores.id,
raw_scores.name,
apartments.location,
raw_scores.family_friendliness_score,
raw_scores.pet_paradise_score,
-- Normalize Family Score using a MIN/MAX window function.
ROUND(
COALESCE(
SAFE_DIVIDE(
(raw_scores.family_friendliness_score - MIN(raw_scores.family_friendliness_score) OVER ()),
(MAX(raw_scores.family_friendliness_score) OVER () - MIN(raw_scores.family_friendliness_score) OVER ())
) * 10,
0
),
2
) AS normalized_family_score,
-- Normalize Pet Score using a MIN/MAX window function.
ROUND(
COALESCE(
SAFE_DIVIDE(
(raw_scores.pet_paradise_score - MIN(raw_scores.pet_paradise_score) OVER ()),
(MAX(raw_scores.pet_paradise_score) OVER () - MIN(raw_scores.pet_paradise_score) OVER ())
) * 10,
0
),
2
) AS normalized_pet_score
FROM
raw_scores
JOIN
`your_project.your_dataset.apartment_listings` AS apartments
ON raw_scores.id = apartments.id;
ผลลัพธ์ของคำค้นหาจะคล้ายกับด้านล่าง 2 คอลัมน์สุดท้ายคือ คะแนนที่ปรับให้เป็นค่าปกติ

ทำความเข้าใจคะแนนที่ปรับแล้ว
คุณควรเข้าใจว่าเหตุใดขั้นตอนการปรับให้เป็นมาตรฐานขั้นสุดท้ายนี้จึงมีคุณค่ามาก
คะแนนถ่วงน้ำหนักดิบอาจมีตั้งแต่ 0 ไปจนถึงจำนวนที่อาจมาก
โดยขึ้นอยู่กับความหนาแน่นของเมืองในสถานที่ตั้งของคุณ คะแนน 500
ไม่มีความหมายสำหรับผู้ใช้ที่ไม่มีบริบท
การปรับให้เป็นมาตรฐานจะเปลี่ยนตัวเลขเชิงนามธรรมเหล่านี้เป็นการจัดอันดับแบบสัมพัทธ์ การปรับขนาดผลลัพธ์จาก 0 ถึง 10 จะช่วยให้คะแนนสื่อสารได้อย่างชัดเจนว่าแต่ละสถานที่ เป็นอย่างไรเมื่อเทียบกับสถานที่อื่นๆ ในชุดข้อมูลที่เฉพาะเจาะจง
- ระบบจะกำหนดคะแนน 10 ให้กับสถานที่ที่มีคะแนนดิบสูงสุด เพื่อทำเครื่องหมายให้เป็นตัวเลือกที่ดีที่สุดในชุดปัจจุบัน
- ระบบจะกำหนดคะแนน 0 ให้กับสถานที่ที่มีคะแนนดิบต่ำที่สุด ซึ่งจะกลายเป็นเกณฑ์พื้นฐานสำหรับการเปรียบเทียบ ซึ่งไม่ได้หมายความว่าที่พักไม่มีสิ่งอำนวยความสะดวกเลย แต่หมายความว่าที่พักนั้นไม่เหมาะสมที่สุดเมื่อเทียบกับตัวเลือกอื่นๆ ที่กำลังประเมิน
- คะแนนอื่นๆ ทั้งหมดจะอยู่ระหว่างคะแนนเหล่านี้ตามสัดส่วน ซึ่งช่วยให้ผู้ใช้มีวิธีที่ชัดเจนและใช้งานง่ายในการเปรียบเทียบตัวเลือกต่างๆ ได้อย่างรวดเร็ว
ตัวเลือกที่ 2: ใช้ Gemini Developer API
Gemini Developer API เป็นอีกทางเลือกแทนการใช้สูตรทางคณิตศาสตร์แบบคงที่ใน BigQuery ซึ่งเป็นวิธีที่มีประสิทธิภาพในการคำนวณคะแนนสถานที่ที่กำหนดเองซึ่งมีความแตกต่างกันเล็กน้อย
แม้ว่าตัวเลือกที่ 1 จะเหมาะสำหรับการให้คะแนนเชิงปริมาณโดยอิงตามจำนวนสิ่งอำนวยความสะดวก แต่ก็ไม่สามารถนำข้อมูลเชิงคุณภาพมาพิจารณาได้ง่ายๆ การใช้ Gemini ช่วยให้คุณ รวมตัวเลขจากการค้นหาข้อมูลเชิงลึกเกี่ยวกับสถานที่กับข้อมูลที่ไม่มีโครงสร้างได้ เช่น คำอธิบายข้อความของข้อมูลอพาร์ตเมนต์ (เช่น "ที่พักนี้เหมาะสำหรับครอบครัวและย่านนี้เงียบสงบในตอนกลางคืน") หรือค่ากำหนดของผู้ใช้ที่เฉพาะเจาะจง (เช่น "ผู้ใช้รายนี้จองที่พักสำหรับครอบครัวและต้องการที่พักในย่านที่เงียบสงบ ในทำเลใจกลางเมือง") เพื่อสร้างคะแนนที่ละเอียดมากขึ้น
เตรียมข้อมูลสำหรับ Gemini
หากต้องการใช้วิธีนี้ ให้เปลี่ยนผลลัพธ์ของการรวบรวมข้อมูล BigQuery (จากขั้นตอนที่ 2) เป็นรูปแบบ Markdown แล้ว
รวมเข้ากับข้อมูลเชิงคุณภาพ เช่น Listing Description
ในตัวอย่างนี้ เรามีข้อมูล 2 รายการที่มีลักษณะแตกต่างกันอย่างมาก นอกจากนี้ เรายังใส่ Target User Profile เพื่อให้ Gemini ทราบว่าเราให้คะแนนสิ่งเหล่านี้สำหรับใคร
## Listing 1: The Downtowner
* **ID:** 1
* **Amenity Counts:**
* Parks: 70
* Museums: 34
* Family-Friendly Restaurants: 141
* **Listing Description:** A vibrant apartment in the heart of the city.
Great for nightlife, but can be noisy on weekends. Close to several
small playgrounds.
* **Target User Profile:** Young family with a toddler, looking for a
balance of activity and quiet.
---
## Listing 2: Suburban Oasis
* **ID:** 2
* **Amenity Counts:**
* Parks: 34
* Museums: 30
* Family-Friendly Restaurants: 318
* **Listing Description:** Quiet, tree-lined street. Large backyard and easy
walking distance to a major park and elementary school.
* **Target User Profile:** Young family with a toddler, looking for a
balance of activity and quiet.
คำสั่งของระบบ
Gemini ต้องมีคำสั่งของระบบเพื่อทราบวิธีพิจารณาจุดข้อมูลต่างๆ เหล่านี้ คุณสามารถบอกโมเดลอย่างชัดเจนว่าสิ่งอำนวยความสะดวกบางอย่างมีความสำคัญเพียงใด พร้อมทั้งสั่งให้พิจารณาความรู้สึกของคำอธิบายที่เป็นข้อความด้วย
You are an expert real estate analyst. Your goal is to generate a
"Family-Friendliness Score" between 0.0 and 10.0 for a list of apartment
locations.
For each location, you will be given quantitative data (amenity counts)
and qualitative data (descriptions and user profiles).
Scoring Criteria:
- High importance: Proximity to parks and a high count of family-friendly
restaurants.
- Medium importance: Proximity to museums.
- Negative modifiers: Descriptions indicating excessive noise, lack of
safe play areas, or mismatch with the user profile.
- Positive modifiers: Descriptions indicating quiet areas, safe streets,
or extra space (e.g., backyards).
Analyze the provided data and generate scores based on these criteria.
เอาต์พุตที่มีโครงสร้าง
คุณไม่ควร
พึ่งพาเฉพาะพรอมต์สำหรับรูปแบบเอาต์พุตเพื่อให้มั่นใจถึงความน่าเชื่อถือเมื่อผสานรวม AI เข้ากับแอปพลิเคชัน แต่ให้ใช้ฟีเจอร์เอาต์พุตที่มีโครงสร้าง
ของ Gemini แทน การระบุ responseSchema จะช่วยรับประกันว่าโมเดลจะแสดงผลอาร์เรย์ JSON ที่สะอาดและแยกวิเคราะห์ได้ ซึ่งตรงกับข้อกำหนดของระบบของคุณทุกประการ
สำหรับตัวอย่างของเรา เราสามารถบังคับใช้สคีมาต่อไปนี้
{
"type": "ARRAY",
"items": {
"type": "OBJECT",
"required": ["location_id", "name", "score", "reasoning"],
"properties": {
"location_id": {"type": "STRING"},
"name": {"type": "STRING"},
"score": {
"type": "NUMBER"
},
"reasoning": {
"type": "STRING"
}
}
}
}
ตัวอย่างเอาต์พุต
เมื่อคุณส่งพรอมต์พร้อมกับ responseSchema ที่กำหนดไว้ Gemini จะแสดงอาร์เรย์ JSON ที่มีโครงสร้างซึ่งแอปพลิเคชันของคุณพร้อมใช้งานได้โดยตรง
สังเกตในเอาต์พุตว่า Gemini จัดการการแลกเปลี่ยนอย่างไร "The Downtowner" มีสวนสาธารณะจำนวนมาก แต่ Gemini ระบุคำอธิบายว่า "เสียงดังในวันหยุดสุดสัปดาห์" เป็นข้อเสียที่สำคัญสำหรับเด็กวัยหัดเดิน ในขณะเดียวกัน "Suburban Oasis" ก็ได้รับคะแนนเกือบสมบูรณ์แบบจากการรวมความหนาแน่นของสิ่งอำนวยความสะดวกที่ยอดเยี่ยมเข้ากับ คุณลักษณะเชิงคุณภาพที่เกี่ยวข้อง เช่น "ถนนที่เงียบสงบและเรียงรายไปด้วยต้นไม้"
[
{
"id": 1,
"location_name": "The Downtowner",
"analysis_notes": "Excellent amenity counts (parks, restaurants, museums), fulfilling
quantitative metrics. However, the qualitative data indicates excessive weekend
noise and a strong nightlife focus, conflicting directly with the target
user's need for quiet and suitability for a toddler. This mismatch
significantly lowers the final score.",
"family_friendliness_score": 5.5
},
{
"id": 2,
"location_name": "Suburban Oasis",
"analysis_notes": "Outstanding quantitative data, especially the very high count of
family-friendly restaurants. The qualitative description (quiet, tree-lined street,
large backyard, proximity to elementary school and major park) aligns perfectly with
and exceeds the needs of the target family profile. High positive modifiers
result in a near-perfect score.",
"family_friendliness_score": 9.8
}
]
วิธีนี้ช่วยให้คุณให้คะแนนที่ปรับตามโปรไฟล์ของผู้ใช้แต่ละรายได้อย่างมาก ซึ่งจะทำให้ผู้ใช้เข้าใจได้ และปรับให้เหมาะกับผู้ใช้แต่ละราย
4. แสดงภาพคะแนนของคุณบนแผนที่
BigQuery Studio มีการแสดงภาพแผนที่แบบผสานรวม
สําหรับผลการค้นหาใดๆ ที่มีคอลัมน์ GEOGRAPHY เนื่องจากเอาต์พุตการค้นหาของเรา
คือคอลัมน์ location คุณจึงเห็นภาพคะแนนได้ทันที
การคลิกแท็บ Visualization จะแสดงแผนที่ และData Column
เมนูแบบเลื่อนลงจะควบคุมคะแนนตำแหน่งเพื่อแสดงภาพ ในตัวอย่างนี้ normalized_pet_score จะแสดงภาพจากตัวอย่างตัวเลือกที่ 1 โปรดทราบว่าเราได้เพิ่มสถานที่ตั้งอื่นๆ ลงในตาราง apartment_listings สำหรับตัวอย่างนี้

การแสดงข้อมูลด้วยภาพจะเผยให้เห็นในพริบตาว่าสถานที่ที่เหมาะสมที่สุดสำหรับคะแนนที่สร้างขึ้นคือที่ใด โดยวงกลมสีเขียวเข้มแสดงถึงสถานที่ที่มี normalized_pet_score สูงกว่าในกรณีนี้ ดูตัวเลือกการแสดงข้อมูล Places Insights เพิ่มเติมได้ที่แสดงผลการค้นหา
บทสรุป
ตอนนี้คุณมีวิธีการที่มีประสิทธิภาพและทำซ้ำได้ในการสร้างคะแนนสถานที่ที่ซับซ้อน
คุณเริ่มต้นด้วยสถานที่ตั้งและสร้างการค้นหา SQL รายการเดียวใน BigQuery ซึ่งจะค้นหาสถานที่ใกล้เคียงที่มี ST_DWITHIN กรองตามแอตทริบิวต์ขั้นสูง เช่น good_for_children และ allows_dogs และรวบรวมผลลัพธ์ด้วย COUNTIF การใช้การถ่วงน้ำหนักที่กำหนดเองและการปรับผลลัพธ์ให้เป็นมาตรฐาน
ทำให้คุณได้คะแนนเดียวที่ใช้งานง่ายซึ่งให้ข้อมูลเชิงลึกที่นำไปใช้ได้จริง
คุณสามารถใช้รูปแบบนี้โดยตรงเพื่อเปลี่ยนข้อมูลตำแหน่งดิบให้เป็น
ความได้เปรียบทางการแข่งขันที่สำคัญ
การดำเนินการถัดไป
ตอนนี้ถึงตาคุณสร้างแล้ว บทแนะนำนี้มีเทมเพลตให้ คุณสามารถใช้ ข้อมูลที่สมบูรณ์ซึ่งมีอยู่ในสคีมาข้อมูลเชิงลึกเกี่ยวกับสถานที่เพื่อสร้างคะแนนที่ จำเป็นที่สุดสำหรับกรณีการใช้งานของคุณ ลองพิจารณาคะแนนอื่นๆ ที่คุณสร้างได้
- "คะแนนสถานบันเทิงยามค่ำคืน": รวมตัวกรองสำหรับ
primary_type(bar,night_club),price_levelและเวลาเปิดทำการช่วงดึกเพื่อค้นหาพื้นที่ที่มีชีวิตชีวาที่สุดหลังค่ำ - "คะแนนการออกกำลังกายและสุขภาพ": นับ
gyms,parksและhealth_food_storesที่อยู่ใกล้เคียง และกรองร้านอาหารที่มีserves_vegetarian_foodเพื่อให้คะแนนสถานที่ตั้งสำหรับผู้ใช้ที่ใส่ใจสุขภาพ - "คะแนนความฝันของคนเดินทาง": ค้นหาสถานที่ที่มี
transit_stationและparkingจำนวนมากในบริเวณใกล้เคียงเพื่อช่วยผู้ใช้ที่ให้ความสำคัญกับการเข้าถึงระบบขนส่ง
ผู้ร่วมให้ข้อมูล
Henrik Valve | DevX Engineer