Trích xuất số điện thoại từ văn bản

Dán bất kỳ văn bản nào chứa văn xuôi, chữ ký hoặc mã HTML được thu thập, rồi trích xuất tất cả số điện thoại có trong đó. Công cụ nhận diện định dạng (xxx) xxx-xxxx dùng ở Bắc Mỹ, các dạng phân tách bằng khoảng trắng kiểu châu Âu, định dạng quốc tế gọn +CC..., cũng như các kiểu viết tự do mà người ta thường gõ trong email (555.123.4567, +44 20 7946 0958). Kết quả được trả về đúng dạng tìm thấy, giúp bạn có thể chuẩn hóa sau này bằng một thư viện như libphonenumber.

Cách trích xuất số điện thoại

  1. 1

    Dán nguồn

    Hãy dán văn bản vào: trang liên hệ, chữ ký email, dữ liệu xuất CSV và nhật ký trò chuyện.

  2. 2

    Thực hiện quét

    regex sẽ duyệt văn bản để tìm các chuỗi số gồm ít nhất 7 chữ số, kèm theo các dấu phân cách hoặc mã quốc gia có thể nhận diện được.

  3. 3

    Xem lại các kết quả khớp

    Kết quả hiển thị một số ứng viên mỗi dòng, các số trùng lặp được tự động loại bỏ. Hãy rà soát danh sách để phát hiện kết quả dương tính giả (số đơn hàng, ngày tháng) và sửa văn bản gốc nếu có gì lọt vào.

  4. 4

    Sao chép hoặc xuất

    Lấy danh sách sạch dưới dạng văn bản thông thường, mỗi dòng một số, sẵn sàng sử dụng cho hệ thống CRM hoặc công cụ gọi điện của bạn.

Mẫu số điện thoại mà hệ thống nhận diện được

Các số điện thoại thường rất phức tạp do mỗi quốc gia đều có quy ước riêng, và người dùng cũng thường không tuân thủ những quy tắc này. Công cụ trích xuất tập trung vào các cấu trúc rõ ràng mà chúng ta dễ nhận biết trong văn bản thực tế.

Các định dạng được chấp nhận (ví dụ)

Định dạng Ví dụ Ghi chú
E.164 +14155552671 Tiêu chuẩn vàng; dùng để lưu trữ.
Quốc tế, cách bằng khoảng trắng +44 20 7946 0958 Số cố định của Vương quốc Anh với các nhóm cách nhau bằng khoảng trắng.
NANP Bắc Mỹ (415) 555-2671 Mã vùng đặt trong dấu ngoặc.
Bắc Mỹ, cách bằng dấu chấm 415.555.2671 Thường dùng trong chữ ký email.
Địa phương châu Âu 020 7946 0958 Tiền tố trong nước bắt đầu bằng số 0.
Mexico 10 chữ số 55 1234 5678 Không có mã quốc gia.

Những kết quả dương tính giả cần lưu ý

  • Số đơn hàng và số theo dõi: Số theo dõi FedEx gồm 13 chữ số có thể trông giống như một số điện thoại nếu được viết với khoảng trắng; vui lòng kiểm tra bối cảnh xung quanh.
  • Ngày tháng: 2024 09 15 có thể khớp với các mẫu gồm từ 7 chữ số trở lên tùy thuộc vào chế độ regex. Hãy lọc ngày tháng trước tiên nếu nguồn dữ liệu chứa nhiều ngày tháng.
  • Số thẻ tín dụng: Các nhóm số gồm 16 chữ số trong định dạng 4xxx xxxx xxxx xxxx có thể được khớp với nhau. Hãy che giấu dữ liệu PCI trước khi trích xuất.

Gợi ý: Hãy chuẩn hóa dữ liệu trước khi lưu trữ

Việc nhập cùng một số điện thoại thực theo nhiều cách khác nhau chính là nguyên nhân gốc rễ gây khó khăn khi loại bỏ trùng lặp trong CRM. Chỉ cần một lượt xử lý nhanh bằng thư viện hiểu rõ quy tắc của từng quốc gia (libphonenumber, phonenumbers trong Python, laravel-phone trong PHP) là toàn bộ dữ liệu sẽ được chuyển sang định dạng E.164, định dạng duy nhất nên lưu trong cơ sở dữ liệu.

Câu hỏi thường gặp

Bộ trích xuất trả về kết quả khớp thô; việc suy luận quốc gia yêu cầu một tập dữ liệu gồm các mã gọi và các quy tắc về độ dài. Nếu bạn chỉ quan tâm đến tiền tố +CC, phần này sẽ được giữ nguyên như trong dữ liệu đầu vào.

Bộ trích xuất chỉ trả về số chính; số máy lẻ dạng inline như 555-2671 ext. 123 không nằm trong kết quả khớp. Để lưu trữ đúng chuẩn E.164, hãy tách mọi dữ liệu sau ext, x hoặc # sang một trường riêng.

Đúng vậy, các số điện thoại miễn phí tại Mỹ (800, 888, 877, 866, 855, 844, 833) tuân theo mẫu NANP thông thường. Các số 0800 của Vương quốc Anh và các loại số miễn phí địa phương tương tự cũng được chấp nhận vì chúng trông giống như các số điện thoại cố định thông thường.

Không lưu bất kỳ bản sao nào của dữ liệu đầu vào sau khi phản hồi trích xuất được gửi lại; quá trình xử lý diễn ra trực tiếp trong bộ nhớ của yêu cầu.

Công cụ liên quan

Công cụ này có phiên bản bằng các ngôn ngữ khác