18 กรกฎาคม 2563

Published กรกฎาคม 18, 2563 by with 0 comment

ดึงข้อมูลตำบล อำเภอ จังหวัดจากที่อยู่ง่าย ๆ ด้วย ThaiAddressParser

สวัสดีผู้อ่านทุกท่านครับ บทความนี้ผมจะพาผู้อ่านไปเขียนโปรแกรมดึงข้อมูลตำบล อำเภอ จังหวัดจากที่อยู่แบบข้อความง่าย ๆ ด้วย ThaiAddressParser กันครับ

สมมติ คุณได้ข้อมูลแบบตัวอย่างนี้
มหาวิทยาลัยขอนแก่น วิทยาเขตหนองคาย 112 หมู่ 7 บ้านหนองเดิ่น ตำบลหนองกอมเกาะ อำเภอเมือง จังหวัดหนองคาย
มาในแบบ Text จำนวนมาก บรรทัดละที่อยู่ โดยที่ไม่ได้มีการแยกฟิลด์ที่อยู่อย่างข้อมูล ตำบล อำเภอ และจังหวัดมาให้ คุณอาจจะนึกถึงต้องเขียนโปรแกรมมาแยกด้วยตัวของคุณเอง

แต่ได้มีนักพัฒนาคนหนึ่งชื่อ LI Shuai จาก Shopee Singapore ได้พัฒนาโปรแกรมแยกข้อมูลตำบล อำเภอ จังหวัดจากที่อยู่แบบข้อความออกมาในชื่อโมดูล ThaiAddressParser

ThaiAddressParser เป็นโมดูลสำหรับใช้แยกข้อมูลตำบล อำเภอ จังหวัดจากที่อยู่แบบข้อความออกมาให้แบบง่าย ๆ แถมข้อมูลตำบล อำเภอ จังหวัด ที่ได้ออกมา ได้ทั้งภาษาไทยกับภาษาอังกฤษออกมาด้วย โดยอาศัยข้อมูลจากวิกิพีเดีย และใช้ MIT License

การติดตั้ง
สามารถติดตั้งได้โดยใช้คำสั่ง
pip install ThaiAddressParser

การใช้งาน
สามารถใช้แยกข้อมูลตำบล อำเภอ จังหวัดจากที่อยู่แบบข้อความออกมาให้แบบง่าย ๆ ตามตัวอย่างนี้ได้เลย
import ThaiAddressParser

address = "มหาวิทยาลัยขอนแก่น วิทยาเขตหนองคาย 112 หมู่ 7 บ้านหนองเดิ่น ตำบลหนองกอมเกาะ อำเภอเมือง จังหวัดหนองคาย"

print(ThaiAddressParser.parse(address))

ผลลัพธ์
{'district': {'en': 'Mueang Nong Khai', 'thai': 'เมืองหนองคาย'},
 'original_address': 'มหาวิทยาลัยขอนแก่น วิทยาเขตหนองคาย 112 หมู่ 7 บ้านหนองเดิ่น ตำบลหนองกอมเกาะ อำเภอเมือง จังหวัดหนองคาย',
 'parsed_address': 'มหาวิทยาลัยขอนแก่น วิทยาเขตหนองคาย 112 หมู่ 7 บ้านหนองเดิ่น ต.หนองกอมเกาะ อ.เมืองหนองคาย จ.หนองคาย',
 'province': {'en': 'Nong Khai', 'thai': 'หนองคาย'},
 'remaining_address': 'มหาวิทยาลัยขอนแก่น วิทยาเขตหนองคาย 112 หมู่ 7 บ้านหนองเดิ่น',
 'sub_district': {'en': 'Nong Kom Ko', 'thai': 'หนองกอมเกาะ'}}  

Google Colab สำหรับลองรัน : colab.research.google.com/drive/1QOJY15CFwRW2d2JSW-bugUaeIdqEfAtE?usp=sharing
 
สามารถเข้าไปดู GitHub ของ ThaiAddressParser ได้ที่ github.com/HandsomeBrotherShuaiLi/ThaiAddressParser

0 ความคิดเห็น:

โพสต์ความคิดเห็น

แสดงความคิดเห็นได้ครับ :)