📌 Câu trả lời ngắn gọn:
Nếu bạn muốn mô hình hiểu văn bản (tóm tắt, phân loại, sinh nội dung…), thì HTML không cần thiết.
🔥 Cách loại bỏ HTML:
Dùng BeautifulSoup để chỉ lấy nội dung thuần túy:
from bs4 import BeautifulSoupdef extract_text_from_html(html_content): soup = BeautifulSoup(html_content, "html.parser") return soup.get_text(separator=" ", strip=True) # Lấy nội dung sạchhtml_example = "<h1>Tiêu đề</h1><p>Đây là nội dung <b>quan trọng</b></p>"clean_text = extract_text_from_html(html_example)print(clean_text)
💡 Kết quả: "Tiêu đề Đây là nội dung quan trọng"
✅ Ưu điểm:
Nếu bạn muốn train mô hình để hiểu bố cục trang web, SEO, chatbot xử lý HTML, thì không nên bỏ hết HTML.
🔥 Thay vào đó, chỉ giữ lại các thẻ quan trọng:
def simplify_html(html_content): soup = BeautifulSoup(html_content, "html.parser") # Chỉ giữ lại các thẻ quan trọng allowed_tags = {"h1", "h2", "h3", "p", "ul", "ol", "li", "a", "strong", "em"} for tag in soup.find_all(): if tag.name not in allowed_tags: tag.unwrap() # Gỡ bỏ thẻ nhưng giữ nội dung bên trong return str(soup)
💡 Ví dụ Input:
<div><h1>Tiêu đề</h1><p>Đây là <span>nội dung</span> quan trọng.</p></div>
💡 Kết quả Output:
<h1>Tiêu đề</h1><p>Đây là nội dung quan trọng.</p>
✅ Ưu điểm:
Nếu bạn muốn AI tạo HTML đẹp từ văn bản, thì giữ lại cấu trúc nhưng làm sạch các phần thừa.
🔥 Dọn dẹp mã HTML trước khi train:
import htmlmin
def clean_and_minify_html(html_content):
# Xóa các thẻ script, style, inline CSS
soup = BeautifulSoup(html_content, "html.parser")
for tag in soup(["script", "style"]):
tag.decompose()
# Nén HTML để gọn hơn
return htmlmin.minify(str(soup), remove_empty_space=True)
html_example = "<html><body><h1>Tiêu đề</h1><script>alert('X');</script><p>Nội dung.</p></body></html>"
clean_html = clean_and_minify_html(html_example)
print(clean_html)
💡 Output:
<html><body><h1>Tiêu đề</h1><p>Nội dung.</p></body></html>
✅ Khi nào cần giữ HTML?
Trường hợp | Có nên giữ HTML? | Cách xử lý |
---|---|---|
Train AI đọc hiểu nội dung | ❌ Bỏ hết HTML | Dùng BeautifulSoup.get_text() |
Train AI hiểu cấu trúc web | ✅ Giữ một số thẻ quan trọng | Dùng unwrap() để bỏ thẻ thừa |
Train AI sinh HTML | ✅ Dọn dẹp HTML nhưng giữ cấu trúc | Dùng htmlmin để tối ưu |