Tuyệt vời! Là một chuyên gia kỹ thuật tạo prompt, tôi sẽ phân tích chi tiết mẫu prompt bạn cung cấp.
1. Phân tích Cấu trúc Prompt
Mẫu prompt này là một ví dụ điển hình của việc sử dụng các biến để tăng tính linh hoạt và khả năng tái sử dụng. Cấu trúc của nó có thể được phân tích như sau:
- Mục tiêu chính: Thực hiện hành động làm sạch dữ liệu.
- Đối tượng tác động: Cụ thể là “cột địa chỉ” trong một “tập dữ liệu bất động sản”.
- Các hành động cụ thể được yêu cầu:
- Chuẩn hóa các viết tắt (với ví dụ minh họa rõ ràng).
- Loại bỏ các ký tự thừa.
- Chuẩn hóa định dạng chung.
- Các biến (Placeholders):
[TÊN_CỘT_ĐỊA_CHỈ]
: Đại diện cho tên của cột chứa dữ liệu địa chỉ cần xử lý. Ký `[…]` chỉ ra đây là một phần cần được thay thế bằng thông tin cụ thể.[TÊN_TẬP_DỮ_LIỆU]
: Đại diện cho tên của tệp hoặc nguồn dữ liệu chứa cột địa chỉ đó.[QUY_ƯỚC_ĐỊA_CHỈ]
: Đây là một biến quan trọng, cho phép người dùng xác định các quy tắc chi tiết hơn về cách chuẩn hóa định dạng địa chỉ (ví dụ: thứ tự đường-phường-quận, cách viết số nhà, tên tỉnh/thành phố).
2. Ý nghĩa & Cách hoạt động
Về mặt kỹ thuật, mẫu prompt này hướng tới việc tạo ra các đoạn mã hoặc chỉ dẫn để thực hiện quy trình xử lý dữ liệu (data cleaning/preprocessing). Khi một mô hình ngôn ngữ lớn (LLM) hoặc một hệ thống tự động nhận được prompt này, nó sẽ hiểu rằng cần phải thực hiện các bước sau:
- Xác định phạm vi: Tìm kiếm và truy cập vào tập dữ liệu mang tên
[TÊN_TẬP_DỮ_LIỆU]
. - Chọn cột mục tiêu: Tập trung vào cột có tên
[TÊN_CỘT_ĐỊA_CHỈ]
. - Thực hiện các phép biến đổi dữ liệu:
- Chuẩn hóa viết tắt: Áp dụng một tập hợp các quy tắc thay thế để nhất quán hóa các từ viết tắt phổ biến trong địa chỉ (ví dụ: “TP.” thành “Thành phố”, “Q.” thành “Quận”, hoặc các tên riêng như “Nguyễn” không nên bị thay đổi nếu nó đúng).
- Loại bỏ ký tự thừa: Xóa bỏ các ký tự không cần thiết, có thể bao gồm khoảng trắng thừa ở đầu/cuối chuỗi, các ký tự đặc biệt không mong muốn (ví dụ: `!`, `@`, `#`, các ký tự control…).
- Chuẩn hóa định dạng: Điều chỉnh cấu trúc của chuỗi địa chỉ để tuân theo một khuôn mẫu nhất quán. Điều này có thể bao gồm việc đảm bảo thứ tự các phần của địa chỉ (số nhà, tên đường, phường/xã, quận/huyện, tỉnh/thành phố), cách viết hoa/thường, chuẩn hóa tên tỉnh/thành phố (ví dụ: “TP.HCM” hoặc “Hồ Chí Minh” thành một dạng duy nhất). Biến
[QUY_ƯỚC_ĐỊA_CHỈ]
là nơi cung cấp các quy tắc chi tiết cho bước này.
Mục tiêu cuối cùng là làm cho dữ liệu địa chỉ trở nên sạch sẽ, nhất quán và dễ dàng cho các phân tích hoặc xử lý tiếp theo (ví dụ: tìm kiếm, phân loại, trực quan hóa trên bản đồ).
3. Ví dụ Minh họa
Dưới đây là một vài ví dụ về cách prompt này có thể được sử dụng để sinh ra các câu lệnh hoặc đoạn mã (giả sử chúng ta đang tương tác với một công cụ phân tích dữ liệu như Pandas trong Python):
Ví dụ 1: Chuẩn hóa cơ bản
Prompt áp dụng biến:
Tiến hành làm sạch cột địa chỉ [Cột_Dia_Chi] trong tập dữ liệu bất động sản [DuLieuBDS.csv]. Chuẩn hóa các viết tắt (ví dụ: 'Ng.N' thành 'Nguyễn', 'ĐC' thành 'Đường'), loại bỏ các ký tự thừa và chuẩn hóa định dạng chung theo quy ước [Địa_Chỉ_VN_Standard].
Đầu ra (giả định – có thể là mã Python/SQL):
# Giả lập mã Python sử dụng Pandas
import pandas as pd
import re
def clean_address(address):
if not isinstance(address, str):
return address # Trả về nguyên bản nếu không phải chuỗi
# 1. Chuẩn hóa viết tắt
address = re.sub(r'bNg.Nb', 'Nguyễn', address, flags=re.IGNORECASE)
address = re.sub(r'bbDCb', 'Đường', address, flags=re.IGNORECASE)
address = re.sub(r'bTP.HCMb', 'Thành phố Hồ Chí Minh', address, flags=re.IGNORECASE)
address = re.sub(r'bQ.s*(d+)b', r'Quận 1', address, flags=re.IGNORECASE) # Ví dụ: Q. 1 -> Quận 1
# 2. Loại bỏ ký tự thừa (khoảng trắng thừa)
address = re.sub(r's+', ' ', address).strip()
# 3. Chuẩn hóa định dạng chung (ví dụ đơn giản: viết hoa chữ cái đầu mỗi phần)
# Quy ước [Địa_Chỉ_VN_Standard] có thể chi tiết hơn, ví dụ chỉ định thứ tự
parts = address.split(',')
cleaned_parts = []
for part in parts:
part = part.strip()
if part:
# Đơn giản hóa: viết hoa chữ cái đầu và giữ nguyên định dạng
cleaned_parts.append(part)
address = ', '.join(cleaned_parts)
return address
# Tải dữ liệu
df = pd.read_csv("DuLieuBDS.csv")
# Áp dụng hàm làm sạch
df['Cột_Dia_Chi'] = df['Cột_Dia_Chi'].apply(clean_address)
print(df[['Cột_Dia_Chi']].head())
Ví dụ 2: Tương tác mở rộng với quy ước chi tiết
Prompt áp dụng biến:
Tiến hành làm sạch cột "Address" trong tập dữ liệu "Prop_Data_2023.xlsx". Sử dụng quy ước [Quy_Uoc_Dia_Chi_HaNoi] để chuẩn hóa các viết tắt đường phố, loại bỏ các ký tự lạ (không phải chữ, số, khoảng trắng, dấu phẩy, dấu gạch ngang), và đảm bảo định dạng cuối cùng là: [Số nhà] [Tên đường], [Phường/Xã], [Quận Huyện], Thành phố Hà Nội.
Đoạn mã/lệnh tương tự sẽ được tạo ra, nhưng mạnh mẽ và chi tiết hơn:
- Hàm thay thế viết tắt sẽ bao gồm tất cả các đường phố phổ biến ở Hà Nội.
- Bộ lọc ký tự sẽ nghiêm ngặt hơn, chỉ cho phép các ký tự được định nghĩa trong quy ước.
- Logic phân tách và ghép lại địa chỉ sẽ tuân thủ cấu trúc “Số nhà Đường, Phường, Quận, Hà Nội” một cách chặt chẽ.
👉 Tóm lại
Mẫu prompt này là một công cụ mạnh mẽ để tự động hóa quy trình xử lý và làm sạch dữ liệu địa chỉ, đặc biệt hữu ích trong lĩnh vực bất động sản. Bằng cách sử dụng các biến rõ ràng như [TÊN_CỘT_ĐỊA_CHỈ]
, [TÊN_TẬP_DỮ_LIỆU]
và [QUY_ƯỚC_ĐỊA_CHỈ]
, nó cho phép người dùng định nghĩa chính xác phạm vi dữ liệu cần xử lý, hành động cần thực hiện và các quy tắc chuẩn hóa cụ thể. Điều này giúp mô hình ngôn ngữ