การทำความสะอาดข้อความสำหรับปัญญาประดิษฐ์ด้วยนิพจน์ רגูลาร์
นำแท็ก HTML เครื่องหมายวรรคตอน URL และอีเมลออก — สร้างฟังก์ชันเตรียมข้อความ
การทำความสะอาดข้อความสำหรับปัญญาประดิษฐ์ด้วยนิพจน์ רגูลาร์ เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
ทำไมต้องทำความสะอาดข้อความสำหรับปัญญาประดิษฐ์
ข้อความดิบจากเว็บเต็มไปด้วยสิ่งรบกวน เช่น แท็ก HTML, URL, อีเมล, ช่องว่างเกิน และอักขระพิเศษ การป้อนข้อมูลเหล่านี้ให้โมเดลทำให้ใช้ความสามารถโดยเปล่าประโยชน์และลดคุณภาพผลลัพธ์
นิพจน์ปกติเป็นเครื่องมือหลักสำหรับการเตรียมข้อความล่วงหน้า เราจะสร้างกระบวนการทำความสะอาดทีละขั้นตอน
ตัวอย่างข้อมูลที่ยุ่งเหยิง
นี่คือลักษณะของสตริงที่คุณอาจขูดมาจากเว็บ แต่ละขั้นตอนการทำความสะอาดจะจัดการกับสิ่งรบกวนคนละประเภท
raw = "<p>Contact us at info@shop.com or visit https://shop.com NOW!!! Thanks</p>"การลบแท็ก HTML
แท็ก HTML มีลักษณะเหมือน <tag> รูปแบบ <[^>]+> จะจับคู่ < ตามด้วยอักขระใด ๆ ที่ไม่ใช่ > และปิดท้ายด้วย >
แทนที่แท็กเหล่านี้ด้วยสตริงว่าง (สำหรับ HTML ที่ซับซ้อน ควรใช้ตัวแยกวิเคราะห์อย่าง BeautifulSoup แต่นิพจน์ปกติก็เหมาะสำหรับการทำความสะอาดอย่างรวดเร็ว)
import re
text = re.sub("<[^>]+>", "", raw)
print(text) # "Contact us at info@shop.com or visit https://shop.com NOW!!! Thanks"การลบ URL
URL จะเริ่มต้นด้วย http:// หรือ https:// ตามด้วยอักขระที่ไม่ใช่ช่องว่าง จับคู่และลบ URL เหล่านั้นออก
import re
text = re.sub("https?://\S+", "", text)
print(text) # URL removedการลบที่อยู่อีเมล
รูปแบบอีเมลอย่างง่ายประกอบด้วยอักขระคำ ตามด้วย @ โดเมน จุด และโดเมนระดับบนสุด
import re
text = re.sub("\S+@\S+\.\S+", "", text)
print(text) # email removedการปกปิดแทนการลบ
สำหรับชุดข้อมูลด้านความเป็นส่วนตัว คุณมักจะปกปิดข้อมูลที่ละเอียดอ่อนแทนการลบ เพื่อคงโครงสร้างของประโยคไว้
import re
masked = re.sub("\S+@\S+\.\S+", "[EMAIL]", "reach me at a@b.com please")
print(masked) # "reach me at [EMAIL] please"การลบอักขระพิเศษ
เก็บตัวอักษร ตัวเลข และช่องว่างไว้ แล้วลบเครื่องหมายวรรคตอนและสัญลักษณ์ด้วยชุดอักขระแบบปฏิเสธ สำหรับแต่ละงาน ให้พิจารณาว่าควรเก็บเครื่องหมายวรรคตอนบางชนิดไว้หรือไม่
import re
text = re.sub("[^A-Za-z0-9 ]", "", "Hello!! @world #2026")
print(text) # "Hello world 2026"การปรับช่องว่างให้เป็นมาตรฐาน
การทำความสะอาดอาจทิ้งช่องว่างซ้ำและการขึ้นบรรทัดใหม่ที่เกินมา ให้รวมช่องว่างที่ต่อเนื่องกันไม่ว่าจะยาวเท่าใดให้เหลือช่องว่างเดียวด้วย \s+ จากนั้นใช้ strip() กับส่วนต้นและส่วนท้าย
import re
text = re.sub("\s+", " ", "Hello world\n\n again").strip()
print(text) # "Hello world again"การเปลี่ยนเป็นตัวพิมพ์เล็กและความสำคัญของลำดับ
การเปลี่ยนเป็นตัวพิมพ์เล็กเป็นวิธีที่ใช้กันทั่วไปเพื่อให้ข้อมูลสอดคล้องกัน แต่ควรใช้อย่างระมัดระวัง นอกจากนี้ ลำดับก็สำคัญ ควรลบ HTML ก่อนลบอักขระพิเศษ และปรับช่องว่างให้เป็นมาตรฐานเป็นขั้นตอนสุดท้าย เพื่อไม่ให้การลบในขั้นก่อนหน้าทิ้งช่องว่างที่ไม่ต้องการไว้
text = text.lower()
# Pipeline order: tags -> urls -> emails -> specials -> whitespace -> lowercaseการสร้างกระบวนการทำความสะอาด
รวมขั้นตอนต่าง ๆ ไว้ในฟังก์ชันเดียว เพื่อให้เอกสารทุกฉบับได้รับการจัดการเหมือนกัน หากประมวลผลเอกสารจำนวนมาก ให้เตรียมรูปแบบไว้ล่วงหน้าเพื่อเพิ่มความเร็ว
import re
def clean_text(s):
s = re.sub("<[^>]+>", " ", s) # html tags
s = re.sub("https?://\S+", " ", s) # urls
s = re.sub("\S+@\S+\.\S+", " ", s) # emails
s = re.sub("[^A-Za-z0-9 ]", " ", s) # special chars
s = re.sub("\s+", " ", s).strip() # whitespace
return s.lower()
print(clean_text(raw))การใช้กระบวนการกับ DataFrame
เรียกใช้ตัวทำความสะอาดกับคอลัมน์ข้อความทั้งคอลัมน์ด้วย apply เพื่อสร้างคอลัมน์ที่พร้อมใช้กับโมเดล
import pandas as pd
df["clean"] = df["text"].apply(clean_text)
print(df[["text", "clean"]].head())ตรวจสอบอย่างรวดเร็ว: การปรับช่องว่างให้เป็นมาตรฐาน
หลังการทำความสะอาด ข้อความของคุณยังมีช่องว่างหลายช่องและการขึ้นบรรทัดใหม่ต่อเนื่องกัน ซึ่งคุณต้องการรวมให้เหลือช่องว่างเดียว
ทบทวน: การทำความสะอาดข้อความด้วยนิพจน์ปกติ
คุณได้สร้างกระบวนการเตรียมข้อมูลล่วงหน้าที่ใช้งานได้จริงแล้ว:
- ลบ HTML ด้วย
<[^>]+> - ลบ URL (
https?://\S+) และอีเมล - ปกปิดข้อมูลที่ละเอียดอ่อนด้วยตัวแทน เช่น
[EMAIL] - ลบอักขระพิเศษด้วยชุดอักขระแบบปฏิเสธ
- ปรับช่องว่างให้เป็นมาตรฐานด้วย
\s++strip() - รวมทุกอย่างไว้ในฟังก์ชันและใช้
applyกับคอลัมน์
เนื้อหาเกี่ยวกับนิพจน์ปกติสำหรับข้อความของปัญญาประดิษฐ์จบลงแล้ว ถัดไป: ฐานข้อมูลสำหรับโครงการปัญญาประดิษฐ์
คำถามที่พบบ่อย
บทเรียน “การทำความสะอาดข้อความสำหรับปัญญาประดิษฐ์ด้วยนิพจน์ רגูลาร์” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การทำความสะอาดข้อความสำหรับปัญญาประดิษฐ์ด้วยนิพจน์ רגูลาร์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การทำความสะอาดข้อความสำหรับปัญญาประดิษฐ์ด้วยนิพจน์ רגูลาร์”
นำแท็ก HTML เครื่องหมายวรรคตอน URL และอีเมลออก — สร้างฟังก์ชันเตรียมข้อความ คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “การทำความสะอาดข้อความสำหรับปัญญาประดิษฐ์ด้วยนิพจน์ רגูลาร์” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม
ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- รูปแบบนิพจน์ประจำและคลาสอักขระ
- โมดูล re: search, match, findall, sub
- กลุ่มจับและกลุ่มที่มีชื่อ
- การทำความสะอาดข้อความสำหรับปัญญาประดิษฐ์ด้วยนิพจน์ רגูลาร์