# -*- coding: utf-8 -*- import re text = """Hệ thống đã truy cập thành công vào cổng đặt hàng trực tuyến của thương hiệu và trích xuất toàn bộ dữ liệu thực đơn. Dữ liệu gồm 130 sản phẩm chia thành 10 danh mục chính từ món lẻ đến các gói combo ưu đãi dành cho khách hàng. Nhóm Value Deals 99 nghìn đồng giúp tiết kiệm từ 15 đến 21 phần trăm so với tổng giá trị thực của các món lẻ. Gói Xô Zòn Zã 159 nghìn đồng hạ giá mỗi miếng gà xuống mức 31 nghìn 800 đồng thay vì 37 nghìn đồng tiêu chuẩn. Mô hình quy hoạch tuyến tính nguyên là công cụ chuẩn xác nhất nhằm xác định tập hợp món ăn với tổng chi phí thấp nhất. Hàm mục tiêu giảm thiểu tổng giá chi trả cho các phần combo và các món đơn lẻ theo đúng số lượng yêu cầu đặt ra. Các ràng buộc toán học đảm bảo số lượng từng loại thức ăn nhận được luôn lớn hơn hoặc bằng định mức tiêu thụ thực tế. Giải thuật quy hoạch nguyên đảm bảo tìm ra chi phí tối thiểu toàn cục nhưng đòi hỏi trình biên dịch thuật toán chuyên biệt. Giải thuật tham lam cho kết quả phản hồi tức thì trên ứng dụng nhưng dễ gặp sai số cục bộ đối với giỏ hàng lớn. Phương pháp tối ưu hóa thực đơn dịch vụ ẩm thực dựa trên nghiên cứu nền tảng của tác giả George Dantzig xuất bản năm 1963. Danh mục trích xuất tiêu biểu gồm các nhóm sản phẩm sau: 1. Deal 99K Yeah có giá 99000 đồng bao gồm 2 Burger Gà Yo cùng 2 Khoai Tây Chiên vừa và 2 Ly Pepsi tiêu chuẩn. 2. Deal 99K Yass có giá 99000 đồng bao gồm 2 Miếng Gà Rán kết hợp cùng 3 Miếng Gà Rán Tender giòn tan hấp dẫn. 3. Deal 149K Yass có giá 149000 đồng bao gồm 4 Miếng Gà Rán đậm đà cùng với 2 Ly Pepsi tiêu chuẩn đi kèm. 4. Xô Zòn Zã 159K có giá 159000 đồng bao gồm 5 Miếng Gà Rán giòn rụm với giá trị gốc là 179000 đồng. 5. Combo Cùng Dzô có giá 369000 đồng bao gồm 12 Miếng Gà Rán kèm theo 4 Ly Pepsi cỡ đại rất tiết kiệm. Tài liệu tham khảo chuẩn APA 7: Dantzig, G. B. (1963). Linear programming and extensions. Princeton University Press. Vanderbei, R. J. (2020). Linear programming: Foundations and extensions (5th ed.). Springer.""" # Check for dashes dashes = re.findall(r'[\-\—\–\⁃\‒\‐\‑]', text) print("Dashes found:", dashes) # Check sentence lengths sentences = [s.strip() for s in re.split(r'[\n\.\?\!]+', text) if len(s.strip().split()) > 3] for s in sentences: wc = len(s.split()) print(f"[{wc} words] {s}")