darkbreakerk commited on
Commit
49ecd5d
·
1 Parent(s): 755d8d9

Create Work Flow and guest weights

Browse files
.gitignore ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ __pycache__
2
+ LLM
Datasets/Places/accomodation_1.xlsx ADDED
Binary file (15.9 kB). View file
 
Datasets/Places/des_retags_copilot.xlsx ADDED
Binary file (53.7 kB). View file
 
Datasets/Places/destination_1.xlsx ADDED
Binary file (23.9 kB). View file
 
Datasets/Prompt/prompt.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"role": "system", "content": "You are a helpful assistant designed to output JSON."}, {"role": "system", "content": "Only follow general tags: ['ẨM THỰC', 'BÃI CỎ', 'BẠN BÈ', 'BẢO TÀNG', 'BẢO TỒN', 'BÍ ẨN', 'BIỂN', 'BIỂU DIỄN', 'BÌNH DÂN', 'BÌNH MINH', 'BƠI LỘI', 'CÀ PHÊ', 'CAO CẤP', 'CÁT', 'CẮM TRẠI', 'CẶP ĐÔI', 'CÂU CÁ', 'CHỢ', 'CHÙA', 'CHỤP ẢNH', 'CON ĐƯỜNG', 'CỔ XƯA', 'CỘNG ĐỒNG', 'CUỐI TUẦN', 'CỬA HÀNG', 'DÂN GIAN', 'DÂN TỘC', 'DI CHUYỂN', 'DI SẢN', 'DI TÍCH', 'DU LỊCH', 'ĐÁ', 'ĐẶC BIỆT', 'ĐẶC SẢN', 'ĐÈO', 'ĐẸP', 'ĐÊM', 'ĐỀN THỜ', 'ĐI BỘ', 'ĐỊA ĐIỂM', 'ĐỊA PHƯƠNG', 'ĐỘC ĐÁO', 'ĐỘNG VẬT', 'GIA ĐÌNH', 'HẢI SẢN', 'HANG ĐỘNG', 'HẤP DẪN', 'HIỆN ĐẠI', 'HOÀNG HÔN', 'HOANG SƠ', 'HOẠT ĐỘNG', 'HÒN ĐẢO', 'HỒ THỦY ĐIỆN', 'HỘI THẢO', 'HÙNG VĨ', 'KHÁCH SẠN', 'KHÓ QUÊN', 'KHOA HỌC', 'KIẾN TRÚC', 'LÀNG', 'LÀNG CHÀI', 'LÃNG MẠN', 'LẶN', 'LEO NÚI', 'LỄ HỘI', 'LỊCH SỬ', 'LƯỚT SÓNG', 'MẠO HIỂM', 'NGHỆ THUẬT', 'NGHỈ DƯỠNG (SPA)', 'NGOẠI Ô', 'NGOÀI TRỜI', 'NGON', 'NHÀ HÀNG', 'NHÀ NGHỈ', 'NHỘN NHỊP', 'NỔI TIẾNG', 'NÚI', 'PHONG CẢNH', 'PHƯỢT', 'QUẢNG TRƯỜNG', 'QUỐC TẾ', 'RESORT', 'SAN HÔ', 'SÂN BAY', 'SUỐI', 'SỰ KIỆN', 'TÂM LINH', 'THÁC NƯỚC', 'THÀNH PHỐ', 'THỂ THAO', 'THIÊN NHIÊN', 'THUYỀN', 'THƯ GIÃN', 'THƯỞNG THỨC', 'TOUR', 'TÔN GIÁO', 'TRẢI NGHIỆM', 'TRẺ EM', 'TRUYỀN THỐNG', 'TỰ TÚC', 'VĂN HÓA', 'VUI CHƠI', 'VƯỜN HOA', 'YÊN BÌNH', 'RIÊNG TƯ', 'CÔNG VIÊN']"}, {"role": "user", "content": "ăn quy_nhơn"}, {"role": "assistant", "content": "{'entities': [['ăn', 'ẨM THỰC']]}"}, {"role": "user", "content": "muốn thử món ăn đặc_sản bình_định gợi_ý nào"}, {"role": "assistant", "content": "{'entities': [['món ăn', 'ẨM THỰC'], ['đặc_sản', 'ĐẶC SẢN']]}"}, {"role": "user", "content": "làng_nghề chế_biến ẩm_thực bình_định"}, {"role": "assistant", "content": "{'entities': [['làng_nghề', 'LÀNG'], ['ẩm_thực', 'ẨM THỰC']]}"}, {"role": "user", "content": "món ăn đặc_sản bình_định"}, {"role": "assistant", "content": "{'entities': [['món ăn', 'ẨM THỰC'], ['đặc_sản', 'ĐẶC SẢN']]}"}, {"role": "user", "content": "đến quy_nhơn ăn"}, {"role": "assistant", "content": "{'entities': [['ăn', 'ẨM THỰC']]}"}, {"role": "user", "content": "ăn sáng ở quy_nhơn"}, {"role": "assistant", "content": "{'entities': [['ăn', 'ẨM THỰC'], ['sáng', 'BÌNH MINH']]}"}, {"role": "user", "content": "cà_phê giá_cả sinh_viên ở quy_nhơn"}, {"role": "assistant", "content": "{'entities': [['cà_phê', 'CÀ PHÊ'], ['giá_cả sinh_viên', 'BÌNH DÂN']]}"}, {"role": "user", "content": "quán cà_phê acoustic"}, {"role": "assistant", "content": "{'entities': [['cà_phê', 'CÀ PHÊ']]}"}, {"role": "user", "content": "quán cà_phê yên_tĩnh"}, {"role": "assistant", "content": "{'entities': [['cà_phê', 'CÀ PHÊ'], ['yên_tĩnh', 'YÊN BÌNH']]}"}, {"role": "user", "content": "khu du_lịch gần_gũi thiên_nhiên"}, {"role": "assistant", "content": "{'entities': [['du_lịch', 'DU LỊCH'], ['thiên_nhiên', 'THIÊN NHIÊN']]}"}, {"role": "user", "content": "địa_điểm du_lịch không_thể bỏ_qua ở bình_định"}, {"role": "assistant", "content": "{'entities': [['địa_điểm', 'ĐỊA ĐIỂM'], ['du_lịch', 'DU LỊCH']]}"}, {"role": "user", "content": "kế_hoạch chuyến đi mình tới bình_định hoạt_động nào_là không_thể bỏ_qua"}, {"role": "assistant", "content": "{'entities': [['hoạt_động', 'HOẠT ĐỘNG']]}"}, {"role": "user", "content": "tìm_kiếm trải_nghiệm du_lịch gần_gũi thiên_nhiên gợi_ý"}, {"role": "assistant", "content": "{'entities': [['trải_nghiệm', 'TRẢI NGHIỆM'], ['du_lịch', 'DU LỊCH'], ['thiên_nhiên', 'THIÊN NHIÊN']]}"}, {"role": "user", "content": "cảnh đẹp tự_nhiên nào ở bình_định yêu_thích nhất chụp ảnh"}, {"role": "assistant", "content": "{'entities': [['cảnh đẹp', 'PHONG CẢNH'], ['tự_nhiên', 'THIÊN NHIÊN'], ['chụp ảnh', 'CHỤP ẢNH']]}"}, {"role": "user", "content": "kế_hoạch chuyến đi bình_định mùa nào lý_tưởng nhất thăm"}, {"role": "assistant", "content": "{'entities': []}"}, {"role": "user", "content": "điểm đến còn hoang_vu bình_dị"}, {"role": "assistant", "content": "{'entities': [['điểm', 'ĐỊA ĐIỂM'], ['hoang_vu', 'HOANG SƠ']]}"}, {"role": "user", "content": "lặn ngắm san_hô"}, {"role": "assistant", "content": "{'entities': [['lặn', 'LẶN'], ['san_hô', 'SAN HÔ']]}"}, {"role": "user", "content": "muốn trải_nghiệm lặn san_hô ở bình_định điểm nào đề_xuất"}, {"role": "assistant", "content": "{'entities': [['trải_nghiệm', 'TRẢI NGHIỆM'], ['lặn', 'LẶN'], ['san_hô', 'SAN HÔ'], ['điểm', 'ĐỊA ĐIỂM']]}"}, {"role": "user", "content": "thích tắm biển đi biển nào"}, {"role": "assistant", "content": "{'entities': [['tắm', 'BƠI LỘI'], ['biển', 'BIỂN'], ['biển', 'BIỂN']]}"}, {"role": "user", "content": "biển cảnh đẹp"}, {"role": "assistant", "content": "{'entities': [['biển', 'BIỂN'], ['cảnh', 'PHONG CẢNH'], ['đẹp', 'ĐẸP']]}"}, {"role": "user", "content": "bãi biển trong khu resort"}, {"role": "assistant", "content": "{'entities': [['biển', 'BIỂN'], ['resort', 'RESORT']]}"}, {"role": "user", "content": "ngắm đường_biển đẹp bình_định"}, {"role": "assistant", "content": "{'entities': [['đường_biển', 'BIỂN'], ['đẹp', 'ĐẸP']]}"}, {"role": "user", "content": "ở đâu hoạt_động phiêu_lưu leo núi hoặc trekking"}, {"role": "assistant", "content": "{'entities': [['hoạt_động', 'HOẠT ĐỘNG'], ['leo', 'THỂ THAO'], ['núi', 'NÚI']]}"}, {"role": "user", "content": "muốn tìm leo núi ngắm_cảnh quy_nhơn con đường nào muốn gợi_ý"}, {"role": "assistant", "content": "{'entities': [['leo', 'THỂ THAO'], ['núi', 'NÚI'], ['ngắm_cảnh', 'PHONG CẢNH']]}"}, {"role": "user", "content": "leo núi nào ngắm toàn thành_phố quy_nhơn"}, {"role": "assistant", "content": "{'entities': [['leo', 'THỂ THAO'], ['núi', 'NÚI'], ['ngắm', 'PHONG CẢNH'], ['thành_phố', 'THÀNH PHỐ']]}"}, {"role": "user", "content": "khám_phá ngọn núi ở quy_nhơn"}, {"role": "assistant", "content": "{'entities': [['khám_phá', 'TRẢI NGHIỆM'], ['núi', 'NÚI']]}"}, {"role": "user", "content": "muốn khám_phá ngọn núi ở quy_nhơn thông_tin về"}, {"role": "assistant", "content": "{'entities': [['khám_phá', 'TRẢI NGHIỆM'], ['núi', 'NÚI']]}"}, {"role": "user", "content": "đi đâu cắm trại bình_định"}, {"role": "assistant", "content": "{'entities': [['cắm trại', 'CẮM TRẠI']]}"}, {"role": "user", "content": "cắm trại thuê lều ở đêm quy_nhơn"}, {"role": "assistant", "content": "{'entities': [['cắm trại', 'CẮM TRẠI'], ['đêm', 'ĐÊM']]}"}, {"role": "user", "content": "thông_tin về khu_vực có_thể cắm trại tham_gia hoạt_động mạo_hiểm leo núi trekking"}, {"role": "assistant", "content": "{'entities': [['khu_vực', 'ĐỊA ĐIỂM'], ['cắm trại', 'CẮM TRẠI'], ['hoạt_động', 'HOẠT ĐỘNG'], ['mạo_hiểm', 'MẠO HIỂM'], ['leo', 'THỂ THAO'], ['núi', 'NÚI']]}"}, {"role": "user", "content": "muốn một trải_nghiệm cắm trại tuyệt_vời ở bình_định nào lựa_chọn tốt nhất"}, {"role": "assistant", "content": "{'entities': [['trải_nghiệm', 'TRẢI NGHIỆM'], ['cắm trại', 'CẮM TRẠI']]}"}, {"role": "user", "content": "phượt bằng xe_máy ở bình_định đi đâu"}, {"role": "assistant", "content": "{'entities': [['phượt', 'PHƯỢT']]}"}, {"role": "user", "content": "muốn khám_phá về văn_hóa lịch_sử đặc_sản bình_định"}, {"role": "assistant", "content": "{'entities': [['khám_phá', 'TRẢI NGHIỆM'], ['văn_hóa', 'VĂN HÓA'], ['lịch_sử', 'LỊCH SỬ'], ['đặc_sản', 'ĐẶC SẢN']]}"}, {"role": "user", "content": "tham_quan bảo_tàng lịch_sử bình_định"}, {"role": "assistant", "content": "{'entities': [['tham_quan', 'TRẢI NGHIỆM'], ['bảo_tàng', 'BẢO TÀNG'], ['lịch_sử', 'LỊCH SỬ']]}"}, {"role": "user", "content": "địa_điểm đặc_trưng về di_tích lịch_sử"}, {"role": "assistant", "content": "{'entities': [['địa_điểm', 'ĐỊA ĐIỂM'], ['đặc_trưng', 'ĐẶC BIỆT'], ['di_tích', 'DI TÍCH'], ['lịch_sử', 'LỊCH SỬ']]}"}, {"role": "user", "content": "quan_tâm đến khám_phá về lịch_sử văn_hóa bình_định di_tích cổ_xưa"}, {"role": "assistant", "content": "{'entities': [['khám_phá', 'TRẢI NGHIỆM'], ['lịch_sử', 'LỊCH SỬ'], ['văn_hóa', 'VĂN HÓA'], ['di_tích', 'DI TÍCH'], ['cổ_xưa', 'CỔ XƯA']]}"}, {"role": "user", "content": "ngôi chùa đẹp bình_định"}, {"role": "assistant", "content": "{'entities': [['chùa', 'CHÙA'], ['đẹp', 'ĐẸP']]}"}, {"role": "user", "content": "trong tất_cả ngôi chùa ở bình_định nghĩ ngôi nào đặc_sắc nhất đáng du_khách ghé thăm nhất"}, {"role": "assistant", "content": "{'entities': [['chùa', 'CHÙA'], ['đặc_sắc', 'ĐẶC BIỆT']]}"}, {"role": "user", "content": "thông_tin về hoạt_động tâm_linh lễ cầu_nguyện thiền_định tổ_chức ngôi chùa ở bình_định"}, {"role": "assistant", "content": "{'entities': [['tâm_linh', 'TÂM LINH'], ['chùa', 'CHÙA']]}"}, {"role": "user", "content": "thông_tin về hoạt_động tâm_linh lễ cầu_nguyện thiền_định ngôi chùa ở bình_định"}, {"role": "assistant", "content": "{'entities': [['hoạt_động', 'HOẠT ĐỘNG'], ['tâm_linh', 'TÂM LINH'], ['chùa', 'CHÙA']]}"}, {"role": "user", "content": "thông_tin về sự_kiện văn_hóa truyền_thống khác ngoài lễ_hội nổi_tiếng ở bình_định"}, {"role": "assistant", "content": "{'entities': [['sự_kiện', 'SỰ KIỆN'], ['văn_hóa', 'VĂN HÓA'], ['truyền_thống', 'TRUYỀN THỐNG'], ['lễ_hội', 'LỄ HỘI'], ['nổi_tiếng', 'NỔI TIẾNG']]}"}, {"role": "user", "content": "lễ_hội nào diễn mùa hè ở bình_định khuyên du_khách tham_gia trải_nghiệm văn_hóa địa_phương"}, {"role": "assistant", "content": "{'entities': [['lễ_hội', 'LỄ HỘI'], ['trải_nghiệm', 'TRẢI NGHIỆM'], ['văn_hóa', 'VĂN HÓA'], ['địa_phương', 'ĐỊA PHƯƠNG']]}"}, {"role": "user", "content": "nhà_hàng ngon bình_định"}, {"role": "assistant", "content": "{'entities': [['nhà_hàng', 'NHÀ HÀNG'], ['ngon', 'NGON']]}"}, {"role": "user", "content": "cẩm_nang du_lịch bình_định gia_đình"}, {"role": "assistant", "content": "{'entities': [['du_lịch', 'DU LỊCH'], ['gia_đình', 'GIA ĐÌNH']]}"}, {"role": "user", "content": "bãi biển đẹp bình_định"}, {"role": "assistant", "content": "{'entities': [['biển', 'BIỂN'], ['đẹp', 'ĐẸP']]}"}, {"role": "user", "content": "du_lịch bình_định"}, {"role": "assistant", "content": "{'entities': [['du_lịch', 'DU LỊCH']]}"}, {"role": "user", "content": "phượt bình_định"}, {"role": "assistant", "content": "{'entities': [['phượt', 'PHƯỢT']]}"}, {"role": "user", "content": "kỳ nghỉ thư_giãn khu resort sang_trọng ở bình_định"}, {"role": "assistant", "content": "{'entities': [['thư_giãn', 'THƯ GIÃN'], ['resort', 'RESORT'], ['sang_trọng', 'CAO CẤP']]}"}, {"role": "user", "content": "khám_phá ngôi chùa linh_thiêng ẩn mình bình_định"}, {"role": "assistant", "content": "{'entities': [['khám_phá', 'TRẢI NGHIỆM'], ['chùa', 'CHÙA']]}"}, {"role": "user", "content": "điểm đến nổi_tiếng dân đam_mê ẩm_thực ở bình_định"}, {"role": "assistant", "content": "{'entities': [['điểm', 'ĐỊA ĐIỂM'], ['nổi_tiếng', 'NỔI TIẾNG'], ['ẩm_thực', 'ẨM THỰC']]}"}, {"role": "user", "content": "trải_nghiệm du_lịch khó quên bình_định"}, {"role": "assistant", "content": "{'entities': [['trải_nghiệm', 'TRẢI NGHIỆM'], ['du_lịch', 'DU LỊCH'], ['khó quên', 'KHÓ QUÊN']]}"}, {"role": "user", "content": "khu du_lịch sinh_thái bình_định"}, {"role": "assistant", "content": "{'entities': [['du_lịch', 'DU LỊCH'], ['sinh_thái', 'THIÊN NHIÊN']]}"}, {"role": "user", "content": "thưởng_thức phong_cảnh hữu_tình bình_định"}, {"role": "assistant", "content": "{'entities': [['thưởng_thức', 'THƯỞNG THỨC'], ['phong_cảnh', 'PHONG CẢNH']]}"}, {"role": "user", "content": "khám_phá vẻ đẹp tự_nhiên bình_định"}, {"role": "assistant", "content": "{'entities': [['khám_phá', 'TRẢI NGHIỆM'], ['đẹp', 'ĐẸP'], ['tự_nhiên', 'THIÊN NHIÊN']]}"}, {"role": "user", "content": "ngọn đèo hùng_vĩ ở bình_định"}, {"role": "assistant", "content": "{'entities': [['đèo', 'ĐÈO'], ['hùng_vĩ', 'HÙNG VĨ']]}"}, {"role": "user", "content": "nét đẹp hoang_sơ bình_định"}, {"role": "assistant", "content": "{'entities': [['đẹp', 'ĐẸP'], ['hoang_sơ', 'HOANG SƠ']]}"}, {"role": "user", "content": "tìm_hiểu văn_hóa dân_gian"}, {"role": "assistant", "content": "{'entities': [['tìm_hiểu', 'TRẢI NGHIỆM'], ['văn_hóa', 'VĂN HÓA'], ['dân_gian', 'DÂN GIAN']]}"}, {"role": "user", "content": "trải_nghiệm văn_hóa ẩm_thực độc_đáo"}, {"role": "assistant", "content": "{'entities': [['trải_nghiệm', 'TRẢI NGHIỆM'], ['văn_hóa', 'VĂN HÓA'], ['ẩm_thực', 'ẨM THỰC'], ['độc_đáo', 'ĐỘC ĐÁO']]}"}, {"role": "user", "content": "tìm_hiểu về ẩm_thực địa_phương ở bình_định"}, {"role": "assistant", "content": "{'entities': [['ẩm_thực', 'ẨM THỰC'], ['địa_phương', 'ĐỊA PHƯƠNG']]}"}, {"role": "user", "content": "thưởng ngoạn_cảnh đẹp núi ở bình_định"}, {"role": "assistant", "content": "{'entities': [['đẹp', 'ĐẸP'], ['núi', 'NÚI']]}"}, {"role": "user", "content": "ngôi làng truyền_thống ở bình_định"}, {"role": "assistant", "content": "{'entities': [['làng', 'LÀNG'], ['truyền_thống', 'TRUYỀN THỐNG']]}"}, {"role": "user", "content": "điểm du_lịch sinh_thái bảo_tồn ở bình_định"}, {"role": "assistant", "content": "{'entities': [['điểm', 'ĐỊA ĐIỂM'], ['du_lịch', 'DU LỊCH'], ['sinh_thái', 'THIÊN NHIÊN'], ['bảo_tồn', 'BẢO TỒN']]}"}, {"role": "user", "content": "cảnh đẹp bình_định"}, {"role": "assistant", "content": "{'entities': [['cảnh', 'PHONG CẢNH'], ['đẹp', 'ĐẸP']]}"}, {"role": "user", "content": "ngôi chùa cổ_ẩn mình bình_định"}, {"role": "assistant", "content": "{'entities': [['chùa', 'CHÙA'], ['cổ_ẩn', 'CỔ XƯA']]}"}, {"role": "user", "content": "di_tích lịch_sử nổi_tiếng ở bình_định"}, {"role": "assistant", "content": "{'entities': [['di_tích', 'DI TÍCH'], ['lịch_sử', 'LỊCH SỬ'], ['nổi_tiếng', 'NỔI TIẾNG']]}"}, {"role": "user", "content": "cảm_nhận vẻ đẹp tự_nhiên độc_đáo bình_định"}, {"role": "assistant", "content": "{'entities': [['đẹp', 'BIỂN'], ['tự_nhiên', 'THIÊN NHIÊN'], ['độc_đáo', 'ĐỘC ĐÁO']]}"}, {"role": "user", "content": "thưởng_thức văn_hóa biển bình_định"}, {"role": "assistant", "content": "{'entities': [['thưởng_thức', 'THƯỞNG THỨC'], ['văn_hóa', 'VĂN HÓA'], ['biển', 'BIỂN']]}"}, {"role": "user", "content": "kinh_nghiệm du_lịch tiết_kiệm ở bình_định"}, {"role": "assistant", "content": "{'entities': [['du_lịch', 'DU LỊCH'], ['tiết_kiệm', 'BÌNH DÂN']]}"}, {"role": "user", "content": "leo núi"}, {"role": "assistant", "content": "{'entities': [['leo', 'THỂ THAO'], ['núi', 'NÚI']]}"}, {"role": "user", "content": "ngắm cảnh hoàng_hôn"}, {"role": "assistant", "content": "{'entities': [['cảnh', 'PHONG CẢNH'], ['hoàng_hôn', 'HOÀNG HÔN']]}"}, {"role": "user", "content": "du_lịch giá rẻ"}, {"role": "assistant", "content": "{'entities': [['du_lịch', 'DU LỊCH'], ['giá rẻ', 'BÌNH DÂN']]}"}, {"role": "user", "content": "du_lịch dài ngày"}, {"role": "assistant", "content": "{'entities': [['du_lịch', 'DU LỊCH']]}"}, {"role": "user", "content": "địa_điểm sôi_động"}, {"role": "assistant", "content": "{'entities': [['địa_điểm', 'ĐỊA ĐIỂM'], ['sôi_động', 'NHỘN NHỊP']]}"}, {"role": "user", "content": "vui_chơi hội nhóm"}, {"role": "assistant", "content": "{'entities': [['vui_chơi', 'VUI CHƠI'], ['nhóm', 'BẠN BÈ']]}"}, {"role": "user", "content": "trải_nghiệm thiên_nhiên bình_định"}, {"role": "assistant", "content": "{'entities': [['trải_nghiệm', 'TRẢI NGHIỆM'], ['thiên_nhiên', 'THIÊN NHIÊN']]}"}, {"role": "user", "content": "điểm đến thư_giãn thú_vị ở bình_định"}, {"role": "assistant", "content": "{'entities': [['điểm', 'ĐỊA ĐIỂM'], ['thư_giãn', 'THƯ GIÃN'], ['thú_vị', 'HẤP DẪN']]}"}, {"role": "user", "content": "tour du_lịch ngắn_hạn bình_định"}, {"role": "assistant", "content": "{'entities': [['tour', 'TOUR'], ['du_lịch', 'DU LỊCH']]}"}, {"role": "user", "content": "lặn biển lặn san_hô ở bình_định"}, {"role": "assistant", "content": "{'entities': [['lặn', 'LẶN'], ['biển', 'BIỂN'], ['lặn', 'LẶN'], ['san_hô', 'SAN HÔ']]}"}, {"role": "user", "content": "điểm du_lịch độc_đáo hấp_dẫn nhất ở bình_định"}, {"role": "assistant", "content": "{'entities': [['điểm', 'ĐỊA ĐIỂM'], ['du_lịch', 'DU LỊCH'], ['độc_đáo', 'ĐỘC ĐÁO'], ['hấp_dẫn', 'HẤP DẪN']]}"}, {"role": "user", "content": "tour du_lịch kết_hợp thăm làng chài trải_nghiệm văn_hóa địa_phương ở bình_định"}, {"role": "assistant", "content": "{'entities': [['tour', 'TOUR'], ['du_lịch', 'DU LỊCH'], ['thăm', 'TRẢI NGHIỆM'], ['làng chài', 'LÀNG CHÀI'], ['trải_nghiệm', 'TRẢI NGHIỆM'], ['văn_hóa', 'VĂN HÓA'], ['địa_phương', 'ĐỊA PHƯƠNG']]}"}, {"role": "user", "content": "trải_nghiệm du_lịch phượt cung đường_biển ở bình_định"}, {"role": "assistant", "content": "{'entities': [['trải_nghiệm', 'TRẢI NGHIỆM'], ['du_lịch', 'DU LỊCH'], ['phượt', 'PHƯỢT'], ['đường_biển', 'BIỂN']]}"}, {"role": "user", "content": "khám_phá bãi biển hoang_sơ người bình_định"}, {"role": "assistant", "content": "{'entities': [['khám_phá', 'TRẢI NGHIỆM'], ['biển', 'BIỂN'], ['hoang_sơ', 'HOANG SƠ']]}"}, {"role": "user", "content": "trò_chơi thú_vị giải_trí biển bình_định"}, {"role": "assistant", "content": "{'entities': [['trò_chơi', 'VUI CHƠI'], ['thú_vị', 'HẤP DẪN'], ['biển', 'BIỂN']]}"}, {"role": "user", "content": "trải_nghiệm du_lịch thú_vị trong làng chài bình_định"}, {"role": "assistant", "content": "{'entities': [['trải_nghiệm', 'TRẢI NGHIỆM'], ['du_lịch', 'DU LỊCH'], ['thú_vị', 'HẤP DẪN'], ['làng chài', 'LÀNG CHÀI']]}"}, {"role": "user", "content": "thăm quan di_tích lịch_sử văn_hóa ở bình_định"}, {"role": "assistant", "content": "{'entities': [['di_tích', 'DI TÍCH'], ['lịch_sử', 'LỊCH SỬ'], ['văn_hóa', 'VĂN HÓA']]}"}, {"role": "user", "content": "đi câu cá trải_nghiệm cuộc_sống người_dân ven biển ở bình_định"}, {"role": "assistant", "content": "{'entities': [['câu cá', 'CÂU CÁ'], ['trải_nghiệm', 'TRẢI NGHIỆM'], ['biển', 'BIỂN']]}"}, {"role": "user", "content": "tham_gia tour du_lịch mạo_hiểm khám_phá hang_động suối nước tự_nhiên bình_định"}, {"role": "assistant", "content": "{'entities': [['tour', 'TOUR'], ['du_lịch', 'DU LỊCH'], ['mạo_hiểm', 'MẠO HIỂM'], ['khám_phá', 'TRẢI NGHIỆM'], ['hang_động', 'HANG ĐỘNG'], ['suối', 'SUỐI'], ['tự_nhiên', 'THIÊN NHIÊN']]}"}, {"role": "user", "content": "tham_gia hoạt_động vận_động ngoài_trời đạp xe địa_hình leo núi bình_định"}, {"role": "assistant", "content": "{'entities': [['tham_gia', 'TRẢI NGHIỆM'], ['hoạt_động', 'HOẠT ĐỘNG'], ['ngoài_trời', 'NGOÀI TRỜI'], ['địa_hình', 'MẠO HIỂM'], ['leo', 'THỂ THAO'], ['núi', 'NÚI']]}"}, {"role": "user", "content": "tham_quan trang_trại rau_sạch trải_nghiệm nông_nghiệp sinh_thái bình_định"}, {"role": "assistant", "content": "{'entities': [['tham_quan', 'TRẢI NGHIỆM'], ['sinh_thái', 'THIÊN NHIÊN']]}"}, {"role": "user", "content": "tham_gia tour du_lịch bằng thuyền kayak khám_phá hòn đảo hoang_sơ hang_động ở bình_định"}, {"role": "assistant", "content": "{'entities': [['tham_gia', 'TRẢI NGHIỆM'], ['tour', 'TOUR'], ['du_lịch', 'DU LỊCH'], ['thuyền', 'THUYỀN'], ['hòn đảo', 'HÒN ĐẢO'], ['hoang_sơ', 'HOANG SƠ'], ['hang_động', 'HANG ĐỘNG']]}"}, {"role": "user", "content": "tham_gia buổi thể_dục thể_thao yoga sáng bãi biển bắt_đầu một ngày mới đầy năng_lượng khỏe mạnh bình_định"}, {"role": "assistant", "content": "{'entities': [['tham_gia', 'TRẢI NGHIỆM'], ['thể_thao', 'THỂ THAO'], ['sáng', 'BÌNH MINH'], ['biển', 'BIỂN']]}"}, {"role": "user", "content": "trải_nghiệm hoạt_động câu cá thú_vị đầy thử_thách biển ở bình_định"}, {"role": "assistant", "content": "{'entities': [['trải_nghiệm', 'TRẢI NGHIỆM'], ['hoạt_động', 'HOẠT ĐỘNG'], ['câu cá', 'CÂU CÁ'], ['thú_vị', 'HẤP DẪN'], ['biển', 'BIỂN']]}"}, {"role": "user", "content": "khám_phá khu thắng_cảnh độc_đáo hồ thủy điện suối khoáng thác nước bình_định"}, {"role": "assistant", "content": "{'entities': [['khám_phá', 'TRẢI NGHIỆM'], ['thắng_cảnh', 'ĐỊA ĐIỂM'], ['độc_đáo', 'ĐỘC ĐÁO'], ['thủy điện', 'HỒ THỦY ĐIỆN'], ['suối', 'SUỐI'], ['thác nước', 'THÁC NƯỚC']]}"}, {"role": "user", "content": "tìm_hiểu về nền văn_hóa truyền_thống dân_gian thông_qua tham_quan làng_nghề trại dân_gian bình_định"}, {"role": "assistant", "content": "{'entities': [['văn_hóa', 'VĂN HÓA'], ['truyền_thống', 'TRUYỀN THỐNG'], ['dân_gian', 'DÂN GIAN'], ['làng_nghề', 'LÀNG'], ['dân_gian', 'DÂN GIAN']]}"}, {"role": "user", "content": "khám_phá khu_vực nông_thôn yên_bình tham_gia hoạt_động nông_nghiệp thu_hoạch chăm_sóc cây_trồng bình_định"}, {"role": "assistant", "content": "{'entities': [['khám_phá', 'TRẢI NGHIỆM'], ['khu_vực', 'ĐỊA ĐIỂM'], ['yên_bình', 'YÊN BÌNH'], ['hoạt_động', 'HOẠT ĐỘNG'], ['cây_trồng', 'THIÊN NHIÊN']]}"}, {"role": "user", "content": "khám_phá khu_vực bảo_tồn thiên_nhiên dự_án bảo_tồn động_vật hoang_dã bình_định"}, {"role": "assistant", "content": "{'entities': [['khám_phá', 'TRẢI NGHIỆM'], ['khu_vực', 'ĐỊA ĐIỂM'], ['bảo_tồn', 'BẢO TỒN'], ['thiên_nhiên', 'THIÊN NHIÊN'], ['bảo_tồn', 'BẢO TỒN'], ['động_vật', 'ĐỘNG VẬT'], ['hoang_dã', 'HOANG SƠ']]}"}, {"role": "user", "content": "trải_nghiệm cảm_giác hồi_hộp tham_gia hoạt_động leo núi trekking câu cá đêm bình_định"}, {"role": "assistant", "content": "{'entities': [['trải_nghiệm', 'TRẢI NGHIỆM'], ['hồi_hộp', 'HẤP DẪN'], ['hoạt_động', 'HOẠT ĐỘNG'], ['núi', 'NÚI'], ['câu cá', 'CÂU CÁ'], ['đêm', 'ĐÊM']]}"}, {"role": "user", "content": "tham_gia hoạt_động văn_hóa đặc_sắc học làm bánh_chưng múa_rối hát_xẩm bình_định"}, {"role": "assistant", "content": "{'entities': [['tham_gia', 'TRẢI NGHIỆM'], ['hoạt_động', 'HOẠT ĐỘNG'], ['văn_hóa', 'VĂN HÓA'], ['đặc_sắc', 'ĐẶC BIỆT']]}"}, {"role": "user", "content": "khám_phá khu vườn hoa cảnh_quan thiên_nhiên đẹp_mắt khu du_lịch công_viên bình_định"}, {"role": "assistant", "content": "{'entities': [['khám_phá', 'TRẢI NGHIỆM'], ['vườn hoa', 'VƯỜN HOA'], ['cảnh_quan', 'PHONG CẢNH'], ['thiên_nhiên', 'THIÊN NHIÊN'], ['khu', 'ĐỊA ĐIỂM'], ['du_lịch', 'DU LỊCH']]}"}, {"role": "user", "content": "tìm_hiểu về văn_hóa lịch_sử độc_đáo bình_định"}, {"role": "assistant", "content": "{'entities': [['tìm_hiểu', 'TRẢI NGHIỆM'], ['văn_hóa', 'VĂN HÓA'], ['lịch_sử', 'LỊCH SỬ'], ['độc_đáo', 'ĐỘC ĐÁO']]}"}, {"role": "user", "content": "đi_tích lịch_sử nào quan_trọng bình_định"}, {"role": "assistant", "content": "{'entities': [['đi_tích', 'DI TÍCH'], ['lịch_sử', 'LỊCH SỬ'], ['quan_trọng', 'ĐẶC BIỆT']]}"}, {"role": "user", "content": "địa_điểm dành người_yêu thiên_nhiên ở bình_định"}, {"role": "assistant", "content": "{'entities': [['địa_điểm', 'ĐỊA ĐIỂM'], ['người_yêu thiên_nhiên', 'THIÊN NHIÊN']]}"}, {"role": "user", "content": "lễ_hội truyền_thống nào diễn đặc_biệt dịp lễ bình_định"}, {"role": "assistant", "content": "{'entities': [['lễ_hội', 'LỄ HỘI'], ['truy��n_thống', 'TRUYỀN THỐNG'], ['đặc_biệt', 'ĐẶC BIỆT'], ['dịp lễ', 'LỄ HỘI']]}"}, {"role": "user", "content": "khách_sạn giá trung_bình quy_nhơn"}, {"role": "assistant", "content": "{'entities': [['khách_sạn', 'KHÁCH SẠN'], ['giá trung_bình', 'BÌNH DÂN']]}"}, {"role": "user", "content": "khách_sạn nào quan_sát lễ_hội ở quảng_trường"}, {"role": "assistant", "content": "{'entities': [['khách_sạn', 'KHÁCH SẠN'], ['lễ_hội', 'LỄ HỘI'], ['quảng_trường', 'QUẢNG TRƯỜNG']]}"}, {"role": "user", "content": "điểm đến nào ở quy_nhơn phù_hợp tận_hưởng biển núi"}, {"role": "assistant", "content": "{'entities': [['điểm đến', 'ĐỊA ĐIỂM'], ['tận_hưởng', 'THƯỞNG THỨC'], ['biển', 'BIỂN'], ['núi', 'NÚI']]}"}, {"role": "user", "content": "tìm_kiếm khách_sạn boutique phong_cách độc_đáo ở quy_nhơn gợi_ý"}, {"role": "assistant", "content": "{'entities': [['khách_sạn', 'KHÁCH SẠN'], ['độc_đáo', 'ĐỘC ĐÁO']]}"}, {"role": "user", "content": "nhà_nghỉ nào ở quy_nhơn dịch_vụ đưa_đón đến điểm du_lịch chính"}, {"role": "assistant", "content": "{'entities': [['nhà_nghỉ', 'NHÀ NGHỈ'], ['đưa_đón', 'DI CHUYỂN'], ['điểm', 'ĐỊA ĐIỂM'], ['du_lịch', 'DU LỊCH']]}"}, {"role": "user", "content": "khách_sạn nào ở quy_nhơn dịch_vụ thuê xe hoặc phương_tiện tự lái"}, {"role": "assistant", "content": "{'entities': [['khách_sạn', 'KHÁCH SẠN'], ['thuê xe', 'DI CHUYỂN'], ['phương_tiện tự lái', 'DI CHUYỂN']]}"}, {"role": "user", "content": "khu_vực nào quy_nhơn phù_hợp đi bộ dạo thưởng_thức cảnh đẹp"}, {"role": "assistant", "content": "{'entities': [['khu_vực', 'ĐỊA ĐIỂM'], ['đi bộ', 'ĐI BỘ'], ['thưởng_thức', 'THƯỞNG THỨC'], ['cảnh đẹp', 'PHONG CẢNH']]}"}, {"role": "user", "content": "khu_vực nào quy_nhơn phù_hợp câu cá thư_giãn"}, {"role": "assistant", "content": "{'entities': [['khu_vực', 'ĐỊA ĐIỂM'], ['câu cá', 'CÂU CÁ']]}"}, {"role": "user", "content": "địa_điểm nào quy_nhơn thuận_lợi đạp xe_đạp hoặc leo núi"}, {"role": "assistant", "content": "{'entities': [['địa_điểm', 'ĐỊA ĐIỂM'], ['đạp xe_đạp', 'THỂ THAO'], ['leo núi', 'LEO NÚI']]}"}, {"role": "user", "content": "điểm đến nào quy_nhơn phù_hợp nhóm muốn trải_nghiệm văn_hóa địa_phương"}, {"role": "assistant", "content": "{'entities': [['điểm đến', 'ĐỊA ĐIỂM'], ['trải_nghiệm', 'TRẢI NGHIỆM'], ['văn_hóa', 'VĂN HÓA'], ['địa_phương', 'ĐỊA PHƯƠNG']]}"}, {"role": "user", "content": "khách_sạn nào quy_nhơn có_thể thưởng_thức cảnh bình_minh đẹp nhất"}, {"role": "assistant", "content": "{'entities': [['khách_sạn', 'KHÁCH SẠN'], ['thưởng_thức', 'THƯỞNG THỨC'], ['bình_minh', 'BÌNH MINH']]}"}, {"role": "user", "content": "khu_vực nào quy_nhơn phù_hợp du_khách muốn trải_nghiệm không_khí truyền_thống việt_nam"}, {"role": "assistant", "content": "{'entities': [['khu_vực', 'ĐỊA ĐIỂM'], ['trải_nghiệm', 'TRẢI NGHIỆM'], ['truyền_thống', 'TRUYỀN THỐNG']]}"}, {"role": "user", "content": "khách_sạn nào ở quy_nhơn bể bơi tiện_nghi giải_trí gia_đình"}, {"role": "assistant", "content": "{'entities': [['khách_sạn', 'KHÁCH SẠN'], ['bể bơi', 'BƠI LỘI'], ['giải_trí', 'THƯ GIÃN'], ['gia_đình', 'GIA ĐÌNH']]}"}, {"role": "user", "content": "địa_điểm nào phù_hợp cắm trại hè"}, {"role": "assistant", "content": "{'entities': [['địa_điểm', 'ĐỊA ĐIỂM'], ['cắm trại', 'CẮM TRẠI']]}"}, {"role": "user", "content": "khách_sạn nào nằm ở trung_tâm thành_phố"}, {"role": "assistant", "content": "{'entities': [['khách_sạn', 'KHÁCH SẠN'], ['thành_phố', 'THÀNH PHỐ']]}"}, {"role": "user", "content": "khách_sạn nào gần chợ"}, {"role": "assistant", "content": "{'entities': [['khách_sạn', 'KHÁCH SẠN'], ['chợ', 'CHỢ']]}"}, {"role": "user", "content": "khách_sạn nào thiết_kế phong_cách cổ_điển hay"}, {"role": "assistant", "content": "{'entities': [['khách_sạn', 'KHÁCH SẠN'], ['phong_cách cổ_điển', 'TRUYỀN THỐNG']]}"}, {"role": "user", "content": "địa_điểm du_lịch giải_trí dành gia_đình"}, {"role": "assistant", "content": "{'entities': [['địa_điểm', 'ĐỊA ĐIỂM'], ['du_lịch', 'DU LỊCH'], ['giải_trí', 'VUI CHƠI'], ['gia_đình', 'GIA ĐÌNH']]}"}, {"role": "user", "content": "địa_điểm có_thể cắm trại ngoài_trời"}, {"role": "assistant", "content": "{'entities': [['địa_điểm', 'ĐỊA ĐIỂM'], ['cắm trại', 'CẮM TRẠI'], ['ngoài_trời', 'NGOÀI TRỜI']]}"}, {"role": "user", "content": "địa_điểm khám_phá mạo_hiểm ở quy_nhơn"}, {"role": "assistant", "content": "{'entities': [['địa_điểm', 'ĐỊA ĐIỂM'], ['khám_phá', 'TRẢI NGHIỆM'], ['mạo_hi��m', 'MẠO HIỂM']]}"}, {"role": "user", "content": "muốn đến_nơi cắm trại núi"}, {"role": "assistant", "content": "{'entities': [['đến_nơi', 'ĐỊA ĐIỂM'], ['cắm trại', 'CẮM TRẠI'], ['núi', 'NÚI']]}"}, {"role": "user", "content": "bãi biển cắm trại cặp đôi"}, {"role": "assistant", "content": "{'entities': [['bãi biển', 'BIỂN'], ['cắm trại', 'CẮM TRẠI'], ['cặp đôi', 'CẶP ĐÔI']]}"}, {"role": "user", "content": "địa_điểm du_lịch bãi cỏ xanh"}, {"role": "assistant", "content": "{'entities': [['địa_điểm', 'ĐỊA ĐIỂM'], ['du_lịch', 'DU LỊCH'], ['bãi cỏ xanh', 'BÃI CỎ']]}"}]
Datasets/Query/answer_test.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"di_tích lịch_sử nổi_tiếng ở bình_định": ["LỊCH SỬ", "NỔI TIẾNG", "DI TÍCH"], "tín_đồ ăn_uống ăn đến quy_nhơn": [], "khám_phá vẻ đẹp hoang_sơ bãi biển cách_biệt khó tiếp_cận bình_định": ["ĐẸP", "HOANG SƠ", "TRẢI NGHIỆM", "THIÊN NHIÊN"], "cung đường_biển lãng_mạn": ["ĐẸP", "BIỂN"], "muốn đi biển": ["BIỂN"], "cung đường_biển đẹp bình_định": ["ĐẸP", "BIỂN"], "khu_vực nào quy_nhơn có_thể thưởng_thức_cảnh hoàng_hôn đẹp nhất": ["THƯỞNG THỨC", "ĐỊA ĐIỂM", "HOÀNG HÔN"], "tận_hưởng không_gian thư_giãn tĩnh_lặng khu_vực nghỉ_dưỡng cao_cấp dịch_vụ spa thư_giãn sang_trọng ở bình_định": ["THƯ GIÃN", "THƯỞNG THỨC", "YÊN BÌNH", "NGHỈ DƯỠNG"], "thăm quan địa_danh lịch_sử nổi_tiếng bình_định": ["LỊCH SỬ", "NỔI TIẾNG", "ĐỊA ĐIỂM"], "di_sản văn_hóa": ["DI SẢN", "VĂN HÓA"], "đặc_sản ẩm_thực nổi_tiếng bình_định": ["NỔI TIẾNG", "ĐẶC SẢN", "ẨM THỰC"], "cắm trại gia_đình": ["CẮM TRẠI", "GIA ĐÌNH"], "tìm_hiểu về nghệ_thuật truyền_thống thủ_công mỹ_nghệ người_dân bình_định thông_qua tham_quan làng_nghề địa_phương": ["CỘNG ĐỒNG", "VĂN HÓA", "NGHỆ THUẬT", "TRUYỀN THỐNG"], "hải_sản giá_cả sinh_viên": ["HẢI SẢN", "NGON"], "khu du_lịch biển phổ_biến ở bình_định": ["DU LỊCH", "BIỂN"], "leo núi nào ngắm cảnh quy_nhơn": ["THỂ THAO", "PHONG CẢNH", "NÚI"], "thưởng_thức ẩm_thực địa_phương": ["THƯỞNG THỨC", "ĐỊA PHƯƠNG", "ẨM THỰC"], "bãi biển đẹp bình_định": ["ĐẸP", "BIỂN"], "điểm đến nào ở quy_nhơn phù_hợp tận_hưởng biển núi": ["THỂ THAO", "BIỂN", "ĐỊA ĐIỂM"], "du_lịch bãi cát nhà_nghỉ": ["DU LỊCH"], "khách_sạn nào view biển độc_đáo": ["BIỂN", "KHÁCH SẠN", "ĐỘC ĐÁO"], "tìm_hiểu văn_hóa dân_gian ở bình_định": ["DÂN GIAN", "TRẢI NGHIỆM", "VĂN HÓA"], "kỳ nghỉ thư_giãn khu resort sang_trọng ở bình_định": ["THƯ GIÃN", "RESORT", "CAO CẤP"], "cảnh đẹp tự_nhiên hoạt_động vui_chơi quy_nhơn": ["ĐẸP", "PHONG CẢNH", "THIÊN NHIÊN"], "thưởng_thức ẩm_thực đặc_trưng người_dân bình_định": ["ĐẶC BIỆT", "THƯỞNG THỨC", "ẨM THỰC"], "khách_sạn nào quan_sát lễ_hội ở quảng_trường": ["CHỢ", "KHÁCH SẠN"], "khách_sạn nào nằm ở trung_tâm thành_phố": ["CHỢ", "THÀNH PHỐ", "KHÁCH SẠN"], "nét đẹp tự_nhiên độc_đáo bình_định": ["ĐẸP", "ĐỘC ĐÁO", "THIÊN NHIÊN"], "quán cà_phê chill buổi chiều": ["CÀ PHÊ"], "muốn tìm leo núi ngắm_cảnh quy_nhơn con đường nào muốn gợi_ý": ["THỂ THAO", "NÚI", "CON ĐƯỜNG"], "lễ_hội truyền_thống bình_định": ["LỄ HỘI", "TRUYỀN THỐNG"], "bình_định đặc_sản": ["ĐẶC SẢN"], "trải_nghiệm địa_điểm ẩm_thực độc_đáo đa_dạng món ăn ngon hấp_dẫn bình_định": ["ẨM THỰC", "ĐỊA ĐIỂM", "TRẢI NGHIỆM", "ĐỘC ĐÁO"], "điểm tham_quan nào quy_nhơn đặc_biệt thu_hút du_khách": ["THÀNH PHỐ", "ĐỊA ĐIỂM", "TRẢI NGHIỆM"], "tham_quan ngôi đền thờ di_tích lịch_sử người chăm bình_định": ["LỊCH SỬ", "DI TÍCH", "TRẢI NGHIỆM"], "muốn trải_nghiệm không_chỉ về tâm_linh mà_còn về nghệ_thuật văn_hóa ngôi chùa nào ở bình_định kết_hợp độc_đáo": ["ĐẶC BIỆT", "CỔ XƯA", "TRẢI NGHIỆM", "ĐỘC ĐÁO", "VĂN HÓA"], "muốn tìm_hiểu về văn_hóa tâm_linh bình_định thông_qua thăm ngôi chùa gợi_ý nào hành_trình": ["TÂM LINH", "TRẢI NGHIỆM", "VĂN HÓA"], "thưởng_thức phong_cảnh hữu_tình bình_định": ["PHONG CẢNH", "THƯỞNG THỨC"], "phượt bình_định": ["PHƯỢT"], "nhà_nghỉ nào ở quy_nhơn dịch_vụ đưa_đón đến điểm du_lịch chính": ["BÌNH DÂN", "ĐÊM", "ĐỊA ĐIỂM", "NHÀ NGHỈ"], "tham_quan bãi biển đẹp tham_gia hoạt_động ngoại_ô": ["ĐẸP", "BIỂN", "TRẢI NGHIỆM"], "muốn biết về văn_hóa lịch_sử địa_phương quy_nhơn địa_điểm nào giúp hiểu rõ hơn": ["ĐỊA ĐIỂM", "VĂN HÓA"], "điểm du_lịch nào trải_nghiệm đánh_bắt cá biển": ["ĐỘNG VẬT", "TRẢI NGHIỆM", "DU LỊCH", "ĐỊA ĐIỂM"], "muốn tìm_hiểu về kiến_trúc cổ_truyền_thống bình_định thông_qua di_tích lịch_sử": ["CỔ XƯA", "TRẢI NGHIỆM", "LỊCH SỬ", "DI TÍCH"], "tham_gia buổi biểu_diễn nghệ_thuật dân_gian truyền_thống hát chèo múa_rối nước hát quan_họ bình_định": ["CỘNG ĐỒNG", "BIỂU DIỄN", "TRẢI NGHIỆM", "NGHỆ THUẬT", "TRUYỀN THỐNG"], "điểm đến hấp_dẫn người_yêu thể_thao mạo_hiểm ở bình_định": ["MẠO HIỂM", "ĐỊA ĐIỂM", "HẤP DẪN"], "cẩm_nang du_lịch tự_túc bình_định": ["DU LỊCH", "GIA ĐÌNH"], "cảm_nhận vẻ đẹp tự_nhiên độc_đáo bình_định": ["ĐẸP", "THIÊN NHIÊN"], "địa_điểm thanh_tịnh": ["NHỘN NHỊP", "ĐỊA ĐIỂM"], "khám_phá ngôi làng truyền_thống kiến_trúc cổ cuộc_sống bình_dị người_dân bình_định": ["TRUYỀN THỐNG", "TRẢI NGHIỆM"], "quy_nhơn đi đâu chơi": ["VUI CHƠI"], "gợi_ý chuyến đi quy_nhơn gia_đình": ["HOẠT ĐỘNG", "GIA ĐÌNH"], "khu_vực du_lịch nào ở quy_nhơn thích_hợp tắm biển leo núi": ["THỂ THAO", "BIỂN", "DU LỊCH", "ĐỊA ĐIỂM"], "thích tắm biển đi biển nào": ["BƠI LỘI", "BIỂN"], "khám_phá ngọn núi ở quy_nhơn": ["NÚI", "TRẢI NGHIỆM"], "địa_điểm bơi": ["NHỘN NHỊP", "ĐỊA ĐIỂM"], "mong_muốn thử món ăn đặc_sản bình_định": ["ĐẶC SẢN"], "quán cà_phê ở bình_định": ["CÀ PHÊ"], "tận_hưởng không_khí mát_mẻ dễ_chịu dạo bước dọc con đường cây_xanh bình_định": ["LÀNG", "THIÊN NHIÊN", "THƯỞNG THỨC", "YÊN BÌNH"], "nhà_hàng ngon bình_định": ["NHÀ HÀNG"], "tham_quan ngôi chùa cổ ở bình_định": ["CHÙA", "TRẢI NGHIỆM"], "muốn tìm_hiểu về lịch_sử văn_hóa bình_định liệu điểm đến nào khác ngoài di_tích lịch_sử": ["LỊCH SỬ", "DI TÍCH", "TRẢI NGHIỆM"], "trải_nghiệm đi bộ đường ven biển thư_giãn bãi cát trắng mịn ở bình_định": ["BẠN BÈ", "BIỂN", "TRẢI NGHIỆM"]}
Datasets/Query/datasets_number.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {"classes":["ẨM THỰC","BÃI CỎ","BẠN BÈ","BẢO TÀNG","BẢO TỒN","BÍ ẨN","BIỂN","BIỂU DIỄN","BÌNH DÂN","BÌNH MINH","BƠI LỘI","CÀ PHÊ","CAO CẤP","CÁT","CẮM TRẠI","CẶP ĐÔI","CÂU CÁ","CHỢ","CHÙA","CHỤP ẢNH","CON ĐƯỜNG","CỔ XƯA","CỘNG ĐỒNG","CUỐI TUẦN","CỬA HÀNG","DÂN GIAN","DÂN TỘC","DI CHUYỂN","DI SẢN","DI TÍCH","DU LỊCH","ĐÁ","ĐẶC BIỆT","ĐẶC SẢN","ĐÈO","ĐẸP","ĐÊM","ĐỀN THỜ","ĐI BỘ","ĐỊA ĐIỂM","ĐỊA PHƯƠNG","ĐỘC ĐÁO","ĐỘNG VẬT","GIA ĐÌNH","HẢI SẢN","HANG ĐỘNG","HẤP DẪN","HIỆN ĐẠI","HOÀNG HÔN","HOANG SƠ","HOẠT ĐỘNG","HÒN ĐẢO","HỒ THỦY ĐIỆN","HỘI THẢO","HÙNG VĨ","KHÁCH SẠN","KHÓ QUÊN","KHOA HỌC","KIẾN TRÚC","LÀNG","LÀNG CHÀI","LÃNG MẠN","LẶN","LEO NÚI","LỄ HỘI","LỊCH SỬ","LƯỚT SÓNG","MẠO HIỂM","NGHỆ THUẬT","NGHỈ DƯỠNG (SPA)","NGOẠI Ô","NGOÀI TRỜI","NGON","NHÀ HÀNG","NHÀ NGHỈ","NHỘN NHỊP","NỔI TIẾNG","NÚI","PHONG CẢNH","PHƯỢT","QUẢNG TRƯỜNG","QUỐC TẾ","RESORT","SAN HÔ","SÂN BAY","SUỐI","SỰ KIỆN","TÂM LINH","THÁC NƯỚC","THÀNH PHỐ","THỂ THAO","THIÊN NHIÊN","THUYỀN","THƯ GIÃN","THƯỞNG THỨC","TOUR","TÔN GIÁO","TRẢI NGHIỆM","TRẺ EM","TRUYỀN THỐNG","TỰ TÚC","VĂN HÓA","VUI CHƠI","VƯỜN HOA","YÊN BÌNH","RIÊNG TƯ","CÔNG VIÊN"],"annotations":[["ăn quy_nhơn\r",{"entities":[[0,2,"ẨM THỰC"]]}],["mong_muốn thử món ăn đặc_sản bình_định\r",{"entities":[[14,20,"ẨM THỰC"],[21,28,"ĐẶC SẢN"]]}],["ăn đặc_sản bình_định chỗ nào ngon\r",{"entities":[[0,2,"ẨM THỰC"],[3,10,"ĐẶC SẢN"],[29,33,"NGON"]]}],["bình_định đặc_sản\r",{"entities":[[10,17,"ĐẶC SẢN"]]}],["món ăn nổi_tiếng quy_nhơn\r",{"entities":[[0,6,"ẨM THỰC"],[7,16,"NỔI TIẾNG"]]}],["muốn thử món ăn đặc_sản bình_định gợi_ý nào\r",{"entities":[[9,15,"ẨM THỰC"],[16,23,"ĐẶC SẢN"]]}],["xin vui_lòng giới_thiệu quán ăn nổi_tiếng đặc_sản bình_định\r",{"entities":[[24,31,"ẨM THỰC"],[32,41,"NỔI TIẾNG"],[42,49,"ĐẶC SẢN"]]}],["bình_định đặc_sản ẩm_thực nào đặc_biệt bỏ lỡ\r",{"entities":[[10,17,"ĐẶC SẢN"],[18,25,"ẨM THỰC"],[30,38,"ĐẶC BIỆT"]]}],["muốn khám_phá về ẩm_thực địa_phương bình_định\r",{"entities":[[5,13,"TRẢI NGHIỆM"],[17,24,"ẨM THỰC"],[25,35,"ĐỊA PHƯƠNG"]]}],["tìm_hiểu về văn_hóa ẩm_thực bình_định\r",{"entities":[[12,19,"VĂN HÓA"],[20,27,"ẨM THỰC"]]}],["làng_nghề chế_biến ẩm_thực bình_định\r",{"entities":[[0,9,"LÀNG"],[19,26,"ẨM THỰC"]]}],["học_hỏi về ẩm_thực_địa_phương quy_nhơn\r",{"entities":[[11,29,"ẨM THỰC"]]}],["tới bình_định ăn\r",{"entities":[[14,16,"ẨM THỰC"]]}],["hải_sản ở đâu ngon\r",{"entities":[[0,7,"HẢI SẢN"],[14,18,"NGON"]]}],["muốn ăn hải_sản tươi_sống\r",{"entities":[[8,15,"HẢI SẢN"],[16,25,"NGON"]]}],["món ăn đặc_sản bình_định\r",{"entities":[[0,6,"ẨM THỰC"],[7,14,"ĐẶC SẢN"]]}],["món ăn quy_nhơn\r",{"entities":[[0,6,"ẨM THỰC"]]}],["món ăn nhất_định thử đến bình_định\r",{"entities":[[0,6,"ẨM THỰC"]]}],["ẩm_thực đường_phố quy_nhơn\r",{"entities":[[0,7,"ẨM THỰC"],[8,17,"CON ĐƯỜNG"]]}],["ăn hải_sản giá rẻ\r",{"entities":[[0,2,"ẨM THỰC"],[3,10,"HẢI SẢN"],[11,17,"BÌNH DÂN"]]}],["đến quy_nhơn ăn\r",{"entities":[[13,15,"ẨM THỰC"]]}],["hải_sản giá_cả sinh_viên\r",{"entities":[[0,7,"HẢI SẢN"],[8,24,"BÌNH DÂN"]]}],["hải_sản tươi_sống\r",{"entities":[[0,7,"HẢI SẢN"],[8,17,"NGON"]]}],["ăn ngon rẻ bình_dân ở quy_nhơn\r",{"entities":[[0,2,"ẨM THỰC"],[3,7,"NGON"],[8,19,"BÌNH DÂN"]]}],["đến quy_nhơn ăn\r",{"entities":[[13,15,"ẨM THỰC"]]}],["ăn sáng ở quy_nhơn\r",{"entities":[[0,2,"ẨM THỰC"],[3,7,"BÌNH MINH"]]}],["ăn trưa món ăn đặc_trưng quy_nhơn\r",{"entities":[[0,2,"ẨM THỰC"],[8,14,"ẨM THỰC"],[15,24,"ĐẶC BIỆT"]]}],["quán ăn ngon_quy_nhơn\r",{"entities":[[5,7,"ẨM THỰC"]]}],["tín_đồ ăn_uống ăn đến quy_nhơn\r",{"entities":[[7,14,"ẨM THỰC"],[15,17,"ẨM THỰC"]]}],["món ăn_nhậu bạn_bè\r",{"entities":[[0,11,"ẨM THỰC"]]}],["cà_phê giá_cả sinh_viên ở quy_nhơn\r",{"entities":[[0,6,"CÀ PHÊ"],[7,23,"BÌNH DÂN"]]}],["ăn sáng uống cà_phê ở quy_nhơn\r",{"entities":[[0,7,"ẨM THỰC"],[13,19,"CÀ PHÊ"]]}],["quán cà_phê chill buổi chiều\r",{"entities":[[5,11,"CÀ PHÊ"],[18,28,"HOÀNG HÔN"]]}],["sáng đi cà_phê tán_gẫu bạn_bè\r",{"entities":[[0,4,"BÌNH MINH"],[8,14,"CÀ PHÊ"],[23,29,"BẠN BÈ"]]}],["quán cà_phê gần biển\r",{"entities":[[5,11,"CÀ PHÊ"],[16,20,"BIỂN"]]}],["quán cà_phê acoustic\r",{"entities":[[5,11,"CÀ PHÊ"]]}],["quy_nhơn quán cà_phê nào\r",{"entities":[[14,20,"CÀ PHÊ"]]}],["cà_phê chill ngắm bình_minh\r",{"entities":[[0,6,"CÀ PHÊ"],[18,27,"BÌNH MINH"]]}],["cà_phê ngắm biển quy_nhơn\r",{"entities":[[0,6,"CÀ PHÊ"],[12,16,"BIỂN"]]}],["đi cà_phê quán nào quy_nhơn\r",{"entities":[[3,9,"CÀ PHÊ"]]}],["quán cà_phê yên_tĩnh\r",{"entities":[[5,11,"CÀ PHÊ"],[12,20,"YÊN BÌNH"]]}],["cà_phê học bài\r",{"entities":[[0,6,"CÀ PHÊ"]]}],["đi cà_phê làm_việc đi quán nào\r",{"entities":[[3,9,"CÀ PHÊ"]]}],["bình_định điểm đến nổi_tiếng nào\r",{"entities":[[19,28,"NỔI TIẾNG"]]}],["khu du_lịch nào nổi_tiếng ở bình_định không_thể bỏ_qua\r",{"entities":[[4,11,"DU LỊCH"],[16,25,"NỔI TIẾNG"]]}],["khu du_lịch gần_gũi thiên_nhiên\r",{"entities":[[4,11,"DU LỊCH"],[20,31,"THIÊN NHIÊN"]]}],["quy_nhơn đi đâu chơi\r",{"entities":[[9,15,"ĐỊA ĐIỂM"],[16,20,"VUI CHƠI"]]}],["đi chơi quy_nhơn gia_đình\r",{"entities":[[3,7,"VUI CHƠI"],[17,25,"GIA ĐÌNH"]]}],["đi đâu chơi ở bình_định\r",{"entities":[[7,11,"VUI CHƠI"]]}],["bình_định điểm du_lịch đặc_sắc nào khám_phá\r",{"entities":[[15,22,"DU LỊCH"],[23,30,"ĐẶC BIỆT"],[35,43,"TRẢI NGHIỆM"]]}],["địa_điểm du_lịch không_thể bỏ_qua ở bình_định\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,16,"DU LỊCH"]]}],["muốn trải_nghiệm gần_gũi thiên_nhiên ở bình_định gợi_ý nào\r",{"entities":[[5,16,"TRẢI NGHIỆM"],[25,36,"THIÊN NHIÊN"]]}],["đi du_lịch tới quy_nhơn hoạt_động vui_chơi nào thử\r",{"entities":[[3,10,"DU LỊCH"],[24,33,"HOẠT ĐỘNG"],[34,42,"VUI CHƠI"]]}],["gợi_ý nào chuyến đi quy_nhơn gia_đình\r",{"entities":[[10,19,"HOẠT ĐỘNG"],[29,37,"GIA ĐÌNH"]]}],["làm bình_định trở_thành một điểm đến hấp_dẫn du_khách\r",{"entities":[[28,36,"ĐỊA ĐIỂM"]]}],["kế_hoạch chuyến đi mình tới bình_định hoạt_động nào_là không_thể bỏ_qua\r",{"entities":[[38,47,"HOẠT ĐỘNG"]]}],["có_thể giới_thiệu về điểm tham_quan tự_nhiên ở quy_nhơn\r",{"entities":[[21,25,"ĐỊA ĐIỂM"],[26,35,"TRẢI NGHIỆM"],[36,44,"THIÊN NHIÊN"]]}],["muốn khám_phá văn_hóa địa_danh độc_đáo bình_định gợi_ý nào\r",{"entities":[[5,13,"TRẢI NGHIỆM"],[14,21,"VĂN HÓA"],[22,30,"ĐỊA ĐIỂM"],[31,38,"ĐẶC BIỆT"]]}],["điểm đến nào ở bình_định thích_hợp một kỳ_nghỉ thư_giãn thú_vị\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[39,46,"NGHỈ DƯỠNG"],[47,55,"THƯ GIÃN"]]}],["mong_muốn thư_giãn tận_hưởng không_gian thiên_nhiên ở bình_định\r",{"entities":[[10,18,"THƯ GIÃN"],[40,51,"THIÊN NHIÊN"]]}],["tìm_kiếm trải_nghiệm du_lịch gần_gũi thiên_nhiên gợi_ý\r",{"entities":[[9,20,"TRẢI NGHIỆM"],[21,28,"DU LỊCH"],[37,48,"THIÊN NHIÊN"]]}],["điểm du_lịch nào ở quy_nhơn đánh_giá cao về cảnh đẹp tự_nhiên hoạt_động vui_chơi\r",{"entities":[[5,12,"DU LỊCH"],[44,48,"PHONG CẢNH"],[53,61,"THIÊN NHIÊN"],[62,71,"HOẠT ĐỘNG"],[72,80,"VUI CHƠI"]]}],["bình_định khu du_lịch biển nào phổ_biến khuyên bỏ_qua\r",{"entities":[[14,21,"DU LỊCH"],[22,26,"BIỂN"]]}],["có_thể giới_thiệu một_số điểm đến trong thành_phố quy_nhơn du_khách bỏ_qua\r",{"entities":[[25,33,"ĐỊA ĐIỂM"],[40,49,"THÀNH PHỐ"]]}],["tour du_lịch nào ở bình_định phù_hợp du_khách muốn khám_phá điểm đến trong một chuyến đi ngắn\r",{"entities":[[0,4,"TOUR"],[5,12,"DU LỊCH"],[51,59,"TRẢI NGHIỆM"],[60,68,"ĐỊA ĐIỂM"]]}],["cảnh đẹp tự_nhiên nào ở bình_định yêu_thích nhất chụp ảnh\r",{"entities":[[0,8,"PHONG CẢNH"],[9,17,"THIÊN NHIÊN"],[49,57,"CHỤP ẢNH"]]}],["muốn trải_nghiệm cuộc_sống biển ở bình_định khu_vực nào đề_xuất\r",{"entities":[[5,16,"TRẢI NGHIỆM"],[27,31,"BIỂN"],[44,51,"ĐỊA ĐIỂM"]]}],["bình_định hoạt_động giải_trí nào dành du_khách buổi tối\r",{"entities":[[10,19,"HOẠT ĐỘNG"],[20,28,"VUI CHƠI"],[52,55,"ĐÊM"]]}],["bình_định bãi biển nào an_toàn lý_tưởng tắm biển thư_giãn\r",{"entities":[[14,18,"BIỂN"],[40,43,"BƠI LỘI"],[49,57,"THƯ GIÃN"]]}],["bình_định điểm du_lịch nào đáng khám_phá nhất\r",{"entities":[[10,14,"ĐỊA ĐIỂM"],[15,22,"DU LỊCH"],[32,40,"TRẢI NGHIỆM"]]}],["kế_hoạch chuyến đi bình_định mùa nào lý_tưởng nhất thăm\r",{"entities":[]}],["du_lịch biển quy_nhơn\r",{"entities":[[0,7,"DU LỊCH"],[8,12,"BIỂN"]]}],["muốn ở ở một gần biển không_gian yên_tĩnh tiện_nghi thư_giãn tận_hưởng khoảnh_khắc yên_bình\r",{"entities":[[17,21,"BIỂN"],[33,41,"YÊN BÌNH"],[52,60,"THƯ GIÃN"],[83,91,"YÊN BÌNH"]]}],["tham_quan bãi biển đẹp tham_gia hoạt_động ngoại_ô\r",{"entities":[[0,9,"TRẢI NGHIỆM"],[14,18,"BIỂN"],[19,22,"ĐẸP"],[32,41,"HOẠT ĐỘNG"],[42,49,"NGOẠI Ô"]]}],["muốn khám_phá về đời_sống biển ở bình_định có_điều đặc_biệt\r",{"entities":[[5,13,"TRẢI NGHIỆM"],[26,30,"BIỂN"],[51,59,"ĐẶC BIỆT"]]}],["điểm đến còn hoang_vu bình_dị\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[13,21,"HOANG SƠ"]]}],["có_thể tham_gia hoạt_động nào biển ở bình_định\r",{"entities":[[16,25,"HOẠT ĐỘNG"],[30,34,"BIỂN"]]}],["muốn đến làng chài\r",{"entities":[[9,18,"LÀNG CHÀI"]]}],["tour du_lịch nào kết_hợp tham_quan làng chài trải_nghiệm văn_hóa địa_phương ở bình_định\r",{"entities":[[5,12,"DU LỊCH"],[25,34,"TRẢI NGHIỆM"],[35,44,"LÀNG CHÀI"],[45,56,"TRẢI NGHIỆM"],[57,64,"VĂN HÓA"],[65,75,"ĐỊA PHƯƠNG"]]}],["thích lặn biển đi đâu\r",{"entities":[[6,9,"LẶN"],[10,14,"BIỂN"]]}],["lặn ngắm san_hô\r",{"entities":[[0,3,"LẶN"],[9,15,"SAN HÔ"]]}],["lưu_ý lặn biển ở bình_định\r",{"entities":[[6,9,"LẶN"],[10,14,"BIỂN"]]}],["trải_nghiệm lặn san_hô ở quy_nhơn\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[12,15,"LẶN"],[16,22,"SAN HÔ"]]}],["muốn đến một làng chài bình_định địa_điểm nào khuyên\r",{"entities":[[13,22,"LÀNG CHÀI"],[33,41,"ĐỊA ĐIỂM"]]}],["muốn lặn biển ở bình_định đâu phù_hợp nhất\r",{"entities":[[5,8,"LẶN"],[9,13,"BIỂN"]]}],["muốn trải_nghiệm lặn san_hô ở bình_định điểm nào đề_xuất\r",{"entities":[[5,16,"TRẢI NGHIỆM"],[17,20,"LẶN"],[21,27,"SAN HÔ"],[40,44,"ĐỊA ĐIỂM"]]}],["trải_nghiệm trò_chơi biển ở đâu\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[12,20,"VUI CHƠI"],[21,25,"BIỂN"]]}],["trò_chơi biển phù_hợp trẻ_em\r",{"entities":[[0,8,"VUI CHƠI"],[9,13,"BIỂN"],[22,28,"TRẺ EM"]]}],["trò_chơi mạo_hiểm biển\r",{"entities":[[0,8,"VUI CHƠI"],[9,17,"MẠO HIỂM"],[18,22,"BIỂN"]]}],["biển nào phù_hợp tắm\r",{"entities":[[0,4,"BIỂN"],[17,20,"BƠI LỘI"]]}],["thích tắm biển đi biển nào\r",{"entities":[[6,9,"BƠI LỘI"],[10,14,"BIỂN"],[18,22,"BIỂN"]]}],["đi chơi biển gia_đình\r",{"entities":[[3,7,"VUI CHƠI"],[8,12,"BIỂN"]]}],["tắm biển gia_đình\r",{"entities":[[0,3,"BƠI LỘI"],[4,8,"BIỂN"],[9,17,"GIA ĐÌNH"]]}],["bãi biển đẹp quy_nhơn\r",{"entities":[[4,8,"BIỂN"],[9,12,"ĐẸP"]]}],["bãi biển xanh hoang_vu\r",{"entities":[[4,8,"BIỂN"],[14,22,"HOANG SƠ"]]}],["biển cảnh đẹp\r",{"entities":[[0,4,"BIỂN"],[5,9,"PHONG CẢNH"],[10,13,"ĐẸP"]]}],["đi bãi biển đẹp chụp ảnh\r",{"entities":[[7,11,"BIỂN"],[12,15,"ĐẸP"],[16,24,"CHỤP ẢNH"]]}],["tín_đồ chụp ảnh đi biển nào chụp ảnh\r",{"entities":[[7,15,"CHỤP ẢNH"],[19,23,"BIỂN"],[28,36,"CHỤP ẢNH"]]}],["bãi biển trò_chơi nước\r",{"entities":[[4,8,"BIỂN"],[9,17,"VUI CHƠI"]]}],
2
+ ["resort biển đẹp\r",{"entities":[[0,6,"RESORT"],[7,11,"BIỂN"],[12,15,"ĐẸP"]]}],["bãi biển trong khu resort\r",{"entities":[[4,8,"BIỂN"],[19,25,"RESORT"]]}],["bãi biển gần trung_tâm thành_phố\r",{"entities":[[4,8,"BIỂN"],[23,32,"THÀNH PHỐ"]]}],["đi phượt biển bình_định\r",{"entities":[[3,8,"PHƯỢT"],[9,13,"BIỂN"]]}],["cung đường_biển đẹp bình_định\r",{"entities":[[5,15,"BIỂN"],[16,19,"ĐẸP"]]}],["phượt trải_nghiệm đường_biển bình_định\r",{"entities":[[0,5,"PHƯỢT"],[6,17,"TRẢI NGHIỆM"],[18,28,"BIỂN"]]}],["ngắm đường_biển đẹp bình_định\r",{"entities":[[5,15,"BIỂN"],[16,19,"ĐẸP"]]}],["cung đường_biển lãng_mạn\r",{"entities":[[5,15,"BIỂN"],[16,24,"LÃNG MẠN"]]}],["ngắm hoàng_hôn biển quy_nhơn\r",{"entities":[[5,14,"HOÀNG HÔN"],[15,19,"BIỂN"]]}],["ngắm bình_minh biển quy_nhơn\r",{"entities":[[5,14,"BÌNH MINH"],[15,19,"BIỂN"]]}],["tour leo núi\r",{"entities":[[0,4,"TOUR"],[5,8,"THỂ THAO"],[9,12,"NÚI"]]}],["ở đâu hoạt_động phiêu_lưu leo núi hoặc trekking\r",{"entities":[[6,15,"HOẠT ĐỘNG"],[26,29,"THỂ THAO"],[30,33,"NÚI"]]}],["leo núi nào ngắm cảnh quy_nhơn\r",{"entities":[[4,7,"NÚI"],[12,21,"PHONG CẢNH"]]}],["leo núi buổi sáng\r",{"entities":[[0,3,"THỂ THAO"],[4,7,"NÚI"],[8,17,"BÌNH MINH"]]}],["muốn leo núi ngắm cảnh quy_nhơn con đường leo nào đẹp an_toàn\r",{"entities":[[5,8,"THỂ THAO"],[9,12,"NÚI"],[13,22,"PHONG CẢNH"],[32,41,"CON ĐƯỜNG"],[50,53,"ĐẸP"]]}],["muốn tham_gia hoạt_động leo núi buổi sáng ở bình_định gợi_ý nào\r",{"entities":[[5,13,"TRẢI NGHIỆM"],[14,23,"HOẠT ĐỘNG"],[24,27,"THỂ THAO"],[28,31,"NÚI"],[32,41,"BÌNH MINH"]]}],["muốn tìm leo núi ngắm_cảnh quy_nhơn con đường nào muốn gợi_ý\r",{"entities":[[9,12,"THỂ THAO"],[13,16,"NÚI"],[17,26,"PHONG CẢNH"]]}],["lịch_trình leo núi buổi sáng nào ở bình_định có_thể chia_sẻ\r",{"entities":[[11,14,"THỂ THAO"],[15,18,"NÚI"],[19,28,"BÌNH MINH"]]}],["lịch_trình khám_phá ngọn núi ở quy_nhơn\r",{"entities":[[11,19,"TRẢI NGHIỆM"],[25,28,"NÚI"]]}],["ở bình_định hoạt_động phiêu_lưu khám_phá núi_rừng hay\r",{"entities":[[12,21,"HOẠT ĐỘNG"],[32,40,"TRẢI NGHIỆM"],[41,49,"NÚI"]]}],["đi leo núi khám_phá quy_nhơn\r",{"entities":[[3,6,"THỂ THAO"],[7,10,"NÚI"],[11,19,"TRẢI NGHIỆM"]]}],["leo núi nào ngắm toàn thành_phố quy_nhơn\r",{"entities":[[0,3,"THỂ THAO"],[4,7,"NÚI"],[12,16,"PHONG CẢNH"],[22,31,"THÀNH PHỐ"]]}],["ngọn núi cao nhất thành_phố quy_nhơn\r",{"entities":[[5,8,"NÚI"],[18,27,"THÀNH PHỐ"]]}],["muốn tìm_hiểu về hoạt_động leo núi dành gia_đình ở bình_định gợi_ý nào\r",{"entities":[[5,13,"TRẢI NGHIỆM"],[17,26,"HOẠT ĐỘNG"],[27,30,"THỂ THAO"],[31,34,"NÚI"],[40,48,"GIA ĐÌNH"]]}],["hoạt_động leo núi thú_vị\r",{"entities":[[0,9,"HOẠT ĐỘNG"],[10,13,"THỂ THAO"],[14,17,"NÚI"]]}],["leo núi bạn_bè\r",{"entities":[[0,3,"THỂ THAO"],[4,7,"NÚI"],[8,14,"BẠN BÈ"]]}],["khám_phá ngọn núi ở quy_nhơn\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[14,17,"NÚI"]]}],["đặt_chân đến ngọn núi cao ở quy_nhơn\r",{"entities":[[18,21,"NÚI"]]}],["nhóm trẻ khám_phá núi nào\r",{"entities":[[0,8,"BẠN BÈ"],[9,17,"TRẢI NGHIỆM"],[18,21,"NÚI"]]}],["thích khám_phá núi_rừng đi đâu\r",{"entities":[[6,14,"TRẢI NGHIỆM"],[15,23,"NÚI"]]}],["muốn tổ_chức một chuyến leo núi bạn_bè_bạn gợi_ý nào\r",{"entities":[[24,27,"THỂ THAO"],[28,31,"NÚI"],[32,42,"BẠN BÈ"]]}],["muốn khám_phá ngọn núi ở quy_nhơn thông_tin về\r",{"entities":[[5,13,"TRẢI NGHIỆM"],[19,22,"NÚI"]]}],["đi chơi cắm trại núi\r",{"entities":[[3,7,"VUI CHƠI"],[8,16,"CẮM TRẠI"],[17,20,"NÚI"]]}],["ở đâu phù_hợp cắm trại đêm\r",{"entities":[[14,22,"CẮM TRẠI"],[23,26,"ĐÊM"]]}],["tìm_kiếm cắm trại ở quy_nhơn gợi_ý nào\r",{"entities":[[9,17,"CẮM TRẠI"]]}],["cắm trại healing\r",{"entities":[[0,8,"CẮM TRẠI"]]}],["đi đâu cắm trại bình_định\r",{"entities":[[7,15,"CẮM TRẠI"]]}],["cắm trại camping quy_nhơn\r",{"entities":[[0,8,"CẮM TRẠI"],[9,16,"CẮM TRẠI"]]}],["nào ở bình_định thích_hợp cắm trại tận_hưởng thiên_nhiên\r",{"entities":[[26,34,"CẮM TRẠI"],[45,56,"THIÊN NHIÊN"]]}],["tìm_kiếm trải_nghiệm cắm trại healing địa_điểm nào phù_hợp ở bình_định\r",{"entities":[[9,20,"TRẢI NGHIỆM"],[21,29,"CẮM TRẠI"],[38,46,"ĐỊA ĐIỂM"]]}],["nào ở bình_định lựa_chọn tốt nhất một trải_nghiệm cắm trại tuyệt_vời\r",{"entities":[[38,49,"TRẢI NGHIỆM"],[50,58,"CẮM TRẠI"]]}],["cắm trại thuê lều ở đêm quy_nhơn\r",{"entities":[[0,8,"CẮM TRẠI"],[20,23,"ĐÊM"]]}],["cắm trại bạn_bè\r",{"entities":[[0,8,"CẮM TRẠI"],[9,15,"BẠN BÈ"]]}],["tìm_kiếm trải_nghiệm cắm trại độc_đáo ở quy_nhơn gợi_ý nào một trải_nghiệm khác_biệt\r",{"entities":[[9,20,"TRẢI NGHIỆM"],[21,29,"CẮM TRẠI"],[63,74,"TRẢI NGHIỆM"],[75,84,"ĐẶC BIỆT"]]}],["bình_định khu cắm trại camping nào gần_gũi thiên_nhiên thuận_tiện cắm trại đêm\r",{"entities":[[14,22,"CẮM TRẠI"],[23,30,"CẮM TRẠI"],[43,54,"THIÊN NHIÊN"],[66,74,"CẮM TRẠI"],[75,78,"ĐÊM"]]}],["tìm_kiếm một địa_điểm cắm trại bình_định hoạt_động mạo_hiểm gần_gũi thiên_nhiên gợi_ý nào\r",{"entities":[[13,21,"ĐỊA ĐIỂM"],[22,30,"CẮM TRẠI"],[41,50,"HOẠT ĐỘNG"],[51,59,"MẠO HIỂM"],[68,79,"THIÊN NHIÊN"]]}],["thông_tin về khu_vực có_thể cắm trại tham_gia hoạt_động mạo_hiểm leo núi trekking\r",{"entities":[[13,20,"ĐỊA ĐIỂM"],[28,36,"CẮM TRẠI"],[46,55,"HOẠT ĐỘNG"],[56,64,"MẠO HIỂM"],[65,68,"THỂ THAO"],[69,72,"NÚI"]]}],["quan_tâm đến hoạt_động mạo_hiểm leo núi hoặc đi bộ đường dài gợi_ý nào\r",{"entities":[[13,22,"HOẠT ĐỘNG"],[23,31,"MẠO HIỂM"],[32,35,"THỂ THAO"],[36,39,"NÚI"],[45,50,"ĐI BỘ"],[51,56,"CON ĐƯỜNG"]]}],["muốn tìm_hiểu về hoạt_động leo núi dành gia_đình ở bình_định gợi_ý nào\r",{"entities":[[17,26,"HOẠT ĐỘNG"],[27,30,"THỂ THAO"],[31,34,"NÚI"],[40,48,"GIA ĐÌNH"]]}],["nghĩ leo núi bạn_bè một trải_nghiệm thú_vị ở bình_định hay\r",{"entities":[[5,8,"THỂ THAO"],[9,12,"NÚI"],[13,19,"BẠN BÈ"],[24,35,"TRẢI NGHIỆM"]]}],["chuyến đi phượt cắm trại đi đâu ở bình_định\r",{"entities":[[10,15,"PHƯỢT"],[16,24,"CẮM TRẠI"]]}],["muốn một trải_nghiệm cắm trại tuyệt_vời ở bình_định nào lựa_chọn tốt nhất\r",{"entities":[[9,20,"TRẢI NGHIỆM"],[21,29,"CẮM TRẠI"]]}],["muốn tìm địa_điểm cắm trại thuê lều ở đêm ở quy_nhơn thông_tin nào\r",{"entities":[[9,17,"ĐỊA ĐIỂM"],[18,26,"CẮM TRẠI"],[38,41,"ĐÊM"]]}],["muốn cắm trại trong một ngày đi đâu ở bình_định\r",{"entities":[[5,13,"CẮM TRẠI"]]}],["muốn tổ_chức một chuyến cắm trại bạn_bè_bạn địa_điểm nào ở bình_định khuyến_nghị\r",{"entities":[[24,32,"CẮM TRẠI"],[33,43,"BẠN BÈ"],[44,52,"ĐỊA ĐIỂM"]]}],["dân phượt đi đâu ở bình_định\r",{"entities":[[4,9,"PHƯỢT"]]}],["phượt bằng xe_máy ở bình_định đi đâu\r",{"entities":[[0,5,"PHƯỢT"]]}],["phượt trải_nghiệm bằng xe_máy ở bình_định\r",{"entities":[[0,5,"PHƯỢT"],[6,17,"TRẢI NGHIỆM"]]}],["đi phượt bằng xe_máy bạn_bè đi đâu bình_định\r",{"entities":[[3,8,"PHƯỢT"],[21,27,"BẠN BÈ"]]}],["trải_nghiệm phượt bình_định\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[12,17,"PHƯỢT"]]}],["di_tích lịch_sử nổi_tiếng ở bình_định\r",{"entities":[[0,7,"DI TÍCH"],[8,15,"LỊCH SỬ"],[16,25,"NỔI TIẾNG"]]}],["muốn khám_phá về văn_hóa lịch_sử đặc_sản bình_định\r",{"entities":[[5,13,"TRẢI NGHIỆM"],[17,24,"VĂN HÓA"],[25,32,"LỊCH SỬ"],[33,40,"ĐẶC SẢN"]]}],["thăm di_tích lịch_sử\r",{"entities":[[0,4,"TRẢI NGHIỆM"],[5,12,"DI TÍCH"],[13,20,"LỊCH SỬ"]]}],["thăm làng_nghề truyền_thống\r",{"entities":[[0,4,"TRẢI NGHIỆM"],[5,14,"LÀNG"],[15,27,"TRUYỀN THỐNG"]]}],["muốn tìm_hiểu về lịch_sử chiến_tranh di_tích liên_quan ở bình_định điểm đến nào khuyên\r",{"entities":[[5,13,"TRẢI NGHIỆM"],[17,24,"LỊCH SỬ"],[37,44,"DI TÍCH"],[67,71,"ĐỊA ĐIỂM"]]}],["di_tích lịch_sử bình_định\r",{"entities":[[0,7,"DI TÍCH"],[8,15,"LỊCH SỬ"]]}],["tham_quan bảo_tàng lịch_sử bình_định\r",{"entities":[[0,9,"TRẢI NGHIỆM"],[10,18,"BẢO TÀNG"],[19,26,"LỊCH SỬ"]]}],["di_tích cổ_xưa\r",{"entities":[[0,7,"DI TÍCH"],[8,14,"CỔ XƯA"]]}],["kiến_trúc ngày_xưa ở bình_định\r",{"entities":[[0,9,"KIẾN TRÚC"],[10,18,"CỔ XƯA"]]}],["tòa kiến_trúc độc_đáo ở bình_định\r",{"entities":[[4,13,"KIẾN TRÚC"],[14,21,"ĐỘC ĐÁO"]]}],["muốn tìm_hiểu về kiến_trúc cổ ở bình_định\r",{"entities":[[5,13,"TRẢI NGHIỆM"],[17,26,"KIẾN TRÚC"],[27,29,"CỔ XƯA"]]}],["địa_điểm đặc_trưng về di_tích lịch_sử\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,18,"ĐẶC BIỆT"],[22,29,"DI TÍCH"],[30,37,"LỊCH SỬ"]]}],["nào di_tích lịch_sử nổi_tiếng\r",{"entities":[[4,11,"DI TÍCH"],[12,19,"LỊCH SỬ"],[20,29,"NỔI TIẾNG"]]}],["nào ở bình_định di_tích lịch_sử nổi_tiếng nghĩ thăm\r",{"entities":[[16,23,"DI TÍCH"],[24,31,"LỊCH SỬ"],[32,41,"NỔI TIẾNG"]]}],["gợi_ý nào về điểm đến đặc_trưng về di_tích lịch_sử ở bình_định\r",{"entities":[[13,17,"ĐỊA ĐIỂM"],[22,31,"ĐẶC BIỆT"],[35,42,"DI TÍCH"],[43,50,"LỊCH SỬ"]]}],["muốn tìm_hiểu về di_tích lịch_sử bình_định liên_quan đến thời_kỳ cổ_đại\r",{"entities":[[5,13,"TRẢI NGHIỆM"],[17,24,"DI TÍCH"],[25,32,"LỊCH SỬ"]]}],["quan_tâm đến khám_phá về lịch_sử văn_hóa bình_định di_tích cổ_xưa\r",{"entities":[[13,21,"TRẢI NGHIỆM"],[25,32,"LỊCH SỬ"],[33,40,"VĂN HÓA"],[51,58,"DI TÍCH"],[59,65,"CỔ XƯA"]]}],["tìm_kiếm thông_tin về tòa tháp cổ ở bình_định\r",{"entities":[[26,30,"KIẾN TRÚC"],[31,33,"CỔ XƯA"]]}],["muốn tìm_hiểu về kiến_trúc cổ_truyền_thống bình_định thông_qua di_tích lịch_sử\r",{"entities":[[17,26,"KIẾN TRÚC"],[27,42,"CỔ XƯA"],[63,70,"DI TÍCH"],[71,78,"LỊCH SỬ"]]}],["thông_tin về di_tích lịch_sử ở bình_định mối liên_kết đặc_biệt lịch_sử chiến_tranh\r",{"entities":[[13,20,"DI TÍCH"],[21,28,"LỊCH SỬ"],[63,70,"LỊCH SỬ"]]}],["muốn tìm_hiểu về lịch_sử văn_hóa bình_định liệu điểm đến nào khác ngoài di_tích lịch_sử\r",{"entities":[[17,24,"LỊCH SỬ"],[25,32,"VĂN HÓA"],[48,52,"ĐỊA ĐIỂM"],[72,79,"DI TÍCH"],[80,87,"LỊCH SỬ"]]}],["ngôi chùa đẹp bình_định\r",{"entities":[[5,9,"CHÙA"],[10,13,"ĐẸP"]]}],["chùa nào đặc_sắc nhất bình_định\r",{"entities":[[0,4,"ĐẸP"],[9,16,"ĐẶC BIỆT"]]}],["đi chùa nào ở bình_định\r",{"entities":[[3,7,"CHÙA"]]}],["trải_nghiệm tâm_linh bình_định\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[12,20,"TÂM LINH"]]}],["có_thể giới_thiệu về ngôi chùa đẹp ở bình_định du_khách thăm trải_nghiệm tâm_linh\r",{"entities":[[26,30,"CHÙA"],[31,34,"ĐẸP"],[61,72,"TRẢI NGHIỆM"],[73,81,"TÂM LINH"]]}],["trong tất_cả ngôi chùa ở bình_định nghĩ ngôi nào đặc_sắc nhất đáng du_khách ghé thăm nhất\r",{"entities":[[18,22,"CHÙA"],[49,56,"ĐẶC BIỆT"]]}],["thời_gian thăm một ngôi chùa ở bình_định đề_xuất đi đến đâu\r",{"entities":[[24,28,"CHÙA"],[49,51,"DI CHUYỂN"]]}],["muốn tìm_hiểu về văn_hóa tâm_linh bình_định thông_qua thăm ngôi chùa gợi_ý nào hành_trình\r",{"entities":[[17,24,"VĂN HÓA"],[25,33,"TÂM LINH"],[64,68,"CHÙA"]]}],["thông_tin về ngôi chùa ở bình_định kiến_trúc độc_đáo thu_hút du_khách vẻ đẹp ấn_tượng chúng\r",{"entities":[[18,22,"CHÙA"],[35,44,"KIẾN TRÚC"],[45,52,"ĐỘC ĐÁO"],[73,76,"ĐẸP"],[77,85,"KHÓ QUÊN"]]}],["tìm_kiếm trải_nghiệm tâm_linh_tĩnh_lặng yên_bình ở bình_định ngôi chùa nào khuyên dùng trải_nghiệm\r",{"entities":[[9,20,"TRẢI NGHIỆM"],[21,39,"TÂM LINH"],[40,48,"YÊN BÌNH"],[66,70,"CHÙA"]]}],["thông_tin về hoạt_động tâm_linh lễ cầu_nguyện thiền_định tổ_chức ngôi chùa ở bình_định\r",{"entities":[[23,31,"TÂM LINH"],[70,74,"CHÙA"]]}],["ngôi chùa kiến_trúc độc_đáo ở bình_định\r",{"entities":[[5,9,"CHÙA"],[10,19,"KIẾN TRÚC"],[20,27,"ĐỘC ĐÁO"]]}],["quan_tâm đến khám_phá văn_hóa tâm_linh ở bình_định\r",{"entities":[[13,21,"TRẢI NGHIỆM"],[22,29,"VĂN HÓA"],[30,38,"TÂM LINH"]]}],["muốn tìm_hiểu về lịch_sử tâm_linh bình_định thông_qua thăm ngôi chùa\r",{"entities":[[5,13,"TRẢI NGHIỆM"],[17,24,"LỊCH SỬ"],[25,33,"TÂM LINH"],[64,68,"CHÙA"]]}],["muốn trải_nghiệm cảm_giác bình_yên tĩnh_lặng ở bình_định ngôi chùa nào gợi_ý\r",{"entities":[[5,16,"TRẢI NGHIỆM"],[26,34,"YÊN BÌNH"],[62,66,"CHÙA"]]}],["thông_tin về hoạt_động tâm_linh lễ cầu_nguyện thiền_định ngôi chùa ở bình_định\r",{"entities":[[13,22,"HOẠT ĐỘNG"],[23,31,"TÂM LINH"],[62,66,"CHÙA"]]}],["tìm_kiếm một ngôi chùa không_gian yên_bình kiến_trúc đẹp\r",{"entities":[[18,22,"CHÙA"],[34,42,"YÊN BÌNH"],[43,52,"KIẾN TRÚC"],[53,56,"ĐẸP"]]}],["muốn trải_nghiệm không_chỉ về tâm_linh mà_còn về nghệ_thuật văn_hóa ngôi chùa nào ở bình_định kết_hợp độc_đáo\r",{"entities":[[5,16,"TRẢI NGHIỆM"],[30,38,"TÂM LINH"],[49,59,"NGHỆ THUẬT"],[60,67,"VĂN HÓA"],[73,77,"CHÙA"],[102,109,"ĐỘC ĐÁO"]]}],["có_thể giới_thiệu về hoạt_động văn_hóa truyền_thống ở bình_định\r",{"entities":[[21,30,"HOẠT ĐỘNG"],[31,38,"VĂN HÓA"],[39,51,"TRUYỀN THỐNG"]]}],["sự_kiện văn_hóa hoặc lễ_hội nào đặc_sắc\r",{"entities":[[0,7,"SỰ KIỆN"],[8,15,"VĂN HÓA"],[21,27,"LỄ HỘI"],[32,39,"ĐẶC BIỆT"]]}],["thông_tin về sự_kiện văn_hóa truyền_thống khác ngoài lễ_hội nổi_tiếng ở bình_định\r",{"entities":[[13,20,"SỰ KIỆN"],[21,28,"VĂN HÓA"],[29,41,"TRUYỀN THỐNG"],[53,59,"LỄ HỘI"],[60,69,"NỔI TIẾNG"]]}],["quan_tâm đến tham_gia hoạt_động văn_hóa địa_phương ở bình_định gợi_ý nào trải_nghiệm\r",{"entities":[[13,21,"TRẢI NGHIỆM"],[22,31,"HOẠT ĐỘNG"],[32,39,"VĂN HÓA"],[40,50,"ĐỊA PHƯƠNG"],[73,84,"TRẢI NGHIỆM"]]}],["muốn khám_phá về nền văn_hóa truyền_thống bình_định liệu chương_trình hoặc sự_kiện nào tổ_chức thường_xuyên\r",{"entities":[[5,13,"TRẢI NGHIỆM"],[21,28,"VĂN HÓA"],[29,41,"TRUYỀN THỐNG"],[75,82,"SỰ KIỆN"]]}],["bình_định di_tích văn_hóa lịch_sử nào du_khách bỏ_qua trong hành_trình khám_phá văn_hóa mình\r",{"entities":[[10,17,"DI TÍCH"],[18,25,"VĂN HÓA"],[26,33,"LỊCH SỬ"],[71,79,"TRẢI NGHIỆM"],[80,87,"VĂN HÓA"]]}],["muốn tham_gia hoạt_động văn_hóa hiểu sâu hơn truyền_thống ở bình_định gợi_ý nào\r",{"entities":[[5,13,"TRẢI NGHIỆM"],[14,23,"HOẠT ĐỘNG"],[24,31,"VĂN HÓA"],[45,57,"TRUYỀN THỐNG"]]}],["lễ_hội nào diễn mùa hè ở bình_định khuyên du_khách tham_gia trải_nghiệm văn_hóa địa_phương\r",{"entities":[[0,6,"LỄ HỘI"],[60,71,"TRẢI NGHIỆM"],[72,79,"VĂN HÓA"],[80,90,"ĐỊA PHƯƠNG"]]}],["bình_định tổ_chức sự_kiện lớn nào thường_niên\r",{"entities":[[18,25,"SỰ KIỆN"]]}],
3
+ ["muốn đi biển\r",{"entities":[[8,12,"BIỂN"]]}],["muốn đi núi\r",{"entities":[[8,11,"NÚI"]]}],["quán cà_phê ở bình_định\r",{"entities":[[5,11,"CÀ PHÊ"]]}],["nhà_hàng ngon bình_định\r",{"entities":[[0,8,"NHÀ HÀNG"],[9,13,"NGON"]]}],["điểm du_lịch nổi_tiếng bình_định\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[5,12,"DU LỊCH"],[13,22,"NỔI TIẾNG"]]}],["bình_định đặc_biệt\r",{"entities":[[10,18,"ĐẶC BIỆT"]]}],["địa_chỉ ẩm_thực bình_định\r",{"entities":[[0,7,"ĐỊA ĐIỂM"],[8,15,"ẨM THỰC"]]}],["khách_sạn bình_định\r",{"entities":[[0,9,"KHÁCH SẠN"]]}],["cẩm_nang du_lịch bình_định gia_đình\r",{"entities":[[9,16,"DU LỊCH"],[27,35,"GIA ĐÌNH"]]}],["hoạt_động vui_chơi ở bình_định\r",{"entities":[[0,9,"HOẠT ĐỘNG"],[10,18,"VUI CHƠI"]]}],["phòng trọ giá rẻ bình_định\r",{"entities":[[6,9,"NHÀ NGHỈ"],[10,16,"BÌNH DÂN"]]}],["bình_định chơi\r",{"entities":[[10,14,"VUI CHƠI"]]}],["blog du_lịch bình_định\r",{"entities":[[5,12,"DU LỊCH"]]}],["bãi biển đẹp bình_định\r",{"entities":[[4,8,"BIỂN"],[9,12,"ĐẸP"]]}],["lịch_sử bình_định\r",{"entities":[[0,7,"LỊCH SỬ"]]}],["ăn ngon ở bình_định\r",{"entities":[[0,2,"ẨM THỰC"],[3,7,"NGON"]]}],["cảnh đẹp bình_định\r",{"entities":[[0,4,"PHONG CẢNH"],[5,8,"ĐẸP"]]}],["lễ_hội bình_định\r",{"entities":[[0,6,"LỄ HỘI"]]}],["du_lịch bình_định\r",{"entities":[[0,7,"DU LỊCH"]]}],["đặc_sản bình_định\r",{"entities":[[0,7,"ĐẶC SẢN"]]}],["thăm chùa bình_định\r",{"entities":[[5,9,"CHÙA"]]}],["văn_hóa bình_định\r",{"entities":[[0,7,"VĂN HÓA"]]}],["tour du_lịch bình_định\r",{"entities":[[0,4,"TOUR"],[5,12,"DU LỊCH"]]}],["phượt bình_định\r",{"entities":[[0,5,"PHƯỢT"]]}],["cẩm_nang du_lịch bình_định\r",{"entities":[[9,16,"DU LỊCH"]]}],["thăm quan địa_danh lịch_sử nổi_tiếng bình_định\r",{"entities":[[10,18,"ĐỊA ĐIỂM"],[19,26,"LỊCH SỬ"],[27,36,"NỔI TIẾNG"]]}],["trải_nghiệm đặc_sản hải_sản tươi_ngon ở bình_định\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[12,19,"ĐẶC SẢN"],[20,27,"HẢI SẢN"],[28,37,"NGON"]]}],["nét độc_đáo nghệ_thuật dân_gian bình_định\r",{"entities":[[4,11,"ĐỘC ĐÁO"],[12,22,"NGHỆ THUẬT"],[23,31,"DÂN GIAN"]]}],["kỳ nghỉ thư_giãn khu resort sang_trọng ở bình_định\r",{"entities":[[8,16,"THƯ GIÃN"],[21,27,"RESORT"],[28,38,"CAO CẤP"]]}],["tham_quan di_tích chứa_đựng bí_mật lịch_sử ở bình_định\r",{"entities":[[0,9,"TRẢI NGHIỆM"],[10,17,"DI TÍCH"],[35,42,"LỊCH SỬ"]]}],["lăng kính văn_hóa dân_gian bình_định\r",{"entities":[[10,17,"VĂN HÓA"],[18,26,"DÂN GIAN"]]}],["thưởng_thức ẩm_thực đặc_trưng người_dân bình_định\r",{"entities":[[0,11,"THƯỞNG THỨC"],[12,19,"ẨM THỰC"],[20,29,"ĐẶC BIỆT"]]}],["điểm đến lý_tưởng kỳ_nghỉ cuối tuần miền trung\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[18,25,"NGHỈ DƯỠNG"],[26,35,"CUỐI TUẦN"]]}],["khám_phá ngôi chùa linh_thiêng ẩn mình bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[14,18,"CHÙA"]]}],["tham_quan di_tích văn_hóa ở bình_định\r",{"entities":[[0,9,"TRẢI NGHIỆM"],[10,17,"DI TÍCH"],[18,25,"VĂN HÓA"]]}],["khám_phá cảnh đẹp hoang_sơ bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[9,13,"PHONG CẢNH"],[14,17,"ĐẸP"],[18,26,"HOANG SƠ"]]}],["cung đường du_lịch mới_lạ bình_định\r",{"entities":[[0,10,"CON ĐƯỜNG"],[11,18,"DU LỊCH"]]}],["trải_nghiệm ẩm_thực đường_phố bình_định\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[12,19,"TRẢI NGHIỆM"],[20,29,"CON ĐƯỜNG"]]}],["điểm đến nổi_tiếng dân đam_mê ẩm_thực ở bình_định\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[9,18,"NỔI TIẾNG"],[30,37,"ẨM THỰC"]]}],["điểm đến thư_giãn tuyệt_vời kỳ nghỉ_dưỡng ở bình_định\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[9,17,"THƯ GIÃN"],[31,41,"NGHỈ DƯỠNG"]]}],["nét đẹp tự_nhiên độc_đáo bình_định\r",{"entities":[[4,7,"ĐẸP"],[8,16,"THIÊN NHIÊN"],[17,24,"ĐỘC ĐÁO"]]}],["thưởng_thức văn_hóa biển bình_định\r",{"entities":[[0,11,"THƯỞNG THỨC"],[12,19,"VĂN HÓA"],[20,24,"BIỂN"]]}],["lễ_hội truyền_thống độc_đáo ở bình_định\r",{"entities":[[0,6,"LỄ HỘI"],[7,19,"TRUYỀN THỐNG"],[20,27,"ĐỘC ĐÁO"]]}],["trải_nghiệm du_lịch khó quên bình_định\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[12,19,"DU LỊCH"],[20,28,"KHÓ QUÊN"]]}],["điểm du_lịch sinh_thái bảo_tồn ở bình_định\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[5,12,"DU LỊCH"],[13,22,"THIÊN NHIÊN"],[23,30,"BẢO TỒN"]]}],["địa_danh lịch_sử nổi_tiếng ở bình_định\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,16,"LỊCH SỬ"],[17,26,"NỔI TIẾNG"]]}],["bãi biển tuyệt_vời ở bình_định\r",{"entities":[[4,8,"BIỂN"]]}],["ngôi làng truyền_thống ở bình_định\r",{"entities":[[5,9,"LÀNG"],[10,22,"TRUYỀN THỐNG"]]}],["khu du_lịch sinh_thái bình_định\r",{"entities":[[4,11,"DU LỊCH"],[12,21,"THIÊN NHIÊN"]]}],["điểm đến hấp_dẫn người_yêu thể_thao mạo_hiểm ở bình_định\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[9,16,"HẤP DẪN"],[27,35,"THỂ THAO"],[36,44,"MẠO HIỂM"]]}],["nét đẹp kiến_trúc cổ ở bình_định\r",{"entities":[[4,7,"ĐẸP"],[8,17,"KIẾN TRÚC"],[18,20,"CỔ XƯA"]]}],["đặc_sản ẩm_thực nổi_tiếng bình_định\r",{"entities":[[0,7,"ĐẶC SẢN"],[8,15,"ẨM THỰC"],[16,25,"NỔI TIẾNG"]]}],["lễ_hội văn_hóa truyền_thống ở bình_định\r",{"entities":[[0,6,"LỄ HỘI"],[7,14,"VĂN HÓA"],[15,27,"TRUYỀN THỐNG"]]}],["thưởng_thức phong_cảnh hữu_tình bình_định\r",{"entities":[[0,11,"THƯỞNG THỨC"],[12,22,"PHONG CẢNH"]]}],["điểm dừng chân lý_tưởng tín_đồ lịch_sử ở bình_định\r",{"entities":[[15,23,"HẤP DẪN"],[31,38,"LỊCH SỬ"]]}],["điểm đến tuyệt_vời kỳ_nghỉ lãng_mạn ở bình_định\r",{"entities":[[19,26,"NGHỈ DƯỠNG"],[27,35,"LÃNG MẠN"]]}],["bãi biển đẹp nhất ở bình_định\r",{"entities":[[4,8,"BIỂN"],[9,12,"ĐẸP"]]}],["di_tích lịch_sử nổi_tiếng ở bình_định\r",{"entities":[[0,7,"DI TÍCH"],[8,15,"LỊCH SỬ"],[16,25,"NỔI TIẾNG"]]}],["khám_phá vẻ đẹp tự_nhiên bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[12,15,"ĐẸP"],[16,24,"THIÊN NHIÊN"]]}],["nét độc_đáo ẩm_thực bình_định\r",{"entities":[[4,11,"ĐỘC ĐÁO"],[12,19,"ẨM THỰC"]]}],["ngôi chùa cổ_ẩn mình bình_định\r",{"entities":[[5,9,"CHÙA"],[10,15,"CỔ XƯA"]]}],["cảnh_quan thiên_nhiên đặc_biệt ở bình_định\r",{"entities":[[0,9,"PHONG CẢNH"],[10,21,"THIÊN NHIÊN"],[22,30,"ĐẶC BIỆT"]]}],["văn_hóa dân_gian độc_đáo bình_định\r",{"entities":[[0,7,"VĂN HÓA"],[8,16,"DÂN GIAN"],[17,24,"ĐỘC ĐÁO"]]}],["ngọn đèo hùng_vĩ ở bình_định\r",{"entities":[[5,8,"ĐÈO"],[9,16,"HÙNG VĨ"]]}],["lễ_hội truyền_thống bình_định\r",{"entities":[[0,6,"LỄ HỘI"],[7,19,"TRUYỀN THỐNG"]]}],["bí_mật về di_sản văn_hóa ở bình_định\r",{"entities":[[10,16,"DI SẢN"],[17,24,"VĂN HÓA"]]}],["hòa_quyện giữa lịch_sử hiện_đại bình_định\r",{"entities":[[15,22,"LỊCH SỬ"],[23,31,"HIỆN ĐẠI"]]}],["điểm đến lý_tưởng du_khách muốn tìm_hiểu văn_hóa bình_định\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[32,40,"TRẢI NGHIỆM"],[41,48,"VĂN HÓA"]]}],["nét đẹp hoang_sơ bình_định\r",{"entities":[[4,7,"ĐẸP"],[8,16,"HOANG SƠ"]]}],["kinh_nghiệm du_lịch tự_túc\r",{"entities":[[12,19,"DU LỊCH"],[20,26,"TỰ TÚC"]]}],["ăn ngon tiền triệu\r",{"entities":[[0,2,"ẨM THỰC"],[3,7,"NGON"],[8,18,"CAO CẤP"]]}],["thăm di_tích lịch_sử bí_ẩn\r",{"entities":[[0,4,"LỊCH SỬ"],[5,12,"DI TÍCH"],[13,20,"LỊCH SỬ"]]}],["cẩm_nang du_lịch gia_đình\r",{"entities":[[9,16,"DU LỊCH"],[17,25,"GIA ĐÌNH"]]}],["tìm_hiểu văn_hóa dân_gian\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[9,16,"VĂN HÓA"],[17,25,"DÂN GIAN"]]}],["phượt cung đường đèo đẹp nhất\r",{"entities":[[0,5,"PHƯỢT"],[11,16,"CON ĐƯỜNG"],[17,20,"ĐÈO"],[21,24,"ĐẸP"]]}],["thưởng_thức ẩm_thực địa_phương\r",{"entities":[[0,11,"THƯỞNG THỨC"],[12,19,"ẨM THỰC"],[20,30,"ĐỊA PHƯƠNG"]]}],["điểm đến lý_tưởng ngày nghỉ cuối tuần\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[28,37,"CUỐI TUẦN"]]}],["tìm_hiểu về nền văn_hóa địa_phương\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[16,23,"VĂN HÓA"],[24,34,"ĐỊA PHƯƠNG"]]}],["trải_nghiệm văn_hóa ẩm_thực độc_đáo\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[12,19,"VĂN HÓA"],[20,27,"ẨM THỰC"],[28,35,"ĐỘC ĐÁO"]]}],["khám_phá vẻ đẹp tự_nhiên ở bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[12,15,"ĐẸP"],[16,24,"THIÊN NHIÊN"]]}],["bãi biển hoang_sơ ở bình_định\r",{"entities":[[4,8,"BIỂN"],[9,17,"HOANG SƠ"]]}],["hành_trình khám_phá di_sản lịch_sử ở bình_định\r",{"entities":[[11,19,"TRẢI NGHIỆM"],[20,26,"DI SẢN"],[27,34,"LỊCH SỬ"]]}],["điểm du_lịch nổi_tiếng ở quy_nhơn bình_định\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[5,12,"DU LỊCH"],[13,22,"NỔI TIẾNG"]]}],["tìm_hiểu về ẩm_thực địa_phương ở bình_định\r",{"entities":[[12,19,"ẨM THỰC"],[20,30,"ĐỊA PHƯƠNG"]]}],["cẩm_nang du_lịch tự_túc bình_định\r",{"entities":[[9,16,"DU LỊCH"],[17,23,"TỰ TÚC"]]}],["địa_điểm lý_tưởng chuyến du_lịch gia_đình ở bình_định\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,17,"HẤP DẪN"],[25,32,"DU LỊCH"],[33,41,"GIA ĐÌNH"]]}],["phượt con đường đèo đẹp nhất ở bình_định\r",{"entities":[[0,5,"PHƯỢT"],[6,15,"CON ĐƯỜNG"],[16,19,"ĐÈO"],[20,23,"ĐẸP"]]}],["kinh_nghiệm du_lịch tiết_kiệm ở bình_định\r",{"entities":[[12,19,"DU LỊCH"],[20,29,"BÌNH DÂN"]]}],["thưởng ngoạn_cảnh đẹp núi ở bình_định\r",{"entities":[[18,21,"ĐẸP"],[22,25,"NÚI"]]}],["tìm_hiểu văn_hóa dân_gian ở bình_định\r",{"entities":[[9,16,"VĂN HÓA"],[17,25,"DÂN GIAN"]]}],["điểm đến hấp_dẫn người yêu_thích lịch_sử ở bình_định\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[9,16,"HẤP DẪN"],[33,40,"LỊCH SỬ"]]}],["thăm quan đồi cát bay bình_định\r",{"entities":[[0,9,"TRẢI NGHIỆM"],[14,17,"CÁT"]]}],["kỳ nghỉ thư_giãn khu resort sang_trọng ở bình_định\r",{"entities":[[8,16,"THƯ GIÃN"],[21,27,"RESORT"],[28,38,"CAO CẤP"]]}],["ngôi làng truyền_thống ở bình_định\r",{"entities":[[5,9,"LÀNG"],[10,22,"TRUYỀN THỐNG"]]}],["trải_nghiệm ẩm_thực đường_phố bình_định\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[12,19,"ẨM THỰC"],[20,29,"CON ĐƯỜNG"]]}],["điểm đến nổi_tiếng ở quy_nhơn bình_định\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[9,18,"NỔI TIẾNG"]]}],["thưởng_thức ẩm_thực đặc_trưng người_dân bình_định\r",{"entities":[[0,11,"THƯỞNG THỨC"],[12,19,"ẨM THỰC"],[20,29,"ĐẶC BIỆT"]]}],["thách_thức môn thể_thao mạo_hiểm bình_định\r",{"entities":[[15,23,"THỂ THAO"],[24,32,"MẠO HIỂM"]]}],["điểm du_lịch sinh_thái bảo_tồn ��� bình_định\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[5,12,"DU LỊCH"],[13,22,"THIÊN NHIÊN"],[23,30,"BẢO TỒN"]]}],["trải_nghiệm văn_hóa ẩm_thực độc_đáo\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[12,19,"VĂN HÓA"],[20,27,"ẨM THỰC"],[28,35,"ĐỘC ĐÁO"]]}],["khám_phá vẻ đẹp tự_nhiên ở bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[12,15,"ĐẸP"],[16,24,"THIÊN NHIÊN"]]}],["bí_mật về di_sản văn_hóa ở bình_định\r",{"entities":[[10,16,"DI SẢN"],[17,24,"VĂN HÓA"]]}],["thưởng_thức phong_cảnh hữu_tình bình_định\r",{"entities":[[0,11,"THƯỞNG THỨC"],[12,22,"PHONG CẢNH"],[23,31,"LÃNG MẠN"]]}],["cảnh đẹp bình_định\r",{"entities":[[0,4,"PHONG CẢNH"],[5,8,"ĐẸP"]]}],["điểm đến thư_giãn tuyệt_vời kỳ nghỉ_dưỡng ở bình_định\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[9,17,"THƯ GIÃN"],[31,41,"NGHỈ DƯỠNG"]]}],["điểm đến lý_tưởng kỳ_nghỉ gia_đình ở bình_định\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[18,25,"NGHỈ DƯỠNG"],[26,34,"GIA ĐÌNH"]]}],["kinh_nghiệm du_lịch tự_túc ở bình_định\r",{"entities":[[12,19,"DU LỊCH"],[20,26,"TỰ TÚC"]]}],["lễ_hội truyền_thống bình_định\r",{"entities":[[0,6,"LỄ HỘI"],[7,19,"TRUYỀN THỐNG"]]}],["ngôi chùa cổ_ẩn mình bình_định\r",{"entities":[[5,9,"CHÙA"],[10,15,"CỔ XƯA"]]}],["tham_quan di_tích văn_hóa ở bình_định\r",{"entities":[[0,9,"TRẢI NGHIỆM"],[10,17,"DI TÍCH"],[18,25,"VĂN HÓA"]]}],["điểm đến lý_tưởng du_khách muốn tìm_hiểu văn_hóa bình_định\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[9,17,"HẤP DẪN"],[32,40,"TRẢI NGHIỆM"],[41,48,"VĂN HÓA"]]}],["nét đẹp hoang_sơ bình_định\r",{"entities":[[4,7,"ĐẸP"],[8,16,"HOANG SƠ"]]}],["thăm quan địa_danh lịch_sử nổi_tiếng bình_định\r",{"entities":[[10,18,"ĐỊA ĐIỂM"],[19,26,"LỊCH SỬ"],[27,36,"NỔI TIẾNG"]]}],["di_tích lịch_sử nổi_tiếng ở bình_định\r",{"entities":[[0,7,"DI TÍCH"],[8,15,"LỊCH SỬ"],[16,25,"NỔI TIẾNG"]]}],["khám_phá vẻ đẹp tự_nhiên ở bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[12,15,"ĐẸP"],[16,24,"THIÊN NHIÊN"]]}],["khám_phá địa_danh lịch_sử ở bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[9,17,"ĐỊA ĐIỂM"],[18,25,"LỊCH SỬ"]]}],["thưởng_thức ẩm_thực đặc_sản hải_sản tươi_ngon ở bình_định\r",{"entities":[[0,11,"THƯỞNG THỨC"],[12,19,"ẨM THỰC"],[20,27,"ĐẶC SẢN"],[28,35,"HẢI SẢN"],[36,45,"NGON"]]}],["trải_nghiệm văn_hóa biển bình_định\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[12,19,"VĂN HÓA"],[20,24,"BIỂN"]]}],["cảm_nhận vẻ đẹp tự_nhiên độc_đáo bình_định\r",{"entities":[[12,15,"BIỂN"],[16,24,"THIÊN NHIÊN"],[25,32,"ĐỘC ĐÁO"]]}],["tham_quan ngôi chùa linh_thiêng ẩn mình bình_định\r",{"entities":[[0,9,"TRẢI NGHIỆM"],[15,19,"CHÙA"]]}],["thưởng_thức ẩm_thực địa_phương ở bình_định\r",{"entities":[[0,11,"THƯỞNG THỨC"],[12,19,"ẨM THỰC"],[20,30,"ĐỊA PHƯƠNG"]]}],["khám_phá cảnh đẹp hoang_sơ bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[14,17,"ĐẸP"],[18,26,"HOANG SƠ"]]}],["điểm dừng chân lý_tưởng tín_đồ lịch_sử ở bình_định\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[10,23,"HẤP DẪN"],[31,38,"LỊCH SỬ"]]}],["thưởng_thức văn_hóa biển bình_định\r",{"entities":[[0,11,"THƯỞNG THỨC"],[12,19,"VĂN HÓA"],[20,24,"BIỂN"]]}],["thưởng ngoạn_cảnh đẹp núi ở bình_định\r",{"entities":[[0,6,"THƯỞNG THỨC"],[7,17,"PHONG CẢNH"],[18,21,"ĐẸP"],[22,25,"NÚI"]]}],["tham_quan ngôi chùa cổ ở bình_định\r",{"entities":[[0,9,"TRẢI NGHIỆM"],[15,19,"CHÙA"],[20,22,"CỔ XƯA"]]}],["điểm đến hấp_dẫn người_yêu thích lịch_sử ở bình_định\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[9,16,"HẤP DẪN"],[33,40,"LỊCH SỬ"]]}],["trải_nghiệm ẩm_thực đặc_sản ở bình_định\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[12,19,"ẨM THỰC"],[20,27,"ĐẶC SẢN"]]}],["kinh_nghiệm du_lịch tiết_kiệm ở bình_định\r",{"entities":[[12,19,"DU LỊCH"],[20,29,"BÌNH DÂN"]]}],["khám_phá văn_hóa dân_gian độc_đáo bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[9,16,"VĂN HÓA"],[17,25,"DÂN GIAN"],[26,33,"ĐỘC ĐÁO"]]}],["thưởng_thức văn_hóa dân_gian ở bình_định\r",{"entities":[[0,11,"THƯỞNG THỨC"],[12,19,"VĂN HÓA"],[20,28,"DÂN GIAN"]]}],
4
+ ["địa_điểm bơi\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,12,"BƠI LỘI"]]}],["địa_điểm leo núi\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,12,"THỂ THAO"],[13,16,"NÚI"]]}],["leo núi\r",{"entities":[[0,3,"THỂ THAO"],[4,7,"NÚI"]]}],["đi cầu_duyên\r",{"entities":[[3,12,"TÂM LINH"]]}],["đi cầu phúc\r",{"entities":[[3,11,"DI CHUYỂN"]]}],["địa_điểm tâm_linh\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,17,"DI CHUYỂN"]]}],["ngắm cảnh núi_rừng\r",{"entities":[[5,9,"PHONG CẢNH"],[10,18,"NÚI"]]}],["ngắm cảnh hoàng_hôn\r",{"entities":[[5,9,"PHONG CẢNH"],[10,19,"HOÀNG HÔN"]]}],["ngắm cảnh bình_minh\r",{"entities":[[5,9,"PHONG CẢNH"],[10,19,"BÌNH MINH"]]}],["đi câu cá\r",{"entities":[[3,9,"CÂU CÁ"]]}],["thư_giãn mát_mẻ\r",{"entities":[[0,8,"THƯ GIÃN"]]}],["yên tỉnh thư_giản\r",{"entities":[[0,8,"YÊN BÌNH"],[9,17,"THƯ GIÃN"]]}],["du_lịch giá rẻ\r",{"entities":[[0,7,"DU LỊCH"],[8,14,"BÌNH DÂN"]]}],["cắm trại gia_đình\r",{"entities":[[0,8,"CẮM TRẠI"],[9,17,"GIA ĐÌNH"]]}],["địa_điểm thanh_tịnh\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,19,"YÊN BÌNH"]]}],["di_sản văn_hóa\r",{"entities":[[0,6,"DI SẢN"],[7,14,"VĂN HÓA"]]}],["di_sản\r",{"entities":[[0,6,"DI SẢN"]]}],["du_lịch dài ngày\r",{"entities":[[0,7,"DU LỊCH"]]}],["hoạt_động ngoài_trời\r",{"entities":[[0,9,"HOẠT ĐỘNG"],[10,20,"NGOÀI TRỜI"]]}],["địa_điểm du_lịch vui náo_nhiệt\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,16,"DU LỊCH"],[17,20,"VUI CHƠI"]]}],["địa_điểm sôi_động\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,17,"NHỘN NHỊP"]]}],["địa_điểm náo_nhiệt\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,18,"NHỘN NHỊP"]]}],["địa_điểm sôi_động\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,17,"NHỘN NHỊP"]]}],["vui_chơi trẻ_em\r",{"entities":[[0,8,"VUI CHƠI"],[9,15,"TRẺ EM"]]}],["chụp hình sống ảo\r",{"entities":[[0,9,"CHỤP ẢNH"]]}],["địa_điểm phong_cảnh đep\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,19,"PHONG CẢNH"],[20,23,"ĐẸP"]]}],["địa_điểm hẹn_hò\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,15,"CẶP ĐÔI"]]}],["vui_chơi hội nhóm\r",{"entities":[[0,8,"VUI CHƠI"],[13,17,"BẠN BÈ"]]}],["đồ nướng ngon\r",{"entities":[[0,8,"ẨM THỰC"],[9,13,"NGON"]]}],["địa_điểm đồ_ăn đa_dạng\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,14,"ẨM THỰC"]]}],["vui_chơi giá rẻ\r",{"entities":[[0,8,"VUI CHƠI"],[9,15,"BÌNH DÂN"]]}],["điểm du_lịch nổi_bật ở bình_định\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[5,12,"DU LỊCH"],[13,20,"NỔI TIẾNG"]]}],["trải_nghiệm thiên_nhiên bình_định\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[12,23,"THIÊN NHIÊN"]]}],["hoạt_động du_lịch quy_nhơn\r",{"entities":[[0,9,"HOẠT ĐỘNG"],[10,17,"DU LỊCH"]]}],["gợi_ý chuyến đi quy_nhơn gia_đình\r",{"entities":[[6,15,"DI CHUYỂN"],[25,33,"GIA ĐÌNH"]]}],["điểm tham_quan tự_nhiên ở quy_nhơn\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[5,14,"TRẢI NGHIỆM"],[15,23,"THIÊN NHIÊN"]]}],["khám_phá văn_hóa địa_danh độc_đáo bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[9,16,"VĂN HÓA"],[17,25,"ĐỊA ĐIỂM"],[26,33,"ĐỘC ĐÁO"]]}],["điểm đến thư_giãn thú_vị ở bình_định\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[9,17,"THƯ GIÃN"],[18,24,"HẤP DẪN"]]}],["trải_nghiệm thiên_nhiên ở bình_định\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[12,23,"THIÊN NHIÊN"]]}],["cảnh đẹp tự_nhiên hoạt_động vui_chơi quy_nhơn\r",{"entities":[[0,4,"PHONG CẢNH"],[9,17,"THIÊN NHIÊN"],[18,27,"HOẠT ĐỘNG"],[28,36,"VUI CHƠI"]]}],["khu du_lịch biển phổ_biến ở bình_định\r",{"entities":[[0,3,"ĐỊA ĐIỂM"],[4,11,"DU LỊCH"],[12,16,"BIỂN"]]}],["điểm tham_quan trong thành_phố quy_nhơn\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[5,14,"TRẢI NGHIỆM"],[21,30,"THÀNH PHỐ"]]}],["tour du_lịch ngắn_hạn bình_định\r",{"entities":[[0,4,"TOUR"],[5,12,"DU LỊCH"]]}],["cảnh đẹp tự_nhiên chụp ảnh ở bình_định\r",{"entities":[[0,4,"PHONG CẢNH"],[5,8,"ĐẸP"],[9,17,"THIÊN NHIÊN"],[18,26,"CHỤP ẢNH"]]}],["trải_nghiệm cuộc_sống biển bình_định\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[22,26,"BIỂN"]]}],["hoạt_động biển ở bình_định\r",{"entities":[[0,9,"HOẠT ĐỘNG"],[10,14,"BIỂN"]]}],["thăm làng chài trải_nghiệm văn_hóa địa_phương\r",{"entities":[[5,14,"LÀNG CHÀI"],[15,26,"TRẢI NGHIỆM"],[27,34,"VĂN HÓA"],[35,45,"ĐỊA PHƯƠNG"]]}],["lặn biển lặn san_hô ở bình_định\r",{"entities":[[0,3,"LẶN"],[4,8,"BIỂN"],[9,12,"LẶN"],[13,19,"SAN HÔ"]]}],["trò_chơi biển tắm biển quy_nhơn\r",{"entities":[[0,8,"VUI CHƠI"],[9,13,"BIỂN"],[14,17,"BƠI LỘI"],[18,22,"BIỂN"]]}],["trải_nghiệm phù_hợp trẻ_em biển bình_định\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[20,26,"TRẺ EM"],[27,31,"BIỂN"]]}],["hoạt_động mạo_hiểm thú_vị biển ở bình_định\r",{"entities":[[0,9,"HOẠT ĐỘNG"],[10,18,"MẠO HIỂM"],[26,30,"BIỂN"]]}],["bãi biển an_toàn lý_tưởng tắm biển thư_giãn ở bình_định\r",{"entities":[[4,8,"BIỂN"],[26,29,"BƠI LỘI"],[30,34,"BIỂN"],[35,43,"THƯ GIÃN"]]}],["điểm du_lịch độc_đáo hấp_dẫn nhất ở bình_định\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[5,12,"DU LỊCH"],[13,20,"ĐỘC ĐÁO"],[21,28,"HẤP DẪN"]]}],["tìm lưu_trú gần biển thư_giãn tận_hưởng khoảnh_kh��c yên_bình ở bình_định\r",{"entities":[[4,11,"NHÀ NGHỈ"],[16,20,"BIỂN"],[21,29,"THƯ GIÃN"],[30,39,"THƯỞNG THỨC"],[52,60,"YÊN BÌNH"]]}],["khám_phá đời_sống biển độc_đáo bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[18,22,"BIỂN"],[23,30,"ĐỘC ĐÁO"]]}],["điểm đến hoang_sơ bình_dị ở bình_định\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[9,17,"HOANG SƠ"]]}],["hoạt_động lặn biển lặn san_hô ở bình_định\r",{"entities":[[0,9,"HOẠT ĐỘNG"],[10,13,"LẶN"],[14,18,"BIỂN"],[19,22,"LẶN"],[23,29,"SAN HÔ"]]}],["tour du_lịch kết_hợp thăm làng chài trải_nghiệm văn_hóa địa_phương ở bình_định\r",{"entities":[[0,4,"TOUR"],[5,12,"DU LỊCH"],[21,25,"TRẢI NGHIỆM"],[26,35,"LÀNG CHÀI"],[36,47,"TRẢI NGHIỆM"],[48,55,"VĂN HÓA"],[56,66,"ĐỊA PHƯƠNG"]]}],["trải_nghiệm trò_chơi mạo_hiểm biển ở bình_định\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[12,20,"VUI CHƠI"],[21,29,"MẠO HIỂM"],[30,34,"BIỂN"]]}],["bãi biển phù_hợp nhất tắm thư_giãn ở bình_định\r",{"entities":[[4,8,"BIỂN"],[22,25,"BƠI LỘI"],[26,34,"THƯ GIÃN"]]}],["cung đường_biển đẹp lãng_mạn bình_định\r",{"entities":[[5,15,"BIỂN"],[16,19,"ĐẸP"],[20,28,"LÃNG MẠN"]]}],["ngắm hoàng_hôn bình_minh biển quy_nhơn\r",{"entities":[[0,4,"THƯỞNG THỨC"],[5,14,"HOÀNG HÔN"],[15,24,"BÌNH MINH"],[25,29,"BIỂN"]]}],["trải_nghiệm du_lịch phượt cung đường_biển ở bình_định\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[12,19,"DU LỊCH"],[20,25,"PHƯỢT"],[31,41,"BIỂN"]]}],["biển đẹp hoang_sơ bình_định\r",{"entities":[[0,4,"BIỂN"],[5,8,"ĐẸP"],[9,17,"HOANG SƠ"]]}],["khu resort bãi biển đẹp bình_định\r",{"entities":[[0,3,"ĐỊA ĐIỂM"],[4,10,"RESORT"],[15,19,"BIỂN"],[20,23,"ĐẸP"]]}],["trò_chơi nước phổ_biến thú_vị bình_định\r",{"entities":[[0,8,"VUI CHƠI"],[9,13,"BIỂN"],[23,29,"HẤP DẪN"]]}],["lựa_chọn hoạt_động biển phù_hợp trẻ_em ở bình_định\r",{"entities":[[9,18,"HOẠT ĐỘNG"],[19,23,"BIỂN"],[32,38,"TRẺ EM"]]}],["khám_phá bãi biển hoang_sơ người bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[13,17,"BIỂN"],[18,26,"HOANG SƠ"]]}],["tìm_hiểu về cuộc_sống người_dân_làng chài bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[22,41,"LÀNG CHÀI"]]}],["điểm lặn biển ngắm san_hô phổ_biến ở bình_định\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[5,8,"LẶN"],[9,13,"BIỂN"],[19,25,"SAN HÔ"]]}],["hoạt_động mạo_hiểm thú_vị biển ở bình_định\r",{"entities":[[0,9,"HOẠT ĐỘNG"],[10,18,"MẠO HIỂM"],[19,25,"HẤP DẪN"],[26,30,"BIỂN"]]}],["trải_nghiệm lặn san_hô điểm đẹp ở bình_định\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[12,15,"LẶN"],[16,22,"SAN HÔ"],[23,27,"ĐỊA ĐIỂM"],[28,31,"ĐẸP"]]}],["trò_chơi thú_vị giải_trí biển bình_định\r",{"entities":[[0,8,"VUI CHƠI"],[9,15,"HẤP DẪN"],[25,29,"BIỂN"]]}],["bãi biển an_toàn lý_tưởng gia_đình bình_định\r",{"entities":[[4,8,"BIỂN"],[17,25,"HẤP DẪN"],[26,34,"GIA ĐÌNH"]]}],["tận_hưởng khoảnh_khắc yên_bình thư_giãn bãi biển bình_định\r",{"entities":[[0,9,"THƯỞNG THỨC"],[22,30,"YÊN BÌNH"],[31,39,"THƯ GIÃN"],[44,48,"BIỂN"]]}],["khách_sạn resort gần bãi biển ở bình_định\r",{"entities":[[0,9,"KHÁCH SẠN"],[10,16,"RESORT"],[25,29,"BIỂN"]]}],
5
+ ["điểm đến hấp_dẫn du_khách muốn khám_phá văn_hóa biển ở bình_định\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[9,16,"HẤP DẪN"],[31,39,"TRẢI NGHIỆM"],[40,47,"VĂN HÓA"],[48,52,"BIỂN"]]}],["trải_nghiệm du_lịch thú_vị trong làng chài bình_định\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[12,19,"DU LỊCH"],[20,26,"HẤP DẪN"],[33,42,"LÀNG CHÀI"]]}],["cung đường_biển đẹp lãng_mạn chuyến đi tham_quan ở bình_định\r",{"entities":[[5,15,"BIỂN"],[16,19,"ĐẸP"],[20,28,"LÃNG MẠN"],[29,38,"DI CHUYỂN"],[39,48,"TRẢI NGHIỆM"]]}],["địa_điểm tốt nhất tắm biển thư_giãn gia_đình ở bình_định\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[18,21,"BƠI LỘI"],[22,26,"BIỂN"],[27,35,"THƯ GIÃN"],[36,44,"GIA ĐÌNH"]]}],["địa_điểm cung_cấp trải_nghiệm cuộc_sống biển thú_vị nhất bình_định\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[18,29,"TRẢI NGHIỆM"],[40,44,"BIỂN"],[45,51,"HẤP DẪN"]]}],["tour du_lịch mạo_hiểm thú_vị bình_định\r",{"entities":[[0,4,"TOUR"],[5,12,"DU LỊCH"],[13,21,"MẠO HIỂM"],[22,28,"HẤP DẪN"]]}],["thăm quan di_tích lịch_sử văn_hóa ở bình_định\r",{"entities":[[10,17,"DI TÍCH"],[18,25,"LỊCH SỬ"],[26,33,"VĂN HÓA"]]}],["trải_nghiệm ẩm_thực_địa_phương độc_đáo quy_nhơn\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[12,30,"ẨM THỰC"],[31,38,"ĐỘC ĐÁO"]]}],["tận_hưởng cảnh đẹp hoàng_hôn biển quy_nhơn\r",{"entities":[[0,9,"THƯỞNG THỨC"],[10,14,"PHONG CẢNH"],[15,18,"ĐẸP"],[19,28,"HOÀNG HÔN"],[29,33,"BIỂN"]]}],["khám_phá hòn đảo xinh_đẹp gần bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[9,16,"HÒN ĐẢO"],[17,25,"ĐẸP"]]}],["trải_nghiệm lễ_hội truyền_thống văn_hóa địa_phương ở bình_định\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[12,18,"LỄ HỘI"],[19,31,"TRUYỀN THỐNG"],[32,39,"VĂN HÓA"],[40,50,"ĐỊA PHƯƠNG"]]}],["đi câu cá trải_nghiệm cuộc_sống người_dân ven biển ở bình_định\r",{"entities":[[3,9,"CÂU CÁ"],[10,21,"TRẢI NGHIỆM"],[46,50,"BIỂN"]]}],["tham_quan ngôi chùa đình lịch_sử ở bình_định\r",{"entities":[[0,9,"TRẢI NGHIỆM"],[15,19,"CHÙA"],[25,32,"LỊCH SỬ"]]}],["tận_hưởng không_khí mát_mẻ bình_dị làng_quê xanh_mướt ở bình_định\r",{"entities":[[0,9,"THƯỞNG THỨC"],[27,34,"YÊN BÌNH"],[35,43,"LÀNG"],[44,53,"THIÊN NHIÊN"]]}],["trải_nghiệm đi bộ đường ven biển thư_giãn bãi cát trắng mịn ở bình_định\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[12,17,"ĐI BỘ"],[18,23,"CON ĐƯỜNG"],[28,32,"BIỂN"],[33,41,"THƯ GIÃN"],[46,49,"CÁT"]]}],["khám_phá điểm địa_lý độc_đáo kỳ_thú ở bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[9,13,"ĐỊA ĐIỂM"],[21,28,"ĐỘC ĐÁO"]]}],["tham_gia tour du_lịch mạo_hiểm khám_phá hang_động suối nước tự_nhiên bình_định\r",{"entities":[[9,13,"TOUR"],[14,21,"DU LỊCH"],[22,30,"MẠO HIỂM"],[31,39,"TRẢI NGHIỆM"],[40,49,"HANG ĐỘNG"],[50,54,"SUỐI"],[60,68,"THIÊN NHIÊN"]]}],["tham_quan làng_nghề truyền_thống mua_sắm sản_phẩm địa_phương bình_định\r",{"entities":[[0,9,"TRẢI NGHIỆM"],[10,19,"LÀNG"],[20,32,"TRUYỀN THỐNG"],[50,60,"ĐỊA PHƯƠNG"]]}],["thử_nghiệm loại hải_sản tươi_ngon độc_đáo quán nhậu ven biển ở bình_định\r",{"entities":[[16,23,"HẢI SẢN"],[24,33,"NGON"],[34,41,"ĐỘC ĐÁO"],[56,60,"BIỂN"]]}],["trải_nghiệm lễ_hội tắm bùn_khoáng nóng tự_nhiên bình_định\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[12,18,"LỄ HỘI"],[39,47,"THIÊN NHIÊN"]]}],["đi thuyền kayak khám_phá vùng_biển xanh_ngắt hang đá độc_đáo ở bình_định\r",{"entities":[[0,2,"DI CHUYỂN"],[3,9,"THUYỀN"],[16,24,"TRẢI NGHIỆM"],[25,34,"BIỂN"],[35,44,"THIÊN NHIÊN"],[45,49,"HANG ĐỘNG"],[50,52,"ĐÁ"],[53,60,"ĐỘC ĐÁO"]]}],["tham_gia hoạt_động vận_động ngoài_trời đạp xe địa_hình leo núi bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[9,18,"HOẠT ĐỘNG"],[28,38,"NGOÀI TRỜI"],[46,54,"MẠO HIỂM"],[55,58,"THỂ THAO"],[59,62,"NÚI"]]}],["tìm_hiểu về nghệ_thuật dân_gian thủ_công mỹ_nghệ truyền_thống người_dân bình_định\r",{"entities":[[12,22,"NGHỆ THUẬT"],[23,31,"DÂN GIAN"],[49,61,"TRUYỀN THỐNG"],[62,71,"CỘNG ĐỒNG"]]}],["tận_hưởng không_gian yên_bình thư_giãn resort biệt_thự ven biển ở bình_định\r",{"entities":[[0,9,"THƯỞNG THỨC"],[21,29,"YÊN BÌNH"],[30,38,"THƯ GIÃN"],[39,45,"RESORT"],[59,63,"BIỂN"]]}],["tham_gia tour du_lịch bằng xe_jeep khám_phá địa_hình núi_rừng biển đảo bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[9,13,"TOUR"],[14,21,"DU LỊCH"],[35,43,"TRẢI NGHIỆM"],[53,61,"NÚI"],[62,66,"BIỂN"],[67,70,"HÒN ĐẢO"]]}],["khám_phá khu rừng nguyên_sinh đi dã_ngoại bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[9,12,"ĐỊA ĐIỂM"],[18,29,"THIÊN NHIÊN"],[33,41,"CẮM TRẠI"]]}],["tham_quan trang_trại rau_sạch trải_nghiệm nông_nghiệp sinh_thái bình_định\r",{"entities":[[0,9,"TRẢI NGHIỆM"],[54,63,"THIÊN NHIÊN"]]}],["tham_gia buổi biểu_diễn văn_hóa truyền_thống dân_tộc_thiểu_số bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[14,23,"BIỂU DIỄN"],[24,31,"VĂN HÓA"],[32,44,"TRUYỀN THỐNG"],[45,61,"DÂN TỘC"]]}],["trải_nghiệm du_thuyền sông khám_phá làng_quê ven sông ở bình_định\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[12,21,"THUYỀN"],[36,44,"LÀNG"]]}],["tham_gia khóa_học nấu_ăn truyền_thống học cách làm món ăn đặc_sản bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[25,37,"TRUYỀN THỐNG"],[51,57,"ẨM THỰC"],[58,65,"ĐẶC SẢN"]]}],["tìm_hiểu về lịch_sử di_sản văn_hóa bình_định thăm bảo_tàng di_tích lịch_sử\r",{"entities":[[12,19,"LỊCH SỬ"],[20,26,"DI SẢN"],[27,34,"VĂN HÓA"],[50,58,"BẢO TÀNG"],[59,66,"DI TÍCH"],[67,74,"LỊCH SỬ"]]}],["tham_gia tour du_lịch bằng thuyền kayak khám_phá hòn đảo hoang_sơ hang_động ở bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[9,13,"TOUR"],[14,21,"DU LỊCH"],[27,33,"THUYỀN"],[49,56,"HÒN ĐẢO"],[57,65,"HOANG SƠ"],[66,75,"HANG ĐỘNG"]]}],["tham_gia hoạt_động thể_thao biển đua thuyền_buồm lướt_ván thăm_dò điểm lặn biển đẹp ở bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[9,18,"HOẠT ĐỘNG"],[19,27,"THỂ THAO"],[28,32,"BIỂN"],[37,48,"THUYỀN"],[49,57,"LƯỚT SÓNG"],[66,70,"ĐỊA ĐIỂM"],[71,74,"LẶN"],[75,79,"BIỂN"],[80,83,"ĐẸP"]]}],["tham_quan vườn hoa khu vườn đẹp_mắt loại cây_cảnh hoa kiểng độc_đáo ở bình_định\r",{"entities":[[0,9,"TRẢI NGHIỆM"],[10,18,"VƯỜN HOA"],[19,22,"ĐỊA ĐIỂM"],[60,67,"ĐỘC ĐÁO"]]}],["tận_hưởng cảnh đẹp hoàng_hôn biển tham_gia hoạt_động vui_chơi giải_trí bãi biển buổi tối bình_định\r",{"entities":[[0,9,"THƯỞNG THỨC"],[10,14,"PHONG CẢNH"],[15,18,"ĐẸP"],[19,28,"HOÀNG HÔN"],[29,33,"BIỂN"],[34,42,"TRẢI NGHIỆM"],[43,52,"HOẠT ĐỘNG"],[53,61,"VUI CHƠI"],[75,79,"BIỂN"],[85,88,"ĐÊM"]]}],["tham_gia hoạt_động vui_chơi nước lướt_ván sóng biển lặn_snorkeling khám_phá đời_sống biển bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[9,18,"HOẠT ĐỘNG"],[19,27,"VUI CHƠI"],[33,41,"LƯỚT SÓNG"],[47,51,"BIỂN"],[52,66,"LẶN"],[85,89,"BIỂN"]]}],["tham_gia buổi thể_dục thể_thao yoga sáng bãi biển bắt_đầu một ngày mới đầy năng_lượng khỏe mạnh bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[22,30,"THỂ THAO"],[36,40,"BÌNH MINH"],[45,49,"BIỂN"]]}],["trải_nghiệm cuộc_sống người_dân bản_địa thông_qua tham_gia chương_trình du_lịch sinh_thái trải_nghiệm làm_ruộng chăn_nuôi bình_định\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[22,31,"CỘNG ĐỒNG"],[32,39,"ĐỊA PHƯƠNG"],[50,58,"TRẢI NGHIỆM"],[72,79,"DU LỊCH"],[80,89,"THIÊN NHIÊN"]]}],["tận_hưởng không_gian yên_bình thư_giãn khu nghỉ_dưỡng spa sang_trọng thư_giãn ở bình_định\r",{"entities":[[0,9,"THƯỞNG THỨC"],[21,29,"YÊN BÌNH"],[30,38,"THƯ GIÃN"],[43,53,"NGHỈ DƯỠNG"],[58,68,"CAO CẤP"],[69,77,"THƯ GIÃN"]]}],["khám_phá bãi biển hoang_sơ ít người biết đến bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[13,17,"BIỂN"],[18,26,"HOANG SƠ"]]}],["tham_quan ngôi đền đền thờ cổ_xưa giá_trị lịch_sử bình_định\r",{"entities":[[0,9,"TRẢI NGHIỆM"],[15,18,"KIẾN TRÚC"],[19,26,"ĐỀN THỜ"],[27,33,"CỔ XƯA"],[42,49,"LỊCH SỬ"]]}],["trải_nghiệm hoạt_động câu cá thú_vị đầy thử_thách biển ở bình_định\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[12,21,"HOẠT ĐỘNG"],[22,28,"CÂU CÁ"],[29,35,"HẤP DẪN"],[50,54,"BIỂN"]]}],["tham_gia buổi hòa_nhạc trực_tiếp bãi biển không_gian thoáng đãng sôi_động bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[14,22,"BIỂU DIỄN"],[37,41,"BIỂN"],[65,73,"NHỘN NHỊP"]]}],["tìm_hiểu về nghệ_thuật truyền_thống thủ_công mỹ_nghệ người_dân bình_định thông_qua tham_quan làng_nghề địa_phương\r",{"entities":[[12,22,"NGHỆ THUẬT"],[23,35,"TRUYỀN THỐNG"],[83,92,"TRẢI NGHIỆM"],[93,102,"LÀNG"],[103,113,"ĐỊA PHƯƠNG"]]}],["tham_gia hoạt_động tình_nguyện giúp_đỡ cộng_đồng địa_phương bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[9,18,"HOẠT ĐỘNG"],[39,48,"CỘNG ĐỒNG"],[49,59,"ĐỊA PHƯƠNG"]]}],["trải_nghiệm bữa tiệc bbq buổi dã_ngoại bãi biển ánh bình_minh bình_định\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[21,24,"ẨM THỰC"],[30,38,"NGOÀI TRỜI"],[43,47,"BIỂN"],[52,61,"BÌNH MINH"]]}],["khám_phá khu thắng_cảnh độc_đáo hồ thủy điện suối khoáng thác nước bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[13,23,"ĐỊA ĐIỂM"],[24,31,"ĐỘC ĐÁO"],[35,44,"HỒ THỦY ĐIỆN"],[45,49,"SUỐI"],[57,66,"THÁC NƯỚC"]]}],["tận_hưởng đêm trắng lãng_mạn ánh sao bãi biển lửa trại hoạt_động thú_vị bạn_bè gia_đình bình_định\r",{"entities":[[0,9,"THƯỞNG THỨC"],[20,28,"LÃNG MẠN"],[41,45,"BIỂN"],[50,54,"CẮM TRẠI"],[55,64,"HOẠT ĐỘNG"],[65,71,"HẤP DẪN"],[72,78,"BẠN BÈ"],[79,87,"GIA ĐÌNH"]]}],["tham_quan khám_phá địa_điểm lịch_sử chiến_tranh bình_định\r",{"entities":[[0,9,"TRẢI NGHIỆM"],[19,27,"ĐỊA ĐIỂM"],[28,35,"LỊCH SỬ"]]}],["khám_phá vẻ đẹp hoang_sơ bãi biển cách_biệt khó tiếp_cận bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[16,24,"HOANG SƠ"],[29,33,"BIỂN"],[34,43,"RIÊNG TƯ"]]}],["trải_nghiệm cảm_giác mạnh tham_gia hoạt_động thể_thao mạo_hiểm leo núi đua xe địa_hình bình_định\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[12,25,"MẠO HIỂM"],[35,44,"HOẠT ĐỘNG"],[45,53,"THỂ THAO"],[54,62,"MẠO HIỂM"],[67,70,"NÚI"]]}],["tìm_hiểu về nền văn_hóa truyền_thống dân_gian thông_qua tham_quan làng_nghề trại dân_gian bình_định\r",{"entities":[[16,23,"VĂN HÓA"],[24,36,"TRUYỀN THỐNG"],[37,45,"DÂN GIAN"],[66,75,"LÀNG"],[81,89,"DÂN GIAN"]]}],["khám_phá văn_hóa ẩm_thực_đặc_sắc người_dân bình_định thông_qua thưởng_thức món ăn địa_phương quán nhậu nhà_hàng truyền_thống\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[9,16,"VĂN HÓA"],[17,32,"ẨM THỰC"],[63,74,"THƯỞNG THỨC"],[75,81,"ẨM THỰC"],[82,92,"ĐỊA PHƯƠNG"],[103,111,"NHÀ HÀNG"],[112,124,"TRUYỀN THỐNG"]]}],["tham_gia buổi biểu_diễn nghệ_thuật dân_gian truyền_thống hát chèo múa_rối nước hát quan_họ bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[14,23,"BIỂU DIỄN"],[24,34,"NGHỆ THUẬT"],[35,43,"DÂN GIAN"],[44,56,"TRUYỀN THỐNG"]]}],["tận_hưởng không_khí yên_bình tĩnh_lặng trong ngôi chùa đình lịch_sử bình_định\r",{"entities":[[0,9,"THƯỞNG THỨC"],[20,28,"YÊN BÌNH"],[50,54,"CHÙA"],[60,67,"LỊCH SỬ"]]}],["tham_quan ngôi đền thờ di_tích lịch_sử người chăm bình_định\r",{"entities":[[0,9,"TRẢI NGHIỆM"],[15,22,"ĐỀN THỜ"],[23,30,"DI TÍCH"],[31,38,"LỊCH SỬ"]]}],["khám_phá khu_vực nông_thôn yên_bình tham_gia hoạt_động nông_nghiệp thu_hoạch chăm_sóc cây_trồng bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[9,16,"ĐỊA ĐIỂM"],[27,35,"YÊN BÌNH"],[45,54,"HOẠT ĐỘNG"],[86,95,"THIÊN NHIÊN"]]}],["tham_gia hoạt_động tôn_giáo tìm_hiểu về tín_ngưỡng dân_gian người_dân bình_định\r",{"entities":[[9,18,"HOẠT ĐỘNG"],[19,27,"VĂN HÓA"],[40,50,"TÂM LINH"],[51,59,"DÂN GIAN"]]}],["khám_phá văn_hóa lịch_sử người việt_nam tham_quan bảo_tàng di_tích lịch_sử bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[9,16,"VĂN HÓA"],[17,24,"LỊCH SỬ"],[50,58,"BẢO TÀNG"],[59,66,"DI TÍCH"],[67,74,"LỊCH SỬ"]]}],["tham_gia hoạt_động tình_nguyện giúp_đỡ cộng_đồng địa_phương dọn_dẹp môi_trường xây_dựng nhà ở bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[9,18,"HOẠT ĐỘNG"],[39,48,"CỘNG ĐỒNG"],[49,59,"ĐỊA PHƯƠNG"]]}],["tận_hưởng buổi biểu_diễn âm_nhạc hòa_nhạc truyền_thống người_dân bình_định\r",{"entities":[[0,9,"THƯỞNG THỨC"],[15,24,"BIỂU DIỄN"],[42,54,"TRUYỀN THỐNG"]]}],["khám_phá khu_vực bảo_tồn thiên_nhiên dự_án bảo_tồn động_vật hoang_dã bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[9,16,"ĐỊA ĐIỂM"],[17,24,"BẢO TỒN"],[25,36,"THIÊN NHIÊN"],[43,50,"BẢO TỒN"],[51,59,"ĐỘNG VẬT"],[60,68,"HOANG SƠ"]]}],["tận_hưởng không_gian yên_tĩnh tĩnh_lặng tu_viện chùa miền núi ở bình_định\r",{"entities":[[0,9,"THƯỞNG THỨC"],[21,29,"YÊN BÌNH"],[48,52,"CHÙA"],[58,61,"NÚI"]]}],["khám_phá văn_hóa lối sống người_dân hồi_giáo chăm_bani bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[9,16,"VĂN HÓA"]]}],["tận_hưởng trải_nghiệm độc_đáo thú_vị tham_gia tour du_lịch cắm trại trời đêm bình_định\r",{"entities":[[0,9,"THƯỞNG THỨC"],[10,21,"TRẢI NGHIỆM"],[22,29,"ĐỘC ĐÁO"],[30,36,"HẤP DẪN"],[46,50,"TOUR"],[51,58,"DU LỊCH"],[59,67,"CẮM TRẠI"],[73,76,"ĐÊM"]]}],["tham_quan làng_nghề truyền_thống mua_sắm sản_phẩm thủ_công độc_đáo người_dân bình_định\r",{"entities":[[10,19,"LÀNG"],[20,32,"TRUYỀN THỐNG"],[59,66,"ĐỘC ĐÁO"]]}],["trải_nghiệm cảm_giác hồi_hộp tham_gia hoạt_động leo núi trekking câu cá đêm bình_định\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[21,28,"HẤP DẪN"],[38,47,"HOẠT ĐỘNG"],[52,55,"NÚI"],[65,71,"CÂU CÁ"],[72,75,"ĐÊM"]]}],["khám_phá văn_hóa nghệ_thuật người_dân thiểu_số bình_định buổi biểu_diễn lễ_hội truyền_thống\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[9,16,"VĂN HÓA"],[17,27,"NGHỆ THUẬT"],[62,71,"BIỂU DIỄN"],[72,78,"LỄ HỘI"],[79,91,"TRUYỀN THỐNG"]]}],["tận_hưởng cảnh đẹp hoàng_hôn tham_gia hoạt_động văn_hóa giải_trí khu_vực biển đẹp nhất bình_định\r",{"entities":[[0,9,"THƯỞNG THỨC"],[10,14,"PHONG CẢNH"],[15,18,"ĐẸP"],[19,28,"HOÀNG HÔN"],[38,47,"HOẠT ĐỘNG"],[48,55,"VĂN HÓA"],[65,72,"ĐỊA ĐIỂM"],[73,77,"BIỂN"],[78,81,"ĐẸP"]]}],["tham_gia tour du_lịch chụp ảnh chuyên_nghiệp lưu_giữ khoảnh_khắc đẹp nhất bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[9,13,"TOUR"],[14,21,"DU LỊCH"],[22,30,"CHỤP ẢNH"],[65,68,"ĐẸP"]]}],["khám_phá ngôi làng truyền_thống kiến_trúc cổ cuộc_sống bình_dị người_dân bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[14,18,"LÀNG"],[19,31,"TRUYỀN THỐNG"],[32,41,"KIẾN TRÚC"],[42,44,"CỔ XƯA"]]}],["tham_gia hoạt_động văn_hóa đặc_sắc học làm bánh_chưng múa_rối hát_xẩm bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[9,18,"HOẠT ĐỘNG"],[19,26,"VĂN HÓA"],[27,34,"ĐẶC BIỆT"]]}],["tận_hưởng không_khí mát_mẻ dễ_chịu dạo bước dọc con đường cây_xanh bình_định\r",{"entities":[[0,9,"THƯỞNG THỨC"],[39,43,"ĐI BỘ"],[48,57,"CON ĐƯỜNG"],[58,66,"THIÊN NHIÊN"]]}],["trải_nghiệm địa_điểm ẩm_thực độc_đáo đa_dạng món ăn ngon hấp_dẫn bình_định\r",{"entities":[[0,11,"TRẢI NGHIỆM"],[12,20,"ĐỊA ĐIỂM"],[21,28,"ẨM THỰC"],[29,36,"ĐỘC ĐÁO"],[45,51,"ẨM THỰC"],[52,56,"NGON"],[57,64,"HẤP DẪN"]]}],["tham_quan khu_phố cổ truyền_thống khám_phá cửa_hàng độc_lạ độc_đáo bình_định\r",{"entities":[[0,9,"TRẢI NGHIỆM"],[18,20,"CỔ XƯA"],[21,33,"TRUYỀN THỐNG"],[43,51,"CỬA HÀNG"],[52,58,"ĐỘC ĐÁO"],[59,66,"ĐỘC ĐÁO"]]}],["tận_hưởng buổi biểu_diễn nghệ_thuật đương_đại truyền_thống trung_tâm văn_hóa nghệ_thuật ở bình_định\r",{"entities":[[0,9,"THƯỞNG THỨC"],[15,24,"BIỂU DIỄN"],[25,35,"NGHỆ THUẬT"],[46,58,"TRUYỀN THỐNG"],[69,76,"VĂN HÓA"],[77,87,"NGHỆ THUẬT"]]}],["khám_phá khu vườn hoa cảnh_quan thiên_nhiên đẹp_mắt khu du_lịch công_viên bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[13,21,"VƯỜN HOA"],[22,31,"PHONG CẢNH"],[32,43,"THIÊN NHIÊN"],[52,55,"ĐỊA ĐIỂM"],[56,63,"DU LỊCH"]]}],["tham_gia tour du_lịch mua_sắm khám_phá mua_sắm sản_phẩm đặc_sản hàng thủ_công mỹ_nghệ bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[9,13,"TOUR"],[14,21,"DU LỊCH"],[56,63,"ĐẶC SẢN"]]}],["tận_hưởng không_gian thư_giãn tĩnh_lặng khu_vực nghỉ_dưỡng cao_cấp dịch_vụ spa thư_giãn sang_trọng ở bình_định\r",{"entities":[[0,9,"THƯỞNG THỨC"],[21,29,"THƯ GIÃN"],[40,47,"ĐỊA ĐIỂM"],[48,58,"NGHỈ DƯỠNG"],[59,66,"CAO CẤP"],[79,87,"THƯ GIÃN"],[88,98,"CAO CẤP"]]}],
6
+ ["điểm du_lịch nổi_tiếng nào ở bình_định ghé thăm\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[5,12,"DU LỊCH"],[13,22,"NỔI TIẾNG"]]}],["muốn tham_gia hoạt_động ngoài_trời ở bình_định gợi_ý\r",{"entities":[[5,13,"TRẢI NGHIỆM"],[14,23,"HOẠT ĐỘNG"],[24,34,"NGOÀI TRỜI"]]}],["tìm_hiểu về văn_hóa lịch_sử độc_đáo bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[12,19,"VĂN HÓA"],[20,27,"LỊCH SỬ"],[28,35,"ĐỘC ĐÁO"]]}],["cửa_hàng mua_sắm độc_đáo nào ở bình_định ghé\r",{"entities":[[0,16,"CỬA HÀNG"],[17,24,"ĐỘC ĐÁO"]]}],["tìm_hiểu về trung_tâm mua_sắm chợ địa_phương ở bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[12,29,"CỬA HÀNG"],[30,33,"CHỢ"],[34,44,"ĐỊA PHƯƠNG"]]}],["muốn thử đồ_ăn đặc_sản ở bình_định gợi_ý\r",{"entities":[[5,8,"TRẢI NGHIỆM"],[9,14,"ẨM THỰC"],[15,22,"ĐẶC SẢN"]]}],["tour du_lịch tự_nhiên dã_ngoại nào đáng quan_tâm ở bình_định\r",{"entities":[[0,12,"DU LỊCH"],[13,21,"THIÊN NHIÊN"],[22,30,"NGOÀI TRỜI"]]}],["đi_tích lịch_sử nào quan_trọng bình_định\r",{"entities":[[0,7,"DI TÍCH"],[8,15,"LỊCH SỬ"],[20,30,"ĐẶC BIỆT"]]}],["muốn biết về khu_vực đẹp thích_hợp chụp ảnh ở bình_định\r",{"entities":[[13,20,"ĐỊA ĐIỂM"],[21,24,"ĐẸP"],[35,39,"CHỤP ẢNH"]]}],["muốn thử trải_nghiệm đời_sống đêm bình_định đến đâu\r",{"entities":[[5,20,"TRẢI NGHIỆM"],[21,29,"HOẠT ĐỘNG"],[30,33,"ĐÊM"]]}],["quan_tâm đến nghệ_thuật truyền_thống bình_định điểm nào đặc_sắc\r",{"entities":[[13,23,"NGHỆ THUẬT"],[24,36,"TRUYỀN THỐNG"],[56,63,"HẤP DẪN"]]}],["địa_điểm du_lịch phù_hợp trẻ_em ở bình_định\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,16,"DU LỊCH"],[25,31,"TRẺ EM"]]}],["địa_điểm dành người_yêu thiên_nhiên ở bình_định\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[14,35,"THIÊN NHIÊN"]]}],["muốn trải_nghiệm cuộc_sống làng quê ở bình_định đến đâu\r",{"entities":[[5,16,"TRẢI NGHIỆM"],[27,35,"LÀNG"]]}],["tìm_kiếm trải_nghiệm thư_giãn spa massage ở bình_định\r",{"entities":[[9,20,"TRẢI NGHIỆM"],[21,29,"THƯ GIÃN"],[30,33,"NGHỈ DƯỠNG (SPA)"],[34,41,"NGHỈ DƯỠNG (SPA)"]]}],["tìm_hiểu về trung_tâm nghệ_thuật lịch_sử văn_hóa bình_định\r",{"entities":[[22,32,"NGHỆ THUẬT"],[33,40,"LỊCH SỬ"],[41,48,"VĂN HÓA"]]}],["muốn tổ_chức sự_kiện hoặc đám_cưới bình_định địa_điểm nào phù_hợp\r",{"entities":[[13,20,"SỰ KIỆN"],[26,34,"SỰ KIỆN"],[45,53,"ĐỊA ĐIỂM"]]}],["lễ_hội truyền_thống nào diễn đặc_biệt dịp lễ bình_định\r",{"entities":[[0,6,"LỄ HỘI"],[7,19,"TRUYỀN THỐNG"],[29,37,"ĐẶC BIỆT"],[38,44,"LỄ HỘI"]]}],["muốn thử đồ_ăn đường_phố ngon bình_định gợi_ý\r",{"entities":[[5,8,"TRẢI NGHIỆM"],[9,14,"ẨM THỰC"],[15,24,"CON ĐƯỜNG"],[25,29,"NGON"]]}],["tìm_hiểu về chỗ ăn_uống độc_đáo ngon_miệng ở bình_định\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[12,15,"ĐỊA ĐIỂM"],[16,23,"ẨM THỰC"],[24,31,"ĐỘC ĐÁO"],[32,42,"NGON"]]}],["muốn đi biển\r",{"entities":[[8,12,"BIỂN"]]}],["muốn tìm khách_sạn gần biển\r",{"entities":[[9,18,"KHÁCH SẠN"],[23,27,"BIỂN"]]}],["khách_sạn giá trung_bình quy_nhơn\r",{"entities":[[0,9,"KHÁCH SẠN"],[10,24,"BÌNH DÂN"]]}],["đi ăn_ở đâu rẻ ngon\r",{"entities":[[3,7,"ẨM THỰC"],[12,14,"BÌNH DÂN"],[15,19,"NGON"]]}],["đi du_lịch ở đâu tắm biển leo núi\r",{"entities":[[3,10,"DU LỊCH"],[17,20,"BƠI LỘI"],[21,25,"BIỂN"],[26,33,"LEO NÚI"]]}],["khách_sạn nào view biển độc_đáo\r",{"entities":[[0,9,"KHÁCH SẠN"],[19,23,"BIỂN"],[24,31,"ĐỘC ĐÁO"]]}],["khách_sạn nào view biển kết_hợp núi\r",{"entities":[[0,9,"KHÁCH SẠN"],[19,23,"BIỂN"],[32,35,"NÚI"]]}],["khách_sạn nào quan_sát lễ_hội ở quảng_trường\r",{"entities":[[0,9,"KHÁCH SẠN"],[23,29,"LỄ HỘI"],[32,44,"QUẢNG TRƯỜNG"]]}],["resort nào quy_nhơn bãi biển riêng_tư khách\r",{"entities":[[0,6,"RESORT"],[20,28,"BIỂN"]]}],["tìm_hiểu về khách_sạn giá trung_bình quy_nhơn đầy_đủ tiện_nghi\r",{"entities":[[12,21,"KHÁCH SẠN"],[22,36,"BÌNH DÂN"]]}],["nhà_hàng rẻ ngon ở quy_nhơn du_khách thử\r",{"entities":[[0,8,"NHÀ HÀNG"],[9,11,"BÌNH DÂN"],[12,16,"NGON"],[37,40,"TRẢI NGHIỆM"]]}],["đặc_sản biển ngon thưởng_thức ở quy_nhơn\r",{"entities":[[0,7,"ĐẶC SẢN"],[8,12,"BIỂN"],[13,17,"NGON"],[18,29,"THƯỞNG THỨC"]]}],["điểm đến nào ở quy_nhơn phù_hợp tận_hưởng biển núi\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[32,41,"THƯỞNG THỨC"],[42,46,"BIỂN"],[47,50,"NÚI"]]}],["khu_vực du_lịch nào ở quy_nhơn thích_hợp tắm biển leo núi\r",{"entities":[[0,7,"ĐỊA ĐIỂM"],[8,15,"DU LỊCH"],[41,44,"BƠI LỘI"],[45,49,"BIỂN"],[50,57,"LEO NÚI"]]}],["khách_sạn nào quy_nhơn view biển độc_đáo thuận_lợi gần điểm du_lịch\r",{"entities":[[0,9,"KHÁCH SẠN"],[28,32,"BIỂN"],[33,40,"ĐỘC ĐÁO"],[55,59,"ĐỊA ĐIỂM"],[60,67,"DU LỊCH"]]}],["muốn khách_sạn view biển kết_hợp không_gian núi có_thể tìm thấy ở đâu quy_nhơn\r",{"entities":[[5,14,"KHÁCH SẠN"],[20,24,"BIỂN"],[44,47,"NÚI"]]}],["khu_vực nào quy_nhơn an_toàn dạo chơi buổi tối\r",{"entities":[[0,7,"ĐỊA ĐIỂM"],[29,37,"VUI CHƠI"],[38,46,"ĐÊM"]]}],["tìm_kiếm khách_sạn boutique phong_cách độc_đáo ở quy_nhơn gợi_ý\r",{"entities":[[9,18,"KHÁCH SẠN"],[39,46,"ĐỘC ĐÁO"]]}],["khu_vực nào quy_nhơn thích_hợp mua_sắm đặc_sản\r",{"entities":[[0,7,"ĐỊA ĐIỂM"],[39,46,"ĐẶC SẢN"]]}],["nhà_hàng nào ở quy_nhơn phục_vụ ẩm_thực quốc_tế địa_phương\r",{"entities":[[0,8,"NHÀ HÀNG"],[32,39,"ẨM THỰC"],[40,47,"QUỐC TẾ"],[48,58,"ĐỊA PHƯƠNG"]]}],["khách_sạn nào ở quy_nhơn dịch_vụ tổ_chức đám_cưới sự_kiện\r",{"entities":[[0,9,"KHÁCH SẠN"],[41,49,"SỰ KIỆN"],[50,57,"SỰ KIỆN"]]}],["điểm đến nào quy_nhơn thích_hợp du_khách muốn tận_hưởng không_khí yên_bình dễ_chịu\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[46,55,"THƯỞNG THỨC"],[66,74,"YÊN BÌNH"]]}],["nhà_nghỉ nào ở quy_nhơn dịch_vụ đưa_đón đến điểm du_lịch chính\r",{"entities":[[0,8,"NHÀ NGHỈ"],[32,39,"DI CHUYỂN"],[44,48,"ĐỊA ĐIỂM"],[49,56,"DU LỊCH"]]}],["điểm tham_quan nào quy_nhơn đặc_biệt thu_hút du_khách\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[5,14,"TRẢI NGHIỆM"],[28,36,"ĐẶC BIỆT"],[37,44,"HẤP DẪN"]]}],["điểm đến dành người_yêu thể_thao nước ở quy_nhơn\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[24,32,"THỂ THAO"],[33,37,"BIỂN"]]}],["muốn trải_nghiệm cuộc_sống làng quê quy_nhơn có_thể thực_hiện ở đâu\r",{"entities":[[5,16,"TRẢI NGHIỆM"],[27,35,"LÀNG"]]}],["muốn tìm_hiểu về nghệ_thuật đương_đại quy_nhơn nào lựa_chọn tốt nhất\r",{"entities":[[5,13,"TRẢI NGHIỆM"],[17,27,"NGHỆ THUẬT"],[28,37,"HIỆN ĐẠI"]]}],["khách_sạn nào ở quy_nhơn dịch_vụ thuê xe hoặc phương_tiện tự lái\r",{"entities":[[0,9,"KHÁCH SẠN"],[33,40,"DI CHUYỂN"],[46,64,"DI CHUYỂN"]]}],["muốn biết về văn_hóa lịch_sử địa_phương quy_nhơn địa_điểm nào giúp hiểu rõ hơn\r",{"entities":[[13,20,"VĂN HÓA"],[21,28,"LỊCH SỬ"],[29,39,"ĐỊA PHƯƠNG"],[49,57,"ĐỊA ĐIỂM"]]}],["điểm đến nào quy_nhơn thích_hợp nghiên_cứu tìm_hiểu về động_vật biển\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[32,42,"TRẢI NGHIỆM"],[43,51,"TRẢI NGHIỆM"],[55,63,"ĐỘNG VẬT"],[64,68,"BIỂN"]]}],["điểm tâm_linh đền thờ nào quy_nhơn ghé thăm\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[5,13,"TÂM LINH"],[14,21,"ĐỀN THỜ"]]}],["khách_sạn nào quy_nhơn dịch_vụ đưa_đón đến điểm du_lịch nổi_tiếng\r",{"entities":[[0,9,"KHÁCH SẠN"],[31,38,"DI CHUYỂN"],[43,47,"ĐỊA ĐIỂM"],[48,55,"DU LỊCH"],[56,65,"NỔI TIẾNG"]]}],["khu_vực nào quy_nhơn phù_hợp đi bộ dạo thưởng_thức cảnh đẹp\r",{"entities":[[0,7,"ĐỊA ĐIỂM"],[29,34,"ĐI BỘ"],[39,50,"THƯỞNG THỨC"],[51,59,"PHONG CẢNH"]]}],["khu_vực nào quy_nhơn thích_hợp thư_giãn yoga\r",{"entities":[[0,7,"ĐỊA ĐIỂM"],[31,39,"THƯ GIÃN"],[40,44,"NGHỈ DƯỠNG (SPA)"]]}],["điểm du_lịch nào ở quy_nhơn phù_hợp người_yêu thể_thao phiêu_lưu\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[5,12,"DU LỊCH"],[46,54,"THỂ THAO"],[55,64,"PHƯỢT"]]}],["muốn thăm ngôi đền đi_tích lịch_sử có_thể thực_hiện ở đâu quy_nhơn\r",{"entities":[[10,18,"ĐỀN THỜ"],[19,26,"DI TÍCH"],[27,34,"LỊCH SỬ"]]}],["khách_sạn nào ở quy_nhơn hoạt_động giải_trí buổi tối\r",{"entities":[[0,9,"KHÁCH SẠN"],[25,34,"HOẠT ĐỘNG"],[35,43,"VUI CHƠI"],[44,52,"ĐÊM"]]}],["khu_vực nào quy_nhơn phù_hợp câu cá thư_giãn\r",{"entities":[[0,7,"ĐỊA ĐIỂM"],[29,35,"CÂU CÁ"]]}],["điểm đến nào quy_nhơn phù_hợp du_khách muốn tìm_hiểu về nghệ_thuật đương_đại thiết_kế\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[44,52,"TRẢI NGHIỆM"],[56,66,"NGHỆ THUẬT"],[67,76,"HIỆN ĐẠI"]]}],["muốn tìm_hiểu về lịch_sử người cham quy_nhơn có_thể thực_hiện ở đâu\r",{"entities":[[5,13,"TRẢI NGHIỆM"],[17,24,"LỊCH SỬ"]]}],["khu_vực nào quy_nhơn thích_hợp chụp ảnh nghệ_thuật cảnh đẹp\r",{"entities":[[0,7,"ĐỊA ĐIỂM"],[31,39,"CHỤP ẢNH"],[40,50,"NGHỆ THUẬT"],[51,59,"PHONG CẢNH"]]}],["điểm du_lịch nào quy_nhơn thuận_lợi chụp hình_cưới tạo kỷ_niệm đặc_biệt\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[5,12,"DU LỊCH"],[36,50,"CHỤP ẢNH"],[63,71,"ĐẶC BIỆT"]]}],["địa_điểm nào quy_nhơn thuận_lợi đạp xe_đạp hoặc leo núi\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[32,42,"THỂ THAO"],[48,55,"LEO NÚI"]]}],["khách_sạn nào tích_hợp quán cafe hoặc quán bar\r",{"entities":[[0,9,"KHÁCH SẠN"],[23,32,"CÀ PHÊ"],[38,46,"VUI CHƠI"]]}],["khách_sạn nào yên_tĩnh tích_hợp quán bar hoặc cafe\r",{"entities":[[0,9,"KHÁCH SẠN"],[14,22,"YÊN BÌNH"],[32,40,"VUI CHƠI"],[46,50,"CÀ PHÊ"]]}],["nhà_nghỉ nào quy_nhơn phù_hợp người du_lịch ngân_sách hạn_chế\r",{"entities":[[0,8,"NHÀ NGHỈ"],[44,61,"BÌNH DÂN"]]}],["muốn tham_gia sự_kiện giải_trí âm_nhạc quy_nhơn tìm_kiếm ở đâu\r",{"entities":[[5,13,"TRẢI NGHIỆM"],[14,21,"SỰ KIỆN"],[22,30,"VUI CHƠI"],[31,38,"NGHỆ THUẬT"]]}],["điểm đến nào quy_nhơn phù_hợp nhóm muốn trải_nghiệm văn_hóa địa_phương\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[40,51,"TRẢI NGHIỆM"],[52,59,"VĂN HÓA"],[60,70,"ĐỊA PHƯƠNG"]]}],["muốn tìm_hiểu về bãi biển quy_nhơn điều_kiện tốt nhất lướt sóng đâu\r",{"entities":[[5,13,"TRẢI NGHIỆM"],[17,25,"BIỂN"],[54,63,"LƯỚT SÓNG"]]}],["khu_vực nào quy_nhơn có_thể thưởng_thức_cảnh hoàng_hôn đẹp nhất\r",{"entities":[[0,7,"ĐỊA ĐIỂM"],[28,44,"THƯỞNG THỨC"],[45,54,"HOÀNG HÔN"]]}],["khách_sạn nào quy_nhơn có_thể thưởng_thức_cảnh hoàng_hôn đẹp nhất\r",{"entities":[[0,9,"KHÁCH SẠN"],[30,46,"THƯỞNG THỨC"],[47,56,"HOÀNG HÔN"]]}],["khu_vực nào quy_nhơn có_thể thưởng_thức cảnh bình_minh đẹp nhất\r",{"entities":[[0,7,"ĐỊA ĐIỂM"],[28,39,"THƯỞNG THỨC"],[45,54,"BÌNH MINH"]]}],["khách_sạn nào quy_nhơn có_thể thưởng_thức cảnh bình_minh đẹp nhất\r",{"entities":[[0,9,"KHÁCH SẠN"],[30,41,"THƯỞNG THỨC"],[47,56,"BÌNH MINH"]]}],["khách_sạn nào ở quy_nhơn phù_hợp du_khách muốn trải_nghiệm không_khí lãng_mạn\r",{"entities":[[0,9,"KHÁCH SẠN"],[47,58,"TRẢI NGHIỆM"],[69,77,"LÃNG MẠN"]]}],["điểm du_lịch nào phù_hợp cặp đôi\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[5,12,"DU LỊCH"],[25,28,"CẶP ĐÔI"]]}],["gợi_ý địa_điểm du_lịch khung_cảnh lãng_mạn cặp đôi\r",{"entities":[[6,14,"ĐỊA ĐIỂM"],[15,22,"DU LỊCH"],[23,33,"PHONG CẢNH"],[34,42,"LÃNG MẠN"],[43,50,"CẶP ĐÔI"]]}],["khách_sạn nào ở quy_nhơn phòng_ốc thiết_kế đặc_biệt sang_trọng\r",{"entities":[[0,9,"KHÁCH SẠN"],[43,51,"ĐẶC BIỆT"],[52,62,"CAO CẤP"]]}],["khu_vực nào quy_nhơn phù_hợp du_khách muốn trải_nghiệm không_khí truyền_thống việt_nam\r",{"entities":[[0,7,"ĐỊA ĐIỂM"],[43,54,"TRẢI NGHIỆM"],[65,77,"TRUYỀN THỐNG"]]}],["thông_tin về công_viên khu vui_chơi giải_trí trẻ_em quy_nhơn\r",{"entities":[[13,22,"CÔNG VIÊN"],[23,26,"ĐỊA ĐIỂM"],[27,35,"VUI CHƠI"],[36,44,"THƯ GIÃN"],[45,51,"TRẺ EM"]]}],["khách_sạn nào gần hay tổ_chức sự_kiện ở quy_nhơn\r",{"entities":[[0,9,"KHÁCH SẠN"],[30,37,"SỰ KIỆN"]]}],["khách_sạn nào gần siêu_thị\r",{"entities":[[0,9,"KHÁCH SẠN"],[18,26,"CỬA HÀNG"]]}],["khu_vực nào quy_nhơn có_thể tận_hưởng không_khí biển thăm làng chài truyền_thống\r",{"entities":[[0,7,"ĐỊA ĐIỂM"],[28,37,"THƯỞNG THỨC"],[48,52,"BIỂN"],[58,67,"LÀNG CHÀI"],[68,80,"TRUYỀN THỐNG"]]}],["khách_sạn nào ở quy_nhơn bể bơi tiện_nghi giải_trí gia_đình\r",{"entities":[[0,9,"KHÁCH SẠN"],[25,31,"BƠI LỘI"],[42,50,"THƯ GIÃN"],[51,59,"GIA ĐÌNH"]]}],["muốn tìm_hiểu về văn_hóa dân_dụ truyền_thống người_dân làng chài có_thể thực_hiện ở đâu\r",{"entities":[[5,13,"TRẢI NGHIỆM"],[17,24,"VĂN HÓA"],[25,31,"ĐỊA PHƯƠNG"],[32,44,"TRUYỀN THỐNG"],[55,64,"LÀNG CHÀI"]]}],["điểm du_lịch nào trải_nghiệm đánh_bắt cá biển\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[5,12,"DU LỊCH"],[17,28,"TRẢI NGHIỆM"],[29,40,"HOẠT ĐỘNG"],[41,45,"BIỂN"]]}],["cách tận_hưởng bãi biển dịch_vụ massage quy_nhơn khách_sạn nào đặc_biệt\r",{"entities":[[5,14,"THƯỞNG THỨC"],[15,23,"BIỂN"],[32,39,"NGHỈ DƯỠNG (SPA)"],[49,58,"KHÁCH SẠN"],[63,71,"ĐẶC BIỆT"]]}],["điểm đến nào quy_nhơn phù_hợp du_khách muốn tận_hưởng không_khí truyền_thống việt_nam\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[44,53,"THƯỞNG THỨC"],[64,76,"TRUYỀN THỐNG"]]}],["địa_điểm nào phù_hợp cắm trại hè\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[21,29,"CẮM TRẠI"]]}],["bãi biển ít người\r",{"entities":[[0,8,"BIỂN"],[9,17,"RIÊNG TƯ"]]}],["muốn tắm biển tránh bãi biển xảy tai_nạn đuối nước\r",{"entities":[]}],["muốn tham_gia hoạt_động thể_thao phiêu_lưu điểm đến nào phù_hợp\r",{"entities":[[5,13,"TRẢI NGHIỆM"],[14,23,"HOẠT ĐỘNG"],[24,32,"THỂ THAO"],[33,42,"PHƯỢT"],[43,51,"ĐỊA ĐIỂM"]]}],["khách_sạn nào hỗ_trợ đặt tour du_lịch\r",{"entities":[[0,9,"KHÁCH SẠN"],[25,37,"DU LỊCH"]]}],["khách_sạn nào nằm ở trung_tâm thành_phố\r",{"entities":[[0,9,"KHÁCH SẠN"],[30,39,"THÀNH PHỐ"]]}],["muốn ở khách_sạn nằm ở vùng ngoại_ô\r",{"entities":[[7,16,"KHÁCH SẠN"],[23,35,"NGOẠI Ô"]]}],["địa_điểm nào trời nắng đẹp cùng_với gió mát\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[13,43,"YÊN BÌNH"]]}],["địa_điểm du_lịch nào nhất_định đến ở quy_nhơn\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,16,"DU LỊCH"],[21,34,"KHÓ QUÊN"]]}],["khách_sạn nào gần địa_điểm du_lịch nổi_tiếng ở quy_nhơn\r",{"entities":[[0,9,"KHÁCH SẠN"],[18,26,"ĐỊA ĐIỂM"],[27,34,"DU LỊCH"],[35,44,"NỔI TIẾNG"]]}],["khách_sạn nào gần chợ\r",{"entities":[[0,9,"KHÁCH SẠN"],[18,21,"CHỢ"]]}],["điểm đến nào phục_vụ âm_nhạc thường_thức hay\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[21,28,"NGHỆ THUẬT"],[29,40,"THƯỞNG THỨC"]]}],["địa_điểm du_lịch nào hòa mình thiên_nhiên\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,16,"DU LỊCH"],[30,41,"THIÊN NHIÊN"]]}],["khách_sạn nào có_thể đón bình_minh biển\r",{"entities":[[0,9,"KHÁCH SẠN"],[25,34,"BÌNH MINH"],[35,39,"BIỂN"]]}],["muốn thuê xe hoặc xe_đạp du_lịch quy_nhơn khách_sạn nào dịch_vụ\r",{"entities":[[10,12,"DI CHUYỂN"],[18,24,"DI CHUYỂN"],[25,32,"DU LỊCH"],[42,51,"KHÁCH SẠN"]]}],["khách_sạn nào thiết_kế phong_cách cổ_điển hay\r",{"entities":[[0,9,"KHÁCH SẠN"],[23,41,"TRUYỀN THỐNG"]]}],["điểm đến nào nổi_tiếng spa làm_đẹp khách\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[13,22,"NỔI TIẾNG"],[23,26,"NGHỈ DƯỠNG (SPA)"],[27,34,"NGHỈ DƯỠNG (SPA)"]]}],["muốn đến điểm du_lịch khoa_học\r",{"entities":[[9,13,"ĐỊA ĐIỂM"],[14,21,"DU LỊCH"],[22,30,"KHOA HỌC"]]}],["điểm du_lịch thường đón_tiếp du_khách quốc_tế\r",{"entities":[[0,4,"ĐỊA ĐIỂM"],[5,12,"DU LỊCH"],[38,45,"QUỐC TẾ"]]}],["địa_điểm du_lịch giải_trí dành trẻ_em\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,16,"DU LỊCH"],[17,25,"VUI CHƠI"],[31,37,"TRẺ EM"]]}],["địa_điểm du_lịch giải_trí dành gia_đình\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,16,"DU LỊCH"],[17,25,"VUI CHƠI"],[31,39,"GIA ĐÌNH"]]}],["địa_điểm du_lịch giải_trí dành cặp đôi\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,16,"DU LỊCH"],[17,25,"VUI CHƠI"],[31,38,"CẶP ĐÔI"]]}],["địa_điểm du_lịch giải_trí hội nhóm\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,16,"DU LỊCH"],[17,25,"VUI CHƠI"],[26,34,"BẠN BÈ"]]}],["địa_điểm lãng_mạn\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,17,"LÃNG MẠN"]]}],["địa_điểm không_gian xanh yên_tĩnh\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,24,"THIÊN NHIÊN"],[25,33,"YÊN BÌNH"]]}],["địa_điểm có_thể cắm trại ngoài_trời\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[16,24,"CẮM TRẠI"],[25,35,"NGOÀI TRỜI"]]}],["biển gần quán hải_sản\r",{"entities":[[0,4,"BIỂN"],[9,13,"CỬA HÀNG"],[14,21,"HẢI SẢN"]]}],["biển gần quán hải_sản bình_dân\r",{"entities":[[0,4,"BIỂN"],[9,13,"CỬA HÀNG"],[14,21,"HẢI SẢN"],[22,30,"BÌNH DÂN"]]}],["khách_sạn gần biển\r",{"entities":[[0,9,"KHÁCH SẠN"],[14,18,"BIỂN"]]}],["khám_phá núi quy_nhơn\r",{"entities":[[0,8,"TRẢI NGHIỆM"],[9,12,"NÚI"]]}],["địa_điểm khám_phá mạo_hiểm ở quy_nhơn\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,17,"TRẢI NGHIỆM"],[18,26,"MẠO HIỂM"]]}],["địa_điểm bãi đá\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,15,"ĐÁ"]]}],["du_lịch bãi cát nhà_nghỉ\r",{"entities":[[0,7,"DU LỊCH"],[8,15,"CÁT"],[16,24,"KHÁCH SẠN"]]}],["du_lịch đá đẹp\r",{"entities":[[0,7,"DU LỊCH"],[8,10,"ĐÁ"],[11,14,"ĐẸP"]]}],["muốn đến_nơi cắm trại biển\r",{"entities":[[13,21,"CẮM TRẠI"],[22,26,"BIỂN"]]}],["muốn đến_nơi cắm trại núi\r",{"entities":[[5,12,"ĐỊA ĐIỂM"],[13,21,"CẮM TRẠI"],[22,25,"NÚI"]]}],["du_lịch núi ngắm quang_cảnh thành_phố\r",{"entities":[[0,7,"DU LỊCH"],[8,11,"NÚI"],[17,27,"PHONG CẢNH"],[28,37,"THÀNH PHỐ"]]}],["leo núi hỗ_trợ cắm trại\r",{"entities":[[0,7,"LEO NÚI"],[15,23,"CẮM TRẠI"]]}],["cắm trại gia_đình\r",{"entities":[[0,8,"CẮM TRẠI"],[9,17,"GIA ĐÌNH"]]}],["cắm trại cặp đôi\r",{"entities":[[0,8,"CẮM TRẠI"],[9,16,"CẶP ĐÔI"]]}],["bãi biển cắm trại cặp đôi\r",{"entities":[[0,8,"BIỂN"],[9,17,"CẮM TRẠI"],[18,25,"CẶP ĐÔI"]]}],["bãi biển cắm trại hội nhóm\r",{"entities":[[0,8,"BIỂN"],[9,17,"CẮM TRẠI"],[18,26,"BẠN BÈ"]]}],["vùng núi cắm trại gia_đình\r",{"entities":[[5,8,"NÚI"],[9,17,"CẮM TRẠI"],[18,26,"GIA ĐÌNH"]]}],["cắm trại hội nhóm núi\r",{"entities":[[0,8,"CẮM TRẠI"],[9,17,"BẠN BÈ"],[18,21,"NÚI"]]}],["khách_sạn thuê xe_máy\r",{"entities":[[0,9,"KHÁCH SẠN"],[15,21,"DI CHUYỂN"]]}],["địa_điểm du_lịch bãi cỏ xanh\r",{"entities":[[0,8,"ĐỊA ĐIỂM"],[9,16,"DU LỊCH"],[17,28,"BÃI CỎ"]]}],["nào quy_nhơn cảnh đẹp biển núi phong_phú thích_hợp gia_đình\r",{"entities":[[13,21,"PHONG CẢNH"],[22,26,"BIỂN"],[27,30,"NÚI"],[51,59,"GIA ĐÌNH"]]}],["vùng núi nào quy_nhơn lựa_chọn tốt nhất cắm trại gia_đình\r",{"entities":[[5,8,"NÚI"],[40,43,"CẮM TRẠI"],[49,57,"GIA ĐÌNH"]]}],["nào quy_nhơn cho_phép cắm trại hội nhóm núi\r",{"entities":[[22,30,"CẮM TRẠI"],[31,39,"BẠN BÈ"],[40,43,"NÚI"]]}],["nào ở quy_nhơn bãi đá đẹp độc_đáo\r",{"entities":[[15,21,"ĐÁ"],[26,33,"ĐỘC ĐÁO"]]}]
7
+ ]}
Datasets/Query/datasets_text.json ADDED
The diff for this file is too large to render. See raw diff
 
Datasets/Query/stopword.txt ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ tôi
2
+ bạn
3
+ bị
4
+ bởi
5
+ cả
6
+ các
7
+ cái
8
+ cần
9
+ càng
10
+ chỉ
11
+ chiếc
12
+ cho
13
+ chứ
14
+ chuyện
15
+
16
+ có thể
17
+ cứ
18
+ của
19
+ cùng
20
+ cũng
21
+ đã
22
+ đang
23
+ đây
24
+ để
25
+ đến nỗi
26
+ đều
27
+ điều
28
+ do
29
+ đó
30
+ được
31
+ dưới
32
+
33
+ khi
34
+
35
+ lại
36
+ lên
37
+ lúc
38
+
39
+ mỗi
40
+ này
41
+ nên
42
+ nếu
43
+ ngay
44
+ nhiều
45
+ như
46
+ nhưng
47
+ những
48
+ nơi
49
+ nữa
50
+ phải
51
+ qua
52
+ ra
53
+ rằng
54
+ rằng
55
+ rất
56
+ rất
57
+ rồi
58
+ sau
59
+ sẽ
60
+ so
61
+ sự
62
+ tại
63
+ theo
64
+ thì
65
+ trên
66
+ trước
67
+ từ
68
+ từng
69
+
70
+ vẫn
71
+ vào
72
+ vậy
73
+
74
+ việc
75
+ với
76
+ vừa
Datasets/Weights/weights_bias.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ce226e77b8016f3aadae783d6b358d75b4fdd95c495bbc88405e4864e78e917b
3
+ size 31800
Datasets/Weights/weights_freq.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6358f1b0e363483d89d964dbb03cd506cb04e4984dac52928d939280996be9ad
3
+ size 31800
Dockerfile ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Use an official Python runtime as the base image
2
+ FROM python:3.10.9
3
+
4
+ # Set the working directory to /app (root for your code inside the container)
5
+ WORKDIR /app
6
+
7
+ # Copy the requirements file into the container
8
+ COPY requirements.txt /app/
9
+
10
+ # Install dependencies in a virtual environment
11
+ RUN python3 -m venv /venv \
12
+ && /venv/bin/pip install --upgrade pip \
13
+ && /venv/bin/pip install -r /app/requirements.txt
14
+
15
+ # Copy the rest of your application code into the container
16
+ COPY . /app/
17
+
18
+ # Set the environment variable for the virtual environment
19
+ ENV PATH="/venv/bin:$PATH"
20
+
21
+ # Expose the port that your app will run on
22
+ EXPOSE 7860
23
+
24
+ # Create a non-root user and switch to that user to avoid running as root
25
+ RUN useradd -m myuser
26
+
27
+ # Give the non-root user permission to write to the Datasets/Weights directory
28
+ RUN chown -R myuser:myuser /app/Datasets
29
+
30
+ # Switch to the non-root user
31
+ USER myuser
32
+
33
+ # Run the Python script when the container starts
34
+ CMD ["python3", "Model_API/main.py"]
Model_API/Destinations/config.py ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+
3
+ import numpy as np
4
+ import pandas as pd
5
+ from sklearn.feature_extraction.text import CountVectorizer
6
+ from sklearn.metrics.pairwise import cosine_similarity
7
+
8
+ # Load the JSON data
9
+ with open('Datasets/Query/datasets_text.json', 'r', encoding='utf-8') as file:
10
+ data = json.load(file)
11
+
12
+ # Prepare sentences and labels
13
+ sentences = [item[0] for item in data["annotations"]]
14
+ labels = [item[1]['entities'] for item in data["annotations"]]
15
+ # Define tags
16
+ tags = data["classes"]
17
+ # tags = ['<pad>'] + tags
18
+
19
+ # Convert tags to indices
20
+ tag2idx = {tag: 0 for idx, tag in enumerate(tags)}
21
+ for label in labels:
22
+ for entity in label:
23
+ tag2idx[entity[1]] = tag2idx[entity[1]] + 1
24
+ # Sort the dictionary by values
25
+ sorted_tags_dict = dict(sorted(tag2idx.items(), key=lambda item: item[1],reverse=True))
26
+ sorted_tags = {key: value for key, value in sorted_tags_dict.items()}
27
+ sorted_tags = list(sorted_tags)
28
+
29
+ for i in range(len(sorted_tags)):
30
+ sorted_tags[i] = sorted_tags[i].replace(" ", "_")
31
+
32
+ destinations = pd.read_excel("Datasets/Places/des_retags_copilot.xlsx")
33
+
34
+ vectorizer = CountVectorizer(max_features=10000, stop_words="english")
35
+ tags_vector = vectorizer.fit_transform(destinations["tags"].values.astype('U')).toarray()
36
+ tags_vector = tags_vector[1:]
37
+
38
+ feature_names = vectorizer.get_feature_names_out()
Model_API/Destinations/get_default_weight.py ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from .config import *
2
+
3
+
4
+ def create_bias_weights():
5
+ """
6
+ Create a weights vector for bias based on the given tags and weights.
7
+ The function initializes a weights vector to zero, then maps the weights from the weights_tags_vector to the appropriate positions in the weights_vector based on the tags present in the destinations.
8
+ """
9
+ weights_tags_vector = [
10
+ [15, 15, 0.9, 15, 15, 10, 1, 5, 0.6, 0.9, 0.9, 0.8, 10, 10, 1, 15],
11
+ [15, 15, 0.9, 15, 15, 10, 15, 1, 10, 0.6, 0.9, 0.9, 0.8, 10, 10, 15, 0.8, 15],
12
+ [15, 0.9, 0.8, 15, 15, 1, 10, 10, 0.6, 0.9, 0.9, 0.8, 5, 5, 1, 15],
13
+ [15, 15, 0.9, 15, 0.7, 15, 15, 15, 1, 10, 10, 1, 0.9, 0.9, 0.9, 5, 5, 15, 0.8, 15],
14
+ [10, 10, 15, 15, 0.8, 0.9, 15, 15, 15, 1, 10, 10, 0.6, 0.5, 0.9, 0.9, 0.8, 0.7, 15, 15, 15, 15, 15],
15
+ [0.8, 0.9, 15, 0.8, 15, 0.9, 10, 15, 0.9, 0.9, 0.9, 0.8, 15, 10, 1, 15],
16
+ [0.9, 0.8, 5, 1, 0.9, 10, 15, 0.9, 0.9, 0.9, 0.9, 0.8, 15, 1, 1, 15],
17
+ [0.8, 0.9, 5, 1, 15, 15, 0.9, 0.9, 0.9, 0.8, 15, 1, 15],
18
+ [0.8, 0.7, 15, 15, 1, 10, 0.7, 0.7, 0.6, 5, 5, 15],
19
+ [0.8, 5, 1, 15, 15, 15, 0.7, 0.7, 15],
20
+ [0.8, 0.7, 1, 15, 15, 0.7, 0.7, 15],
21
+ [0.8, 0.7, 1, 15, 15, 15, 0.7, 0.9, 15],
22
+ [0.8, 0.7, 1, 15, 15, 0.7, 0.7, 15],
23
+ [0.8, 0.7, 1, 15, 15, 15, 0.7, 0.7, 15],
24
+ [0.8, 0.7, 1, 15, 15, 15, 1, 10, 15],
25
+ [10, 0.9, 0.8, 1, 15, 15, 15, 0.8, 10, 15],
26
+ [0.8, 15, 1, 15, 15, 0.8, 10, 15],
27
+ [10, 0.8, 1, 15, 1, 0.9, 0.8, 5, 0.8],
28
+ [0.8, 15, 1, 5, 0.9, 0.8, 0.7, 0.7],
29
+ [0.9, 0.8, 15, 1, 15, 0.7, 0.8, 0.7, 0.7, 5, 5, 15],
30
+ [0.8, 0.7, 1, 5, 0.9, 10, 10, 15],
31
+ [0.8, 1, 15, 15, 1, 0.9, 0.8, 0.8, 15],
32
+ [0.8, 1, 10, 5, 5, 15],
33
+ [0.8, 0.7, 1, 15, 15, 0.8, 0.9, 15],
34
+ [10, 10, 10, 1, 10, 0.8, 1, 5, 10, 10, 10, 10, 1, 0.9, 1, 1, 15],
35
+ [0.8, 0.7, 1, 15, 15, 0.8, 0.9, 15],
36
+ [0.8, 0.7, 1, 10, 10, 0.8, 0.9, 15],
37
+ [10, 0.8, 0.7, 15, 15, 1, 15, 15, 0.7, 0.7, 0.6, 5, 5, 1, 15],
38
+ [5, 0.8, 0.7, 5, 5, 1, 10, 10, 0.7, 0.7, 0.6, 5, 5, 1, 15],
39
+ [0.8, 0.7, 15, 5, 1, 10, 10, 10, 0.8, 0.7, 0.7, 5, 5, 5, 10, 15],
40
+ [5, 5, 10, 15, 15, 15, 15, 0.9, 0.8, 0.7, 0.7, 1, 15],
41
+ [10, 10, 15, 15, 10, 5, 1, 15, 15, 15, 15, 0.7, 5, 5, 0.8, 1, 15],
42
+ [10, 15, 15, 15, 10, 10, 1, 1, 1, 15, 15, 5, 5],
43
+ [0.8, 0.7, 0.6, 0.8, 1, 1, 1, 0.9, 0.8, 0.7, 0.7, 0.6, 5, 5, 1, 15],
44
+ [1, 0.8, 0.9, 0.7, 0.6, 1, 0.9, 0.8, 1, 1, 0.9, 0.8, 0.8, 0.7, 0.9, 5, 5, 15],
45
+ [1, 0.8, 0.9, 0.7, 0.6, 1, 0.9, 0.8, 1, 1, 0.9, 0.7, 0.6, 0.8, 0.8, 0.8, 0.7, 5, 5, 1, 0.7, 0.6, 15],
46
+ [0.9, 0.7, 1, 1, 0.8, 0.7, 0.8, 0.8, 0.7, 1, 1, 1, 1, 15]
47
+ ]
48
+ #Create a weights vector initialized to zero
49
+ weights_vector = np.zeros(tags_vector.shape)
50
+
51
+ # Map weights to the appropriate positions in the weights_vector
52
+ for i, row in enumerate(destinations["tags"][1:].values):
53
+ tags = row.split()
54
+ for tag, weight in zip(tags, weights_tags_vector[i]):
55
+ index = np.where(feature_names == tag.lower())[0][0]
56
+ weights_vector[i][index] = weight
57
+ np.save("Datasets/Weights/weights_bias.npy", weights_vector)
58
+
59
+ def create_freq_weights():
60
+ """
61
+ This function creates a weights vector for frequency-based weights based on the given tags and their frequencies.
62
+ The function initializes a weights vector to zero, then maps the weights from the sorted_tags_dict to the appropriate positions in the weights_vector based on the tags present in the destinations.
63
+ The weights are calculated as the ratio of the tag's frequency to the maximum frequency among all tags.
64
+
65
+ Parameters:
66
+ tags_vector (numpy.ndarray): A 2D numpy array representing the tags vector. Each row corresponds to a destination, and each column corresponds to a tag. The value at each position is 1 if the tag is present in the destination, and 0 otherwise.
67
+ sorted_tags_dict (dict): A dictionary where the keys are the tags and the values are their frequencies.
68
+ feature_names (numpy.ndarray): A 1D numpy array representing the names of the features (tags).
69
+ destinations (pandas.DataFrame): A pandas DataFrame containing the destinations data, including the tags column.
70
+
71
+ Returns:
72
+ numpy.ndarray: A 2D numpy array representing the weights vector for frequency-based weights. Each row corresponds to a destination, and each column corresponds to a tag. The value at each position represents the weight of the tag for that destination.
73
+ """
74
+ #Create a weights vector initialized to zero
75
+ weights_vector = np.zeros(tags_vector.shape)
76
+ max_freq = max(sorted_tags_dict.values())
77
+
78
+ # Map weights to the appropriate positions in the weights_vector
79
+ for i, row in enumerate(destinations['tags'][1:].values):
80
+ tags = row.split()
81
+ for tag in tags:
82
+ index = np.where(feature_names == tag.lower())[0][0]
83
+ weights_vector[i][index] = f"{(sorted_tags_dict[tag.replace('_', ' ')]/max_freq):.2f}"
84
+ np.save("Datasets/Weights/weights_freq.npy", weights_vector)
85
+
86
+ create_bias_weights()
87
+ create_freq_weights()
88
+
89
+ weights_bias_vector = np.load("Datasets/Weights/weights_bias.npy")
90
+ weights_freq = np.load("Datasets/Weights/weights_freq.npy")
91
+ weighted_tags_vector = weights_bias_vector
Model_API/Destinations/get_destinations.py ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from .config import vectorizer
2
+ from .get_default_weight import destinations, weights_bias_vector
3
+
4
+
5
+ def get_des_accumulation(question_vector, weights_bias_vector):
6
+ accumulation = 0
7
+ for index in range(len(weights_bias_vector)):
8
+ if question_vector[index]==1:
9
+ accumulation += weights_bias_vector[index]
10
+
11
+ return accumulation
12
+
13
+ def get_destinations_list(question_vector, top_k):
14
+ des = destinations
15
+ des = des[1:].reset_index(drop=True)
16
+ """
17
+ This function calculates the accumulated scores for each destination based on the given question vector and weights vector.
18
+ It then selects the top 5 destinations with the highest scores and returns their names.
19
+ Parameters:
20
+ question_vector (numpy.ndarray): A 1D numpy array representing the question vector. Each element corresponds to a tag, and its value is 1 if the tag is present in the question, and 0 otherwise.
21
+ weights_bias_vector (numpy.ndarray): A 2D numpy array representing the weights vector. Each row corresponds to a destination, and each column corresponds to a tag. The value at each position represents the weight of the tag for that destination.
22
+ Returns:
23
+ destinations_list: A list of strings representing the names of the top k destinations with the highest scores.
24
+ """
25
+ accumulation_dict = {}
26
+ for index in range(len(weights_bias_vector)):
27
+ accumulation = get_des_accumulation(question_vector[0], weights_bias_vector[index])
28
+ accumulation_dict[str(index)] = accumulation
29
+
30
+ top_keys = sorted(accumulation_dict, key=accumulation_dict.get, reverse=True)[:top_k]
31
+ avg_score = sum(accumulation_dict[key] for key in top_keys) / len(top_keys)
32
+ destinations_list = []
33
+ for key in top_keys:
34
+ if accumulation_dict[key] > avg_score:
35
+ destinations_list.append(des["name"][int(key)])
36
+ print(f"{des['name'][int(key)]}: {accumulation_dict[key]}")
37
+
38
+ return destinations_list
39
+
40
+ def get_question_vector(question_tags):
41
+ """
42
+ Generate a question vector based on the given list of question tags.
43
+
44
+ Parameters:
45
+ question_tags (list): A list of strings representing the tags associated with the question.
46
+ Each tag is a word or phrase that describes a characteristic of a destination.
47
+
48
+ Returns:
49
+ numpy.ndarray: A 2D numpy array representing the question vector.
50
+ The array is transformed from the input list of question tags using a vectorizer.
51
+ Each row in the array corresponds to a tag, and its value is either 0 or 1.
52
+ The length of each row is equal to the number of unique tags in the dataset.
53
+ """
54
+ question_tags = [question_tags]
55
+ question_vector = vectorizer.transform(question_tags).toarray()
56
+ return question_vector
Model_API/Model/DataProcessing.py ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import string
2
+
3
+ import underthesea
4
+
5
+ from .dictionary import (emotion2wordform_dict, mispelling_dict, number_dict,
6
+ translate_dict, wordform2vnese_dict)
7
+
8
+
9
+ #10 Remove stopwords
10
+ def remove_stopwords(input_text, stopwords_file='Datasets/Query/stopword.txt'):
11
+ # Read the custom stop words from the file
12
+ with open(stopwords_file, 'r', encoding='utf-8') as file:
13
+ stopwords = set(line.strip() for line in file)
14
+
15
+ cleaned_words = [word for word in input_text.split() if word.lower() not in stopwords]
16
+ cleaned_text = ' '.join(cleaned_words)
17
+
18
+ return cleaned_text
19
+
20
+ #9 word segmentation
21
+ def word_segment(text):
22
+ return underthesea.word_tokenize(text, format="text")
23
+
24
+ #8 Remove numbers
25
+ def remove_numbers(input_string):
26
+ # Use the isalpha() method to filter out numeric characters
27
+ cleaned_string = ''.join(char for char in input_string if not char.isdigit())
28
+ return cleaned_string
29
+
30
+ #7
31
+ def remove_extra_whitespace(input_string):
32
+ words = input_string.split()
33
+ return ' '.join(words)
34
+
35
+ #6 Tranform Number to text (8 - tám)
36
+ def number2text(sentence):
37
+ words = sentence.split()
38
+ converted_words = [number_dict.get(word, word) for word in words]
39
+ converted_sentence = ' '.join(converted_words)
40
+ return converted_sentence
41
+
42
+ #5 Transform mispelling words, acronyms, .....(include translate english words)
43
+ def translate2word(sentence, dictionary = translate_dict):
44
+ sentence = " " + sentence.strip() + " "
45
+ for key, value_list in dictionary.items():
46
+ for value in value_list:
47
+ sentence = sentence.replace(value, key)
48
+ return sentence
49
+
50
+ def mispell2word(sentence, dictionary = mispelling_dict):
51
+ sentence = " " + sentence.strip() + " "
52
+ for key, value_list in dictionary.items():
53
+ for value in value_list:
54
+ sentence = sentence.replace(value, key)
55
+ return sentence
56
+
57
+ #4 Transform word from into vietnamese (colonsmile - cười)
58
+ def word_form2Vnese(sentence):
59
+ words = sentence.split()
60
+ converted_words = [wordform2vnese_dict.get(word, word) for word in words]
61
+ converted_sentence = ' '.join(converted_words)
62
+ return converted_sentence
63
+
64
+ #3 f
65
+ def remove_punctuation(input_string):
66
+ # Create a translation table to remove all punctuation characters
67
+ translator = str.maketrans('', '', string.punctuation)
68
+
69
+ # Use the translate method to remove punctuation
70
+ cleaned_string = input_string.translate(translator)
71
+
72
+ return cleaned_string
73
+
74
+ #2 emoticon to word form ( :) - colonsmile )
75
+ def emoticon2word(sentence):
76
+ words = sentence.split()
77
+ converted_words = [emotion2wordform_dict.get(word, word) for word in words]
78
+ converted_sentence = ' '.join(converted_words)
79
+ return converted_sentence
80
+
81
+ #1 lower case
82
+ def lower_case(text):
83
+ return text.lower()
84
+
85
+ def data_preprocessing(text):
86
+ return remove_stopwords(word_segment(remove_extra_whitespace(number2text(mispell2word(remove_punctuation(lower_case(text)))))))
87
+
88
+ def read_input(input): #hàm cuối cùng khi đọc và xử lí input sentence
89
+ return data_preprocessing(input)
Model_API/Model/config_train.py ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ import random
3
+ from collections import defaultdict
4
+
5
+ import matplotlib.pyplot as plt
6
+ import torch
7
+ from sklearn.metrics import f1_score
8
+ from sklearn.model_selection import train_test_split
9
+ from torch.nn.functional import pad
10
+ from torch.nn.utils.rnn import pad_sequence
11
+ from torch.utils.data import (DataLoader, RandomSampler, SequentialSampler,
12
+ TensorDataset)
13
+ from tqdm import tqdm
14
+ from transformers import (AdamW, AutoTokenizer, BertForTokenClassification,
15
+ get_linear_schedule_with_warmup)
16
+
17
+ # Assuming the JSON data is stored in a file named 'data.json'
18
+ DEFAULT_TEXT_ANNOTATION_FILE = "Datasets/Query/datasets_text.json"
19
+
20
+ # Pretrained model
21
+ pretrain_model_name = "vinai/phobert-base-v2"
22
+ tokenizer = AutoTokenizer.from_pretrained(pretrain_model_name)
23
+
24
+ # Hyperparameters for training
25
+ batch_size = 64 # Number of samples per batch
26
+ epochs = 50 # Number of training epochs
27
+ device = "cuda" if torch.cuda.is_available() else "cpu" # Check if GPU is available
28
+ lr = 5e-5
29
+ eps = 1e-8
30
+ weight_decay= 1e-5
31
+
32
+ # Paths for saving the trained model and test response tags
33
+ model_saved_path = "Model_API\Saved_Model\key_ner_new_data_method"
34
+ model_load_path = "Model_API/Saved_Model/key_ner_new_data_method"
35
+ save_respone_tags_path = "Datasets/Query/answer_test.json"
Model_API/Model/dictionary.py ADDED
@@ -0,0 +1,501 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ emotion2wordform_dict = {
2
+ ':)' :'colonsmile',
3
+ ':(' :'colonsad',
4
+ '@@' :'colonsurprise',
5
+ '<3' :'colonlove',
6
+ ':d' :'colonsmilesmile',
7
+ ':3' :'coloncontemn',
8
+ ':v' :'colonbigsmile',
9
+ ':_' :'coloncc',
10
+ ':p' :'colonsmallsmile',
11
+ '>>' :'coloncolon',
12
+ ':">' :'colonlovelove',
13
+ '^^' :'colonhihi',
14
+ ':' :'doubledot',
15
+ ":'(" :'colonsadcolon',
16
+ ':’(' :'colonsadcolon',
17
+ ':@' :'colondoublesurprise',
18
+ 'v.v' :'vdotv',
19
+ '...' :'dotdotdot',
20
+ '/' :'fraction',
21
+ 'c#' :'cshrap',
22
+ '=)' :'coloneyesmile',
23
+ ':3' : 'coloncontemn',
24
+ '^^' : 'colonhihi',
25
+ 'c++' : 'cplusplus',
26
+ '&' : 'and',
27
+ '?' : 'dotthinking',
28
+ '3dot0' : 'dotnumbers',
29
+ }
30
+
31
+ wordform2vnese_dict = {
32
+ 'colonsmile' : 'cười nhẹ',
33
+ 'colonsad' : 'buồn',
34
+ 'colonsurprise' : 'ngạc nhiên',
35
+ 'colonlove' : 'trái tim',
36
+ 'colonsmilesmile' : 'cười tươi',
37
+ 'coloncontemn' : 'dễ thương',
38
+ 'colonbigsmile' : 'cười nhạt',
39
+ 'coloncc' : 'thích',
40
+ 'colonsmallsmile' : 'vui vẻ',
41
+ 'coloncolon' : 'tuyệt',
42
+ 'colonlovelove' : 'thẹn thùng',
43
+ 'colonhihi' : 'hạnh phúc',
44
+ 'doubledot' : 'như là',
45
+ 'colonsadcolon' : 'khóc',
46
+ 'colondoublesurprise': 'hơi ngạc nhiên',
47
+ 'vdotv' : 'vân vân',
48
+ 'dotdotdot' : 'vân vân',
49
+ 'fraction' : 'chia',
50
+ 'cshrap' : 'ngôn ngữ lập trình',
51
+ 'coloneyesmile' : 'hạnh phúc',
52
+ 'cplusplus' : 'ngôn ngữ lập trình',
53
+ 'and' : 'và',
54
+ 'dotthinking' : 'thắc mắc',
55
+ 'dotnumbers' : 'chấm',
56
+ }
57
+
58
+
59
+ mispelling_dict = {
60
+ #-----------------------------------------------------------------------------------------------------#
61
+ # Từ phức:
62
+
63
+ 'lặp đi lặp lại': ['lập đi lập lại','lập đi lặp lại','lặp đi lập lại','lap di lap lai'],
64
+ 'yêu cầu': ['yêu câu','yêu cau','yeu cầu','yeu câu','yeu cau'],
65
+ 'kiến thức': ['kiến thực','kiến thưc','kiến thúc','kiến thuc','kiên thức','kiên thưc','kiên thúc','kiên thuc','kien thức','kien thưc','kien thúc','kien thuc'],
66
+ 'bục giảng': ['bụt giảng', 'bục giãng','bụt giãng','buc giang','but giang','buc giảng','but giảng'],
67
+ 'tận tâm': ['tân tâm','tận tam','tân tam','tan tam'],
68
+ 'tăng cường': ['tăng cương','tăng cuong','tang cuong','tang cường','tang cương'],
69
+ 'trang thiết bị': ['trang thiet bi','trang thết bị','trang thêt bị','trang thiet bị','trang thiêt bị','trang thiêt bị','trang thiêt bi','trang thiêt bi','trang thiết bi','trang thết','trang thiết'],
70
+ 'thiết bị': ['thết bị','thêt bị','thêt bi','thet bị','thet bi','thiêt bị','thiêt bi','thiết bi','thiet bi','thiet bị'],
71
+ 'thống nhất cùng': ['thống nhất cũng'],
72
+ 'khó khăn': ['khó khắn','khó khắn','khó khẵn','khó khặn','khó khan','kho khăn'],
73
+ 'phòng máy': ['phỏng máy','phong máy','phong may'],
74
+ 'khảo sát': ['khảo sat','khão sát','khão sat','khạo sát','khạo sat','khao sát','khảo sác','khảo sác','khảo sac','khao sat'],
75
+ ' học sinh ': [' hs ',' học sin ',' hoc sin ','hoc sinh'],
76
+ 'dễ hiểu': ['dễ hiêu','dê hieu','dê hiêu','de hieu'],
77
+ 'khó hiểu': ['khó hiêu','khó hieu','kho hiểu','kho hiêu','kho hieu'],
78
+ ' giảng dạy ': [' giảng dạ ', ' giản dạy ', ' giảng dạyy ',' giảng dậy ',' giang day '],
79
+ ' bình thường ': [' bình thưởng ', ' bình thườn ',' binh thuong '],
80
+ 'kéo dài' : ['kéo đài', 'keo dài', 'keo dai'],
81
+ 'bắt đầu' :['bắt đàu', 'bắt đau','bắt đâu','bắt dau','băt đầu','băt đâu','băt đau','băt dau','bat đầu','bat đâu','bat đau','bat dau'],
82
+ 'tìm hiểu' : ['tmf hiểu','tim hieu', 'timf hiểu','tìm hiều'],
83
+ 'áp đặt' : ['áp đặp', 'ap dat'],
84
+ 'lướt qua' : ['lước qua','lươt qua','luot qua'],
85
+ 'bổ sung' : ['bổ xung', 'bo sung', 'bô sung','bỏ sung'],
86
+ ' giảng viên ' : [' giãng viên ',' giãng vien ',' giảng vien ',' giang viên ',' giản viên ',' giảng viến ',' giang vien ',' gv '],
87
+ ' giáo viên ' : [' giá viên ',' giao viên ',' giao vien ',' giao viên ',' giáo vien '],
88
+ 'gần gũi': ['gần gủi','gần gui', 'gan gui'],
89
+ 'cộc lốc': ['cọc lốc','cọc lóc','coc loc'],
90
+ 'vấn đề': ['vẫn đê','vân đê','vấn đê','vân đề','van de','van đề','vấn đe','vấn de'],
91
+ ' mạnh dạn ': [' mạnh dạng '],
92
+ 'nhiệt tình': ['nhiêt tình','nhiet tình','nhiệt tinh', 'nhiet tinh'],
93
+ 'bài mẫu': ['bày mẫu','bai mẫu','bai mau'],
94
+ 'truyền đạt': ['truyền đật','truyên dat','truyền đat','truyên đạt','truyên dạt','truyên đat','truyen dat'],
95
+ 'trắc nghiệm': ['trăc nghiệm','trắc nghiem','trac nghiệm','trac nghiem'],
96
+ 'lập trình': ['lâp trình','lap trình','lap trinh'],
97
+ 'nhắc nhở': ['nhác nhở','nhac nho'],
98
+ 'lên lớp': ['lên lớn','len lop','lên lơp','lên lop'],
99
+ 'hoàn hảo': ['hoan hao'],
100
+ 'nhắn tin': ['nhăn tin','nhan tin'],
101
+ 'hứng thú': ['hướng thú','hung thu'],
102
+ 'cô dạy': ['cố dạy'],
103
+ 'hoàn chỉnh': ['hoàn chính','hoan chinh'],
104
+ 'tận tình': ['tân tình','tận hình','tận tinh','tan tinh'],
105
+ 'cuối cùng': ['cuối cung', 'cuoi cung'],
106
+ 'tiếp xúc': ['tiếp súc','tiếp xuc','tiep xúc','tiep xuc'],
107
+ ' thực tế ': [' thức tế ',' thức tê ',' thự tế ',' thực tê ',' thực te ',' thưc tế ',' thưc tê ',' thưc te ',' thuc te '],
108
+ 'tâm huyết': ['tâm huyến','tâm huyêt','tam huyêt','tam huyết','tam huyet'],
109
+ 'công nghệ phần mềm': ['cnpm','cong nghe phan mem'],
110
+ ' công nghệ ': [' côn nghệ ',' côn nghê ',' côn nghẹ ',' côn nghe ',' công nghê ',' công nghẹ ',' công nghe ',' cong nghệ ',' cong nghê ',' cong nghẹ ',' cong nghe '],
111
+ 'nâng cấp': ['năng cấp','nâng câp','nâng cap','nang câp','nang cấp','nang cap'],
112
+ ' không thể ': [' không thẻ ',' ko thể ',' khum thể ',' k thể ',' không the ',' ko the ',' k the ',' khum the ',' khong the '],
113
+ 'tham khảo': ['tam khảo','tham khao'],
114
+ 'giám sát': ['dám sát','giám sat','giam sát','giam sat'],
115
+ 'một số' : ['mốt số','môt số','môt sô','môt so','mot số','mot sô','mot so'],
116
+ 'hạn chế': ['hạn chê','hạn che','han che'],
117
+ 'cảm ơn' : ['cám ơn', 'cẻm ơn','kẽm ơn','cam on'],
118
+ 'ngắn gọn' : ['ngắn gọc','ngắn gọt','ngắn gõn','ngắn gôn','ngắn gon','ngan gon'],
119
+ ' đảm bảo chất lượng ' : [' đbcl ',' dbcl '],
120
+ 'đảm bảo' : ['đảm bao','đảm bão','đãm bão','đãm bảo','đãm bao','đam bảo','đam bao','đam bão','dam bảo','dam bao','dam bão'],
121
+ 'hiện nay' : ['hien nay', 'hiên nay','hiện nây'],
122
+ 'quan tâm' : ['quan tấm', 'quan tam'],
123
+ 'nền tảng' : ['nền tẳng', 'nen tang'],
124
+ 'hàng ngày' : ['hằng ngày','hang ngay'],
125
+ 'nâng cao' : ['năng cao','nâng cáo', 'nâng cào', 'nâng cảo','nang cáo', 'nang cào', 'nang cảo','nang cao'],
126
+ ' phòng đào tạo ' : [' pdt ',' pđt ','phòng đào tao','phòng dao tạo' ,'phong dao tao'],
127
+ 'đào tạo': ['đào tao','đào tảo','đào tão','đao tạo','đao tảo','đao tão','đao tao','dao tảo','dao dão','dao tạo','dao tao'],
128
+ 'khắt khe': ['khắc khe','khăc khe','khăt khe','khat khe'],
129
+ 'lưu loát': ['lưu lát','lưu loat','luu loát','luu loat','lưu lat','luu lat'],
130
+ ' sinh viên ': [' sv ',' svien ',' sinhvien ',' sinh vien ',' sinh diên ',' sanh diên ',' sanh viên ',' sanh vien '],
131
+ 'dễ thương': ['dẽ thương','dẽ thuong','dễ thuong','dê thương','dê thuong','de thương','de thuong'],
132
+ 'vật lý': ['vậy lý','vậy lí','vật ly','vật li','vât ly','vât li','vat ly','vat li'],
133
+ ' học kỳ ': [' hk ',' học ky ',' học ki ',' hoc ki ',' hoc ky ',' hoc kì ',' hoc kỳ '],
134
+ ' học kỳ 1 ': [' hk1 ',' học ky 1 ',' học ki 1 ',' hoc ki 1 ',' hoc ky 1 ',' hoc kì 1 ',' hoc kỳ 1 '],
135
+ ' học kỳ 2 ': [' hk2 ',' học ky 2 ',' học ki 2 ',' hoc ki 2 ',' hoc ky 2 ',' hoc kì 2 ',' hoc kỳ 2 '],
136
+ 'lười nhát': ['lười nhác','lười nhat','lười nhac','lươi nhát','lươi nhat','luoi nhat'],
137
+ ' bài tập ': [' bai tập ',' bài tâp ',' bài tap ',' bai tập ',' bai tâp ',' bai tap ',' btap ',' bt '],
138
+ ' bài tập về nhà ': [' btvn '],
139
+ ' ví dụ ': [' vd ',' vdu ',' vidu ',' ví du ',' vi dụ ',' vi du '],
140
+ 'chất lượng': ['chất lương','chất luong','chât lượng','chât lương','chât luong','chat lượng','chat lương','chat luong'],
141
+ ' nội dung ': [' nối dung ',' nối dun ',' nội dun ',' nôi dung ',' nôi dun ',' noi dung '],
142
+ 'thực hành': ['thực hanh','thưc hành','thưc hanh','thuc hành','thuc hanh'],
143
+ 'hướng dẫn': ['hướng dân','hướng dan','hương dẫn','hương dân','hương dan','huong dẫn','huong dân','huong dan'],
144
+ 'đầy đủ': ['đầy đu','đầy du','đây đủ','đây đu','đây du','đay đủ','đay đu','đay du','day đủ','day đu','day du'],
145
+ 'đúng giờ': ['đúng giơ','đúng gio','đung giờ','đung giơ ','đung gio','dung giờ','dung giơ','dung gio'],
146
+ 'thoải mái': ['thoải mai','thoai mái','thoai mai','thoãi mái','thoãi mai'],
147
+ 'chi tiết': ['chi tiêt','chi tiet','chy tiết','chy tiêt','chy tiet','chỉ tiết'],
148
+ 'tóm t��t': ['tóm tăt','tóm tat','tom tắt','tom tăt','tom tat'],
149
+ 'hiền lành': ['hiền lanh','hiên lành','hiên lanh','hien lành','hien lanh'],
150
+ 'tận tụy': ['tận tuy','tân tụy','tân tuy','tan tụy','tan tuy'],
151
+ ' vui vẻ ': [' vui ve ',' vui vee ',' vui vẻe ',' vui vẻee '],
152
+ 'hòa đồng': ['hòa đông','hòa đong','hòa dong','hoa đồng','hoa đông','hoa đong','hoa dong'],
153
+ 'thường xuyên': ['thường xuyen','thương xuyên','thương xuyen','thuong xuyên','thuong xuyen'],
154
+ 'khó chịu': ['khó chiu','kho chịu','khó chiệu','kho chiu'],
155
+ 'cơ sở': ['cơ sỏ','cơ sơ','co sở','co sỏ','co so','cơ sỡ','co sỡ'],
156
+ 'vật chất': ['vật chât','vật chát','vật chat','vât chất','vât chât','vât chát','vât chat','vat chất','vat chât','vat chát','vat chat'],
157
+ 'hấp dẫn': ['hấp dẩn','hấp dân','hấp dan','hâp dẫn','hâp dân','hâp dan','háp dẫn','háp dân','háp dan','hap dẫn','hap dân','hap dan'],
158
+ ' trẻ trung ': [' tre trung ',' trẽ trung ',' trẻ trun ',' trẽ trun '],
159
+ 'dạy tệ': ['dạy tê','dạy te','day tệ','day tê','day te'],
160
+ 'quá tệ': ['quá tê','quá te','qua tệ','qua tê','qua te'],
161
+ 'tích cực': ['tích cưc','tích cục','tích cuc','tich cực','tich cưc','tich cục','tich cuc'],
162
+ 'tiêu cực': ['tiêu cưc','tiêu cục','tiêu cuc','tieu cực','tieu cưc','tieu cục','tieu cuc'],
163
+ 'hiệu quả': ['hiệu qua','hiêu quả','hiêu qua','hieu quả','hieu qua'],
164
+ 'khô khan': ['khô khán','khô khàn','khô khản','khô khạn'],
165
+ 'cụ thể': ['cụ thê','cụ thẻ','cụ the','cu thể','cu thê','cu thẻ','cu the'],
166
+ 'lôi cuốn': ['lôi cuôn','lôi cuón','loi cuốn','loi cuôn','loi cuon'],
167
+ 'hỗ trợ': ['hồ trợ','hỗ trơ','hỗ tro','hổ trợ','hô trợ','hô trơ','hô tro','ho trợ','ho trơ','ho tro'],
168
+ 'soạn thảo': ['soản thảo','soạn thao','soan thảo','soan thao'],
169
+ 'theo dõi': ['theo giỏi','theo giõi','theo gioi','theo doi','theo dỏi'],
170
+ 'tự luận': ['tự luân','tự luạn','tự luan','tư luận','tư luân','tư luan','tu luận','tu luân','tu luận'],
171
+ 'đôi lúc': ['đội lúc','đội luc','đôi luc','đoi lúc','đoi luc','doi lúc','doi luc'],
172
+ 'đôi khi': ['đoi khi','doi khi'],
173
+ 'cập nhật': ['cập nhât','cập nhạt','cập nhat','câp nhật','câp nhạt','câp nhat','cap nhật','cap nhât','cap nhạt','cap nhat'],
174
+ 'tài liệu': ['tài liêu','tài liẹu','tài lieu','tai liệu','tai liêu','tai liẹu','tai lieu'],
175
+ 'ý kiến': ['y kiến','y kiên','y kien','ý kiên','ý kien'],
176
+ 'so với': ['so vời','so vơi','so voi','so vói','so vòi'],
177
+ 'cần dành': ['cần giành','can danh'],
178
+ 'hòa hợp': ['hóa hợp','hòa hơp','hòa hop','hoa hợp','hoa hơp','hoa hop'],
179
+ 'phương pháp':['phương phap','phuong pháp','phuong phap'],
180
+ 'bổ ích': ['bổ ich','bổ ít','bô ích','bô ich','bo ích','bo ich'],
181
+ ' dạy chán ': [' dạy chan ',' day chán ',' day chan ',' dạy cháng ',' dạy chang ',' day cháng '],
182
+ 'môn học': ['môn hoc','môn hóc','mon học','mon hóc','mon hoc'],
183
+ ' tuyệt vời ': [' tuyệt vơi ',' tuyệt vòi ',' tuyệt voi ',' tuyêt vời ',' tuyêt vơi ',' tuyêt vòi ',' tuyêt voi ',' tuyet vời ',' tuyet vơi ',' tuyet voi ',' tuỵt vời ',' tuỵt vơi ',' tuỵt vòi ',' tuỵt voi ',' tuyt vời ',' tuyt vơi ',' tuyt vòi ',' tuyệt dời ',' tuyệt dơi ',' tuyet doi '],
184
+ ' thời gian ': [' thời giang ',' thơi gian ',' thoi gian '],
185
+ 'tuy nhiên': ['tuy nhien','tuy nhiến','tuy nhiền','tuy nhiển','tuy nhiện','tuy nhién','tuy nhièn','tuy nhiẻn','tuy nhiẽn','tuy nhiẹn'],
186
+ 'cung cấp': ['cung câp','cung cap','cung cắp','cung căp','cung cáp'],
187
+ 'phòng học': ['phòng hoc','phòng hóc','phong học','phong hoc','phong hóc'],
188
+ 'xem xét': ['xem xet','xem set','xem sét','sem xét','sem xet','sem set','sem sét'],
189
+ 'vui tính': ['vui tình','vui tỉnh','vui tĩnh','vui tịnh','vui tinh'],
190
+ 'khả năng': ['khả nang','khả nâng','kha nâng','kha năng','kha nang','khã năng','khã nâng','khã nang'],
191
+ 'chu đáo': ['chu đao','chu đạo','chu đảo','chu đào','chu đão','chu dao'],
192
+ 'đề nghị': ['đề nghi','đê nghị','đê nghi','đe nghị','đe nghi','de nghị','de nghi'],
193
+ 'dạy ổn': ['dạy ôn','dạy on','day ổn','day ôn','day on'],
194
+ ' lan man ': [' lan mang ',' lang man ',' lang mang '],
195
+ 'lớp học': ['lớp hoc','lớp hóc','lơp học','lơp hóc','lơp hoc','lop hóc','lop học','lop hoc'],
196
+ 'bài thi': ['bai thi','bái thi','bải thi','bãi thi','bại thi'],
197
+ 'bài học': ['bài hoc','b��i hóc','bai học','bai hóc','bai hoc'],
198
+ 'làm biếng': ['làm biêng','làm bieng','lam biếng','lam biêng','lam bieng'],
199
+ 'cực kì': ['cực ki','cưc kì','cưc ki','cuc kì','cuc ki','cực ky','cưc kỳ','cưc ky','cuc kỳ','cuc ky'],
200
+ 'thân thiện': ['thân thiên','thân thiẹn','thân thien','than thiện','than thiên','than thiẹn','than thien'],
201
+ 'diễn đạt': ['diễn đat','diễn dạt','diễn dat','diên đạt','diên đat','diên dạt','diên dat','dien đạt','dien đat','dien dạt','dien dat'],
202
+ 'gì đâu': ['gì đau','gì dau','gi đâu','gi đau','gi dau','gí đâu','gí đau','gí dau','j đâu','j đau','j dau'],
203
+ 'thông báo': ['thông bao','thong báo','thong bao','thông bào','thông bảo','thông bão','thong bào','thong bảo','thong bão'],
204
+ 'thích thú': ['thích thu','thích thù','thích thủ','thích thũ','thích thụ','thich thu','thich thù','thich thủ','thich thũ','thich thụ'],
205
+ 'xứng đáng': ['xứng đang','xứng dáng','xứng dang','xưng đáng','xưng đang','xưng dáng','xưng dang','xung đáng','xung đang','xung dáng','xung dang'],
206
+ 'đa dạng': ['đa dang','da dạng','da dang','đa dảng','đa dãng','da dảng','da dãng'],
207
+ 'liên hệ': ['liên hê','liên hẹ','liên he','lien hệ','lien hê','lien hẹ','lien he'],
208
+ 'lý thuyết': ['lý thuyêt','lý thuýet','lý thuyet','ly thuyết','ly thuyêt','ly thuýet','ly thuyet','lí thuyêt','lí thuýet','lí thuyet','li thuyết','li thuyêt','li thuýet','li thuyet'],
209
+ 'vô cùng': ['vô cung','vo cùng','vo cung'],
210
+ 'ý nghĩa': ['ý nghia','ý nghía','ý nghìa','ý nghỉa','ý nghịa','y nghĩa','y nghia','y nghía','y nghìa','y nghỉa','y nghịa'],
211
+ 'cơ hội': ['cơ hôi','cơ hối','cơ hồi','cơ hổi','cơ hỗi','co hội','co hôi','co hối','co hồi','co hổi','co hỗi','cơ hoi','cơ họi','co hoi'],
212
+ 'thú vị': ['thú vi','thu vị','thu vi'],
213
+ 'thuận tiện': ['thuận tiên','thuận tien','thuân tiện','thuân tiên','thuân tien','thuan tiện','thuan tiên','thuan tien'],
214
+ 'trình bày': ['trình bay','trình báy','trình bảy','trình bãy','trình bạy','trinh bày','trinh báy','trinh bảy','trinh bãy','trinh bạy','trinh bay'],
215
+ ' vận dụng ': [' vận dụn ',' vận dung ',' vân dụng ',' vân dung ',' van dụng ',' van dung '],
216
+ 'hạn hẹp': ['hạn hep','han hẹp','han hep'],
217
+ 'tương tác': ['tương tac','tuong tác','tuong tac'],
218
+ 'buồn ngủ': ['buồn ngu','buồn ngũ','buồn ngụ','buồn ngú','buôn ngủ','buôn ngu','buôn ngũ','buôn ngụ','buôn ngú','buon ngủ','buon ngu','buon ngũ','buon ngụ','buon ngú'],
219
+ 'trao đổi': ['trao đôi','trao đỏi','trao đoi','trao đỗi','trao dỏi','trao dõi','trao doi'],
220
+ 'kĩ năng': ['kĩ nang','ki năng','ki nang','kỉ năng','kỉ nang','kỹ nang','ky năng','ky nang','kỷ năng','kỷ nang'],
221
+ 'trình độ': ['trình đô','trình đọ','trình đo','trình do','trinh độ','trinh đô','trinh đọ','trinh đo','trinh do'],
222
+ 'sư phạm': ['sư pham','su phạm','su pham'],
223
+ ' hăng say ': [' hăn say ',' hang say '],
224
+ 'câu hỏi': ['câu hõi','câu hoi','câu họi','cau hỏi','cau hõi','cau hoi','cau họi'],
225
+ ' thời khóa biểu ': [' thời khóa biễu ',' thơi khoa biêu ',' thoi khoa bieu ',' tkb '],
226
+ ' ứng dụng ': [' ứng dụn ',' ứn dụng ',' ứn dụn ',' ứng dung ',' ưng dụng ',' ưng dung ',' ung dụng '],
227
+ 'tương đối': ['tương đôi','tương đói','tương doi','tuong đối','tuong đôi','tuong đói','tuong doi'],
228
+ 'cải thiện': ['cải thiên','cải thiẹn','cải thien','cãi thiện','cãi thiên','cãi thiẹn','cãi thien','cai thiện','cai thiên','cai thiẹn','cai thien'],
229
+ 'chương trình': ['chương trinh','chuong trình','chuong trinh'],
230
+
231
+ #-----------------------------------------------------------------------------------------------------#
232
+
233
+ # Từ đơn:
234
+
235
+ ' về ': [' vê ',' dề ',' dềe ',' vềe ',' vềee ',' vè ',' vèe '],
236
+ ' ngành ': [' nganh ',' ngánh ',' ngảnh ',' ngãnh ',' ngạnh ',' nghành '],
237
+ ' được ': [' đươc ',' dc ',' dcc ',' dccc ',' đc ',' đcc ',' đccc ',' duoc ',' đuoc '],
238
+ ' chỗ ': [' chổ ',' chỗo '],
239
+ ' nè ': [' nà ',' nèe ',' nèee ',' nèeee '],
240
+ ' dễ ': [' de2 ',' dễe ',' dể ',' deef '],
241
+ ' có ' : [' co ',' cóo ',' cóoo ',' cóooo ', ' cóa ',' cóaa ',' cóaaa ', ' cóaaaa ',' coa '],
242
+ ' giảng ' : [' giảnh ',' giang ',' giãng '],
243
+ ' giờ ': [' giời ',' gờ ',' h ',' dờ '],
244
+ ' dạy ': [' giạy ',' dậy học ',' day '],
245
+ ' thêm ': [' them '],
246
+ ' bằng ': [' bắng ',' bang '],
247
+ ' gì ': [' gi ',' gí ',' j ',' jj ',' jjj '],
248
+ ' không ': [' k ',' ko ',' koo ',' kooo ',' khom ',' khomm ',' khum ',' khumm ',' hong ',' hongg ',' honggg ',' hông ',' hôngg ',' hônggg ',' khong ',' khongg ',' khonggg '],
249
+ ' rất ': [' rắt ',' rât ',' rat '],
250
+ ' sao ': [' saoooo ',' xao ',' saoo ',' saooo ',' s '],
251
+ ' vậy ': [' z ',' zz ',' dãy ',' dãyy ',' dãyyy ',' d ',' vay ',' vayy ',' vayyy ',' zay ',' zayy ',' zayyy ',' v '],
252
+ ' rõ ': [' rỏ ',' rõo ',' rõoo '],
253
+ ' dẫn ': [' dẩn ',' dẩnn ',' dẩnnn ',' dẫnn ',' dẫnnn '],
254
+ ' nhiều ': [' nhìu ',' nhìuu ',' nhìuuu ',' nhiềuu ',' nhiềuuu '],
255
+ ' cũng ': [' cũn ',' cũm ',' cx ',' cũngg ',' cũnggg '],
256
+ ' luôn ': [' luon ',' luônn ',' luônnn '],
257
+ ' buổi ': [' buôi ',' buối ',' buội ',' buỗi ',' buoi ',' bủi ',' bũi '],
258
+ ' tốt ': [' tôt ',' tôtt ',' tot ',' tott ',' tốtt ',' tốttt '],
259
+ ' đỉnh ': [' đink ',' đinkk ',' đĩnh ',' đĩnhh ',' dink ',' dinkk ',' đỉnhh ',' đỉnhhh '],
260
+ ' hay ': [' hayy ',' hayyy ',' hayyyy '],
261
+ ' nhưng ': [' nhưn ',' nhung '],
262
+ ' biết ': [' biêt ',' biêtt ',' biêttt ',' bik ',' bikk ',' bikkk ',' bit ',' bít ',' bítt ',' bíttt ',' biếtt ',' biếttt ',' pit ',' pít ',' pítt ',' píttt '],
263
+ ' rồi ': [' rùi ',' rùii ',' ròi ',' ròii ',' rầu ',' rầuu ',' gòi ',' gòii ',' rồii ',' rồiii ',' r '],
264
+ ' dở ': [' dởo ',' dỏm ',' dỏmm ',' dõm ',' dõmm ',' do '],
265
+ ' tệ ': [' cùi bắp ',' cùi mía ',' cùi ',],
266
+ ' cách ': [' cạch ',' cach '],
267
+ ' đúng ': [' đung ',' đún ',' đúm ',' đúngg ',' đúnggg '],
268
+ ' thôi ': [' thoi ',' thoii ',' thoiii ',' thoiiii ',' thoai ',' thoaii ',' thoaiii ',' thoaiiii ',' hoi ',' hoii ',' hoiii ',' hoiiii ',' thui ',' thuii ',' thuiii ',' thuiiii ',' thâu ',' thâuu ',' thâuuu ',' thâuuuu ',' thou ',' thouu ',' thouuu ',' thouuuu '],
269
+ ' ngủ ': [' ngu ',' ngu3 ',' ngủu ',' ngủuu '],
270
+ ' tuyệt ': [' tuyệt ',' tuỵt ',' tuyệtt ',' tuyệttt ',' tuyet '],
271
+ ' với ': [' vs ',' vớii ',' vớiii ',' dới ',' dớii ',' dớiii '],
272
+ ' hoài ': [' quài ',' quàii ',' quàiii ',' hoàii ',' hoàiii '],
273
+ ' trời ': [' xời ',' xờii ',' xờiii ',' trờii ',' trờiii ',' troi ',' tr '],
274
+ ' trường ': [' trương ',' truong '],
275
+ ' lớp ': [' lop ',' lơp '],
276
+ ' như ': [' nhu ',' nhưu '],
277
+ ' giỏi ': [' gioi ',' giói ',' giòi ',' giõi ',' giọi '],
278
+ ' cao ': [' kao ',' caoo ',' kaoo '],
279
+ ' hết ': [' het ',' hêt ',' hếtt '],
280
+ ' nữa ': [' nưa ',' nựa ',' nx ',' nữaa ',' nữaaa '],
281
+ ' điểm ': [' điêm ',' điem ',' diem '],
282
+ ' giữa ': [' giưa ', ' giua '],
283
+ ' giúp ': [' giup ',' giụp '],
284
+ ' thầy ': [' thày ']
285
+ }
286
+
287
+ translate_dict = {
288
+ ' bài trình chiếu ': [' slide ','slides'],
289
+ ' đầy đủ ': [' full '],
290
+ ' hội thảo ': [' seminar '],
291
+ ' thời hạn ': [' deadline ','deadlines', ' dealine ',' dl ',' dline '],
292
+ ' kiểm tra ': [' test ','tests',' check ','checks'],
293
+ ' tổng quan ': [' overview '],
294
+ ' được ': [' ok ',' oke ',' okela ',' okelaa ','okelaaa',' okay ',' okee ','okeee',' oki ',' okii ','okiii'],
295
+ ' bộ dụng cụ ': [' kit '],
296
+ ' thực hành ': [' lab '],
297
+ ' đăng tải ' : [' post ',' up '],
298
+ ' tải lên ' : [' upload ','uploads'],
299
+ ' chủ đề ' :[' topic '],
300
+ ' bài học ' : [' unit ','units'],
301
+ ' trò chơi ' :[' game ','games'],
302
+ ' phần mềm ' : [' wireshark ', ' silverlight ',' proteus '],
303
+ ' sao chép ' :[' copy ',' copies ','copys'],
304
+ ' dán ' : [' paste ','pastes'],
305
+ ' tệp ' : [' file ','files'],
306
+ ' giao diện ' : [' console ',' win form '],
307
+ ' mô hình ứng dụng ' : [' pattern serverside ',' lập tình windows ',' lập trình window ',' lập trình windows '],
308
+ ' lập trình hướng đối tượng ' : [' oop ',' java '],
309
+ ' ngôn ngữ lập trình ' : [' prolog '],
310
+ ' trang mạng ' :[' web ',' webs ',' wed ', ' website ','websites',' progressive web app ',' web app ',' web apps ',' webs app ',' webs apps ',' amp ',' seo '],
311
+ ' sách điện tử ': [' ebook ','ebooks', ' e-book ','e-books'],
312
+ ' công ty ' : [' altera '],
313
+ ' ngôn ngữ truy vấn ' : [' sql '],
314
+ ' dự án ': [' project ',' proj '],
315
+ ' chia sẻ ': [' share '],
316
+ ' cập nhật ': [' update '],
317
+ ' công nghệ thông tin ': [' it '],
318
+ ' trả lời ': ['reply',' rep '],
319
+ ' không ': [' nope ',' no ',' not '],
320
+ ' tiếng anh ': [' english ',' engrisk ',' englisk ',' eng '],
321
+ ' là ': [ ' is ',' are ',' was ',' were '],
322
+ ' rất ': [' very '],
323
+ ' tốt ': [' good ',' gud ',' gút ',' gut ',' gudd ',' best ',' the best ',' bestt ','besttt'],
324
+ ' khóa học ': [' courses ',' crs ',' course ',' coursera ','courseras'],
325
+ ' trình bày thử ': [' demo '],
326
+ ' hoàn hảo ': [' perfect ',' perf ','perfection'],
327
+ ' nhắn tin ': [' chat ',' chats ',' ib ',' inbox ',' ibox ',' chitchat ',' chatting '],
328
+ ' tư duy ': [' logic ','logics'],
329
+ ' nộp ': [' submit '],
330
+ ' trẻ trung ': [' teen '],
331
+ ' ngoài trời ' : [' outdoor ','outdoors'],
332
+ ' hoạt động ': [' activity ', ' activities '],
333
+ ' vui ' :[' funny ', ' fun ','funnys','funnies'],
334
+ ' hệ điều hành ' : [' linux ',' windows ', ' win server '],
335
+ ' góp ý ' : [' feed back ',' feed backs ',' feedback ',' feedbacks '],
336
+ ' phương pháp học tập ' : [' projectbase ','projectbases',' project-base ','project-bases'],
337
+ ' nhóm ' : [' team ',' group '],
338
+ ' dễ thương ' : [' cute ',' cutee ','cuteee'],
339
+ ' đào tạo ' : [' train ','trains',' training ','trainings','trained'],
340
+ ' thích ' : [' like ','likes'],
341
+ ' thất bại ' : ['failse',' fail ','failed',' fails '],
342
+ ' ông chủ ' : [' boss ','bosses'],
343
+ ' phòng trò chuyện ' : [' chat room ','chat rooms'],
344
+ ' thêm ' : [' add ','addition'],
345
+ ' tên ' : [' name ','names'],
346
+ ' kích cỡ ' : [' size ','sizes'],
347
+ ' thiết kế phần mềm ' : [' design pattern ',' design patterns ',' designs pattern ',' designs patterns '],
348
+ ' sơ đồ luồng dữ liệu ' : [' dfd '],
349
+ ' phiên bản ' : [' version ',' versions '],
350
+ ' vi mạch tích hợp ' : [' nfc ',' NearField Communication ',' NearField Communications ',' Near-Field Communication ', ' Near-Field Communications '],
351
+ ' dễ ' : [' easy ',' ez ',' easies ',' easys '],
352
+ 'từng bước một' : ['step by step','steps by steps','steps by step','step by steps'],
353
+ ' quá giờ ': [' over time ',' over times ',' overtime ',' overtimes '],
354
+ ' buổi thuyết trình ': [' buổi present ',' buổi presents ',' presentation ',' presentations '],
355
+ ' thuyết trình ': [' present ',' presents '],
356
+ ' tải ': [' down ',' downs ',' download ',' downloads '],
357
+ ' phong cách ': [' style ',' styles '],
358
+ ' cực kì ': [' max ',' maxx ',' maxxx '],
359
+ ' cấp độ ': [' level ',' levels ',' lv '],
360
+ ' bình luận ': [' comment ',' comments ',' cmt ',' cmts '],
361
+ ' sách giáo khoa ': [' textbook ',' textbooks ',' book ',' books '],
362
+ ' cơ bản ': [' basic ',' basics '],
363
+ ' phản biện ': [' debate ',' debates '],
364
+ ' trả lời tin nhắn ': [' rep mail ',' rep mails ',' reply mail ',' reply mails '],
365
+ ' nhắn tin ': [' mail ',' mails '],
366
+ ' đỉnh ': [' pro ',' proo ',' prooo ',' vip ',' vipp ',' vippp '],
367
+ ' bỏ phiếu ': [' vote ',' votes ']
368
+ }
369
+
370
+
371
+
372
+ number_dict = {
373
+ '0%': 'không phần trăm',
374
+ '5%': 'năm phần trăm',
375
+ '10%': 'mười phần trăm',
376
+ '15%': 'mười lăm phần trăm',
377
+ '20%': 'hai mươi phần trăm',
378
+ '25%': 'hai mươi lăm phần trăm',
379
+ '30%': 'ba mươi phần trăm',
380
+ '35%': 'ba mươi lăm phần trăm',
381
+ '40%': 'bốn mươi phần trăm',
382
+ '45%': 'bốn mươi lăm phần trăm',
383
+ '50%': 'năm mươi phần trăm',
384
+ '55%': 'năm mươi lăm phần trăm',
385
+ '60%': 'sáu mươi phần trăm',
386
+ '65%': 'sáu mươi lăm phần trăm',
387
+ '70%': 'bảy mươi phần trăm',
388
+ '75%': 'bảy mươi lăm phần trăm',
389
+ '80%': 'tám mươi phần trăm',
390
+ '85%': 'tám mươi lăm phần trăm',
391
+ '90%': 'chín mươi phần trăm',
392
+ '95%': 'chín mươi lăm phần trăm',
393
+ '100%': 'trăm phần trăm',
394
+
395
+
396
+
397
+ '0': 'không',
398
+ '1': 'một',
399
+ '2': 'hai',
400
+ '3': 'ba',
401
+ '4': 'bốn',
402
+ '5': 'năm',
403
+ '6': 'sáu',
404
+ '7': 'bảy',
405
+ '8': 'tám',
406
+ '9': 'chín',
407
+ '10': 'mười',
408
+ '11': 'mười một',
409
+ '12': 'mười hai',
410
+ '13': 'mười ba',
411
+ '14': 'mười bốn',
412
+ '15': 'mười lăm',
413
+ '16': 'mười sáu',
414
+ '17': 'mười bảy',
415
+ '18': 'mười tám',
416
+ '19': 'mười chín',
417
+ '20': 'hai mươi',
418
+ '21': 'hai mươi mốt',
419
+ '22': 'hai mươi hai',
420
+ '23': 'hai mươi ba',
421
+ '24': 'hai mươi bốn',
422
+ '25': 'hai mươi lăm',
423
+ '26': 'hai mươi sáu',
424
+ '27': 'hai mươi bảy',
425
+ '28': 'hai mươi tám',
426
+ '29': 'hai mươi chín',
427
+ '30': 'ba mươi',
428
+ '31': 'ba mươi mốt',
429
+ '32': 'ba mươi hai',
430
+ '33': 'ba mươi ba',
431
+ '34': 'ba mươi bốn',
432
+ '35': 'ba mươi lăm',
433
+ '36': 'ba mươi sáu',
434
+ '37': 'ba mươi bảy',
435
+ '38': 'ba mươi tám',
436
+ '39': 'ba mươi chín',
437
+ '40': 'bốn mươi',
438
+ '41': 'bốn mươi mốt',
439
+ '42': 'bốn mươi hai',
440
+ '43': 'bốn mươi ba',
441
+ '44': 'bốn mươi bốn',
442
+ '45': 'bốn mươi lăm',
443
+ '46': 'bốn mươi sáu',
444
+ '47': 'bốn mươi bảy',
445
+ '48': 'bốn mươi tám',
446
+ '49': 'bốn mươi chín',
447
+ '50': 'năm mươi',
448
+ '51': 'năm mươi mốt',
449
+ '52': 'năm mươi hai',
450
+ '53': 'năm mươi ba',
451
+ '54': 'năm mươi bốn',
452
+ '55': 'năm mươi lăm',
453
+ '56': 'năm mươi sáu',
454
+ '57': 'năm mươi bảy',
455
+ '58': 'năm mươi tám',
456
+ '59': 'năm mươi chín',
457
+ '60': 'sáu mươi',
458
+ '61': 'sáu mươi mốt',
459
+ '62': 'sáu mươi hai',
460
+ '63': 'sáu mươi ba',
461
+ '64': 'sáu mươi bốn',
462
+ '65': 'sáu mươi lăm',
463
+ '66': 'sáu mươi sáu',
464
+ '67': 'sáu mươi bảy',
465
+ '68': 'sáu mươi tám',
466
+ '69': 'sáu mươi chín',
467
+ '70': 'bảy mươi',
468
+ '71': 'bảy mươi mốt',
469
+ '72': 'bảy mươi hai',
470
+ '73': 'bảy mươi ba',
471
+ '74': 'bảy mươi bốn',
472
+ '75': 'bảy mươi lăm',
473
+ '76': 'bảy mươi sáu',
474
+ '77': 'bảy mươi bảy',
475
+ '78': 'bảy mươi tám',
476
+ '79': 'bảy mươi chín',
477
+ '80': 'tám mươi',
478
+ '81': 'tám mươi mốt',
479
+ '82': 'tám mươi hai',
480
+ '83': 'tám mươi ba',
481
+ '84': 'tám mươi bốn',
482
+ '85': 'tám mươi lăm',
483
+ '86': 'tám mươi sáu',
484
+ '87': 'tám mươi bảy',
485
+ '88': 'tám mươi tám',
486
+ '89': 'tám mươi chín',
487
+ '90': 'chín mươi',
488
+ '91': 'chín mươi mốt',
489
+ '92': 'chín mươi hai',
490
+ '93': 'chín mươi ba',
491
+ '94': 'chín mươi bốn',
492
+ '95': 'chín mươi lăm',
493
+ '96': 'chín mươi sáu',
494
+ '97': 'chín mươi bảy',
495
+ '98': 'chín mươi tám',
496
+ '99': 'chín mươi chín',
497
+ '100': 'một trăm'
498
+ }
499
+
500
+ # Từ đơn: 50 từ
501
+ # Từ phức: 163 từ
Model_API/Model/load_data.py ADDED
@@ -0,0 +1,167 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from .config_train import *
2
+
3
+ with open(DEFAULT_TEXT_ANNOTATION_FILE, 'r', encoding='utf-8') as file:
4
+ data = json.load(file)
5
+
6
+ # Prepare sentences and labels
7
+ sentences = [item[0] for item in data["annotations"]]
8
+ """
9
+ List[str]: A list of sentences extracted from the dataset.
10
+ Each sentence corresponds to an annotation in the dataset.
11
+ """
12
+
13
+ labels = [item[1]['entities'] for item in data["annotations"]]
14
+ """
15
+ List[List[Tuple[str, str]]]: A list of entity labels for each sentence.
16
+ Each label is a tuple containing the entity text and its corresponding tag.
17
+ """
18
+
19
+ # Define tags
20
+ tags = data["classes"]
21
+ """
22
+ List[str]: A list of all possible entity tags (classes) in the dataset.
23
+ These tags will be used to label the tokens in each sentence.
24
+ """
25
+
26
+ # Convert tags to indices
27
+ tag2idx = {tag: 0 for idx, tag in enumerate(tags)}
28
+ for label in labels:
29
+ for entity in label:
30
+ tag2idx[entity[1]] = tag2idx[entity[1]] + 1
31
+ # Sort the dictionary by values
32
+ sorted_tags = dict(sorted(tag2idx.items(), key=lambda item: item[1],reverse=True))
33
+ sorted_tags = {key: value for key, value in sorted_tags.items() if value != 0}
34
+
35
+ new_tag = {'<pad>': 0}
36
+
37
+ sorted_tags = {**new_tag, **sorted_tags}
38
+
39
+ # Convert tags to indices
40
+ tag2idx = {tag: idx for idx, tag in enumerate(list(sorted_tags.keys()))}
41
+ """
42
+ Dict[str, int]: A dictionary mapping each tag to a unique index.
43
+ This is used to convert tag labels into numerical format for model training.
44
+ """
45
+
46
+ # Count the occurrences of each tag
47
+ tag_counts = defaultdict(int)
48
+ for item in data["annotations"]:
49
+ for entity in item[1]["entities"]:
50
+ tag_counts[entity[1]] += 1
51
+
52
+ # Create a list of annotations for each tag
53
+ tag_annotations = defaultdict(list)
54
+ for item in data["annotations"]:
55
+ for entity in item[1]["entities"]:
56
+ tag_annotations[entity[1]].append(item)
57
+
58
+ # Split the annotations for each tag into training and testing sets
59
+ train_annotations = []
60
+ test_annotations = []
61
+ for tag, annotations in tag_annotations.items():
62
+ random.shuffle(annotations)
63
+ split_point = len(annotations) // 2
64
+ train_annotations.extend(annotations[:split_point])
65
+ test_annotations.extend(annotations[split_point:])
66
+
67
+ # Prepare training and testing datasets
68
+ sentences_train = [item[0] for item in train_annotations]
69
+ sentences_test = [item[0] for item in test_annotations]
70
+ labels_train = [item[1]['entities'] for item in train_annotations]
71
+ labels_test = [item[1]['entities'] for item in test_annotations]
72
+
73
+ # Encode the sentences and labels into input IDs and tag IDs
74
+ input_ids_train = []
75
+ tag_ids_train = []
76
+ for index in range(len(sentences_train)):
77
+ input_ids = tokenizer.encode(sentences_train[index]) # Tokenize the sentence
78
+ input_ids_train.append(input_ids)
79
+
80
+ tag_ids = [0 for ids in input_ids] # Initialize tag IDs with padding
81
+ for labels in labels_train[index]:
82
+ key_ids = tokenizer.encode(labels[0]) # Encode entity text
83
+ for ids in key_ids[1:len(key_ids)-1]:
84
+ ids = input_ids.index(ids) # Find the index of the token
85
+ tag_ids[ids] = tag2idx[labels[1]] # Assign tag ID
86
+ tag_ids_train.append(tag_ids)
87
+
88
+ input_ids_test = []
89
+ tag_ids_test = []
90
+ for index in range(len(sentences_test)):
91
+ input_ids = tokenizer.encode(sentences_test[index]) # Tokenize the sentence
92
+ input_ids_test.append(input_ids)
93
+
94
+ tag_ids = [0 for ids in input_ids] # Initialize tag IDs with padding
95
+ for labels in labels_test[index]:
96
+ key_ids = tokenizer.encode(labels[0]) # Encode entity text
97
+ for ids in key_ids[1:len(key_ids)-1]:
98
+ ids = input_ids.index(ids) # Find the index of the token
99
+ tag_ids[ids] = tag2idx[labels[1]] # Assign tag ID
100
+ tag_ids_test.append(tag_ids)
101
+
102
+
103
+ """
104
+ padded torch.Tensor: A padded tensor of tag IDs for the training set.
105
+ All tag sequences are padded to the same length as their corresponding token sequences.
106
+ """
107
+ # Pad sequences
108
+ padded_input_ids_train = pad_sequence([torch.tensor(ids) for ids in input_ids_train], batch_first=True, padding_value=0)
109
+ # Convert to tensor
110
+ input_ids_train= padded_input_ids_train.clone().detach()
111
+
112
+ # Pad sequences
113
+ padded_input_ids_test = pad_sequence([torch.tensor(ids) for ids in input_ids_test], batch_first=True, padding_value=0)
114
+ # Convert to tensor
115
+ input_ids_test= padded_input_ids_test.clone().detach()
116
+
117
+ # Pad sequences
118
+ padded_tag_ids_train = pad_sequence([torch.tensor(ids) for ids in tag_ids_train], batch_first=True, padding_value=0)
119
+
120
+ # Convert to tensor
121
+ tag_ids_train= padded_tag_ids_train.clone().detach()
122
+
123
+ # Pad sequences
124
+ padded_tag_ids_test = pad_sequence([torch.tensor(ids) for ids in tag_ids_test], batch_first=True, padding_value=0)
125
+
126
+ # Convert to tensor
127
+ tag_ids_test= padded_tag_ids_test.clone().detach()
128
+
129
+ # Find the maximum sequence length
130
+ max_length = max(padded_input_ids_train.size(1), padded_input_ids_train.size(1), padded_tag_ids_train.size(1), padded_tag_ids_test.size(1))
131
+ # Pad input_ids and tag_ids to have the same length
132
+ padded_input_ids_train = torch.nn.functional.pad(padded_input_ids_train, (0, max_length - padded_input_ids_train.size(1)), value=tokenizer.pad_token_id)
133
+ padded_input_ids_test = torch.nn.functional.pad(padded_input_ids_test, (0, max_length - padded_input_ids_test.size(1)), value=tokenizer.pad_token_id)
134
+ padded_tag_ids_train = torch.nn.functional.pad(padded_tag_ids_train, (0, max_length - padded_tag_ids_train.size(1)), value=0)
135
+ padded_tag_ids_test = torch.nn.functional.pad(padded_tag_ids_test, (0, max_length - padded_tag_ids_test.size(1)), value=0)
136
+
137
+ # Convert to tensor
138
+ input_ids_train = padded_input_ids_train.clone().detach()
139
+ tag_ids_train = padded_tag_ids_train.clone().detach()
140
+
141
+ input_ids_test = padded_input_ids_test.clone().detach()
142
+ tag_ids_test = padded_tag_ids_test.clone().detach()
143
+
144
+ """
145
+ Mask torch.Tensor: A tensor containing the attention masks.
146
+ This tensor indicates which tokens are real and which are padding.
147
+ """
148
+ attention_masks_train = torch.tensor([[1.0 if i != tokenizer.pad_token_id and i!= tokenizer.cls_token_id and i!= tokenizer.sep_token_id else 0 for i in ii] for ii in input_ids_train])
149
+ attention_masks_test = torch.tensor([[1.0 if i != tokenizer.pad_token_id and i!= tokenizer.cls_token_id and i!= tokenizer.sep_token_id else 0 for i in ii] for ii in input_ids_test])
150
+
151
+ # Convert data to PyTorch tensors
152
+ train_inputs = input_ids_train.clone().detach()
153
+ validation_inputs = input_ids_test.clone().detach()
154
+ train_labels = tag_ids_train.clone().detach()
155
+ validation_labels = tag_ids_test.clone().detach()
156
+ train_masks = attention_masks_train.clone().detach()
157
+ validation_masks = attention_masks_test.clone().detach()
158
+
159
+ # Create DataLoader for training data
160
+ train_data = TensorDataset(train_inputs, train_masks, train_labels)
161
+ train_sampler = RandomSampler(train_data)
162
+ train_dataloader = DataLoader(train_data, sampler=train_sampler, batch_size=batch_size)
163
+
164
+ # Create DataLoader for validation data
165
+ validation_data = TensorDataset(validation_inputs, validation_masks, validation_labels)
166
+ validation_sampler = SequentialSampler(validation_data)
167
+ validation_dataloader = DataLoader(validation_data, sampler=validation_sampler, batch_size=batch_size)
Model_API/Model/model.py ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from .config_train import *
2
+ from .load_data import *
3
+
4
+ # Fine-tuning BERT for token classification
5
+ model = BertForTokenClassification.from_pretrained(
6
+ # "bert-base-multilingual-cased",
7
+ pretrain_model_name,
8
+ num_labels=len(tag2idx),
9
+ output_attentions = False,
10
+ output_hidden_states = False
11
+ )
12
+ model.to(device)
13
+
Model_API/Model/model_predict.py ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from .config_train import *
2
+ from .DataProcessing import read_input
3
+ from .load_data import *
4
+
5
+
6
+ class Key_Ner_Predictor:
7
+ def __init__(self, model_path, tokenizer, device, tag_map):
8
+ """
9
+ Initialize the Key_Ner_Predictor with the model, tokenizer, and device.
10
+
11
+ Args:
12
+ model_path (str): Path to the pre-trained model.
13
+ tokenizer (BertTokenizer): Tokenizer to process input sentences.
14
+ device (torch.device): Device to run the model on.
15
+ tag_map (Dict[int, str]): Mapping of indices to tags.
16
+ """
17
+ self.model = BertForTokenClassification.from_pretrained(model_path).to(device)
18
+ self.tokenizer = tokenizer
19
+ self.device = device
20
+ self.tag_map = tag_map
21
+
22
+ def predict(self, sentence):
23
+ """
24
+ Predict the tags for each token in the given sentence.
25
+
26
+ Args:
27
+ sentence (str): Input sentence to predict.
28
+
29
+ Returns:
30
+ Tuple[str, List[str]]: The original sentence and its predicted tags.
31
+ """
32
+ # Process the sentence
33
+ sentence = read_input(sentence)
34
+
35
+ # Tokenize the sentence
36
+ input_ids = self.tokenizer.encode(sentence, return_tensors="pt").to(self.device)
37
+
38
+ # Create attention masks
39
+ attention_masks = (input_ids != self.tokenizer.pad_token_id).float().to(self.device)
40
+
41
+ # Set model to evaluation mode
42
+ self.model.eval()
43
+
44
+ with torch.no_grad():
45
+ # Forward pass
46
+ outputs = self.model(input_ids, token_type_ids=None, attention_mask=attention_masks)
47
+ logits = outputs.logits
48
+
49
+ # Get predicted tags for each token in the sentence
50
+ predicted_tags = torch.argmax(logits, dim=2).cpu().numpy()[0]
51
+
52
+ # Map indices to tags
53
+ predicted_tags = [self.tag_map[idx] for idx in predicted_tags]
54
+ predicted_tags = set(predicted_tags)
55
+ predicted_tags.remove('<pad>')
56
+ predicted_tags = list(predicted_tags)
57
+
58
+ for index in range(len(predicted_tags)):
59
+ predicted_tags[index] = predicted_tags[index].replace(" ", "_")
60
+
61
+ return self.tokenizer.decode(input_ids[0], skip_special_tokens=True), predicted_tags
62
+
63
+
64
+ # Initialize the Key_Ner_Predictor
65
+ predictor = Key_Ner_Predictor(
66
+ model_path=model_load_path,
67
+ tokenizer=tokenizer,
68
+ device=device,
69
+ tag_map=dict(enumerate(sorted_tags))
70
+ )
71
+
72
+ # # Define the sentence to predict
73
+ # sentence = "Tôi muốn đi cắm trại ngắm hoàng hôn trên biển cùng gia đình"
74
+
75
+ # # Get the prediction
76
+ # original_sentence, predicted_tags = predictor.predict(sentence)
77
+
78
+ # # Print the sentence and its predicted tags
79
+ # print("Sentence:", original_sentence)
80
+ # print("Predicted Tags:", predicted_tags)
81
+
Model_API/Model/train.py ADDED
@@ -0,0 +1,182 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from .config_train import *
2
+ from .load_data import *
3
+ from .model import *
4
+
5
+
6
+ class Key_Ner_Training:
7
+ def __init__(self, model, train_dataloader, validation_dataloader, epochs, lr, eps, weight_decay, device, model_saved_path):
8
+ """
9
+ Initializes the Key_Ner_Training with the necessary components for training.
10
+
11
+ Args:
12
+ model (torch.nn.Module): The model to be trained.
13
+ train_dataloader (DataLoader): DataLoader for training data.
14
+ validation_dataloader (DataLoader): DataLoader for validation data.
15
+ epochs (int): Number of training epochs.
16
+ lr (float): Learning rate for the optimizer.
17
+ eps (float): Epsilon value for the optimizer.
18
+ weight_decay (float): Weight decay for the optimizer.
19
+ device (str): Device to run the model on ("cuda" or "cpu").
20
+ model_saved_path (str): Path to save the trained model.
21
+ """
22
+ self.model = model.to(device)
23
+ self.train_dataloader = train_dataloader
24
+ self.validation_dataloader = validation_dataloader
25
+ self.epochs = epochs
26
+ self.device = device
27
+ self.model_saved_path = model_saved_path
28
+
29
+ # AdamW optimizer
30
+ self.optimizer = AdamW(self.model.parameters(), lr=lr, eps=eps, weight_decay=weight_decay)
31
+
32
+ # Total number of training steps
33
+ self.total_steps = len(train_dataloader) * epochs
34
+
35
+ # Learning rate scheduler
36
+ self.scheduler = get_linear_schedule_with_warmup(self.optimizer, num_warmup_steps=0, num_training_steps=self.total_steps)
37
+
38
+ # Metrics
39
+ self.train_losses = []
40
+ self.val_losses = []
41
+ self.train_f1_scores = []
42
+ self.val_f1_scores = []
43
+
44
+ def train(self):
45
+ """Trains the model over the specified number of epochs."""
46
+ for epoch in range(self.epochs):
47
+ print(f'Epoch {epoch + 1}/{self.epochs}')
48
+ print('-' * 10)
49
+
50
+ # Training
51
+ avg_train_loss, train_f1 = self._train_epoch()
52
+ self.train_losses.append(avg_train_loss)
53
+ self.train_f1_scores.append(train_f1)
54
+ print(f'Training loss: {avg_train_loss}, F1-score: {train_f1}')
55
+
56
+ # Validation
57
+ avg_val_loss, val_f1 = self._validate_epoch()
58
+ self.val_losses.append(avg_val_loss)
59
+ self.val_f1_scores.append(val_f1)
60
+ print(f'Validation Loss: {avg_val_loss}, F1-score: {val_f1}')
61
+
62
+ print("Training complete!")
63
+
64
+ # Plot losses and F1 scores
65
+ self._plot_metrics()
66
+
67
+ # Save model
68
+ self.model.save_pretrained(self.model_saved_path)
69
+
70
+ def _train_epoch(self):
71
+ """Runs a single training epoch."""
72
+ self.model.train()
73
+
74
+ total_loss = 0
75
+ train_predictions = []
76
+ train_targets = []
77
+
78
+ train_dataloader_iterator = tqdm(self.train_dataloader, desc="Training")
79
+
80
+ for step, batch in enumerate(train_dataloader_iterator):
81
+ b_input_ids = batch[0].to(self.device)
82
+ b_input_mask = batch[1].to(self.device)
83
+ b_labels = batch[2].to(self.device)
84
+
85
+ self.model.zero_grad()
86
+
87
+ outputs = self.model(b_input_ids, token_type_ids=None, attention_mask=b_input_mask, labels=b_labels)
88
+ loss = outputs.loss
89
+
90
+ total_loss += loss.item()
91
+
92
+ torch.nn.utils.clip_grad_norm_(self.model.parameters(), 1.0)
93
+
94
+ self.optimizer.zero_grad()
95
+ loss.backward()
96
+ self.optimizer.step()
97
+ self.scheduler.step()
98
+
99
+ train_dataloader_iterator.set_postfix({"Loss": loss.item()})
100
+
101
+ logits = outputs.logits
102
+ predictions = torch.argmax(logits, dim=2)
103
+ train_predictions.extend(predictions.cpu().numpy().flatten())
104
+ train_targets.extend(b_labels.cpu().numpy().flatten())
105
+
106
+ avg_train_loss = total_loss / len(self.train_dataloader)
107
+ train_f1 = f1_score(train_targets, train_predictions, average='macro')
108
+
109
+ return avg_train_loss, train_f1
110
+
111
+ def _validate_epoch(self):
112
+ """Runs a single validation epoch."""
113
+ self.model.eval()
114
+
115
+ total_eval_loss = 0
116
+ val_predictions = []
117
+ val_targets = []
118
+
119
+ validation_dataloader_iterator = tqdm(self.validation_dataloader, desc="Validation")
120
+
121
+ for batch in validation_dataloader_iterator:
122
+ b_input_ids = batch[0].to(self.device)
123
+ b_input_mask = batch[1].to(self.device)
124
+ b_labels = batch[2].to(self.device)
125
+
126
+ with torch.no_grad():
127
+ outputs = self.model(b_input_ids, token_type_ids=None, attention_mask=b_input_mask, labels=b_labels)
128
+ loss = outputs.loss
129
+
130
+ total_eval_loss += loss.item()
131
+
132
+ validation_dataloader_iterator.set_postfix({"Loss": loss.item()})
133
+
134
+ logits = outputs.logits
135
+ predictions = torch.argmax(logits, dim=2)
136
+ val_predictions.extend(predictions.cpu().numpy().flatten())
137
+ val_targets.extend(b_labels.cpu().numpy().flatten())
138
+
139
+ avg_val_loss = total_eval_loss / len(self.validation_dataloader)
140
+ val_f1 = f1_score(val_targets, val_predictions, average='macro')
141
+
142
+ return avg_val_loss, val_f1
143
+
144
+ def _plot_metrics(self):
145
+ """Plots training and validation losses and F1 scores."""
146
+ epochs_range = range(1, self.epochs + 1)
147
+
148
+ # Plotting Loss
149
+ plt.figure(figsize=(12, 6))
150
+ plt.plot(epochs_range, self.train_losses, label='Training Loss')
151
+ plt.plot(epochs_range, self.val_losses, label='Validation Loss')
152
+ plt.xlabel('Epochs')
153
+ plt.ylabel('Loss')
154
+ plt.title('Training and Validation Loss')
155
+ plt.legend()
156
+ plt.show()
157
+
158
+ # Plotting F1-score
159
+ plt.figure(figsize=(12, 6))
160
+ plt.plot(epochs_range, self.train_f1_scores, label='Training F1-score')
161
+ plt.plot(epochs_range, self.val_f1_scores, label='Validation F1-score')
162
+ plt.xlabel('Epochs')
163
+ plt.ylabel('F1-score')
164
+ plt.title('Training and Validation F1-score')
165
+ plt.legend()
166
+ plt.show()
167
+
168
+
169
+ # Example usage:
170
+ if __name__ == "__main__":
171
+ trainer = Key_Ner_Training(
172
+ model=model,
173
+ train_dataloader=train_dataloader,
174
+ validation_dataloader=validation_dataloader,
175
+ epochs=epochs,
176
+ lr=lr,
177
+ eps=eps,
178
+ weight_decay=weight_decay,
179
+ device=device,
180
+ model_saved_path=model_saved_path
181
+ )
182
+ trainer.train()
Model_API/Saved_Model/key_ner_new_data_method/config.json ADDED
@@ -0,0 +1,240 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_name_or_path": "vinai/phobert-base-v2",
3
+ "architectures": [
4
+ "BertForTokenClassification"
5
+ ],
6
+ "attention_probs_dropout_prob": 0.1,
7
+ "bos_token_id": 0,
8
+ "classifier_dropout": null,
9
+ "eos_token_id": 2,
10
+ "hidden_act": "gelu",
11
+ "hidden_dropout_prob": 0.1,
12
+ "hidden_size": 768,
13
+ "id2label": {
14
+ "0": "LABEL_0",
15
+ "1": "LABEL_1",
16
+ "2": "LABEL_2",
17
+ "3": "LABEL_3",
18
+ "4": "LABEL_4",
19
+ "5": "LABEL_5",
20
+ "6": "LABEL_6",
21
+ "7": "LABEL_7",
22
+ "8": "LABEL_8",
23
+ "9": "LABEL_9",
24
+ "10": "LABEL_10",
25
+ "11": "LABEL_11",
26
+ "12": "LABEL_12",
27
+ "13": "LABEL_13",
28
+ "14": "LABEL_14",
29
+ "15": "LABEL_15",
30
+ "16": "LABEL_16",
31
+ "17": "LABEL_17",
32
+ "18": "LABEL_18",
33
+ "19": "LABEL_19",
34
+ "20": "LABEL_20",
35
+ "21": "LABEL_21",
36
+ "22": "LABEL_22",
37
+ "23": "LABEL_23",
38
+ "24": "LABEL_24",
39
+ "25": "LABEL_25",
40
+ "26": "LABEL_26",
41
+ "27": "LABEL_27",
42
+ "28": "LABEL_28",
43
+ "29": "LABEL_29",
44
+ "30": "LABEL_30",
45
+ "31": "LABEL_31",
46
+ "32": "LABEL_32",
47
+ "33": "LABEL_33",
48
+ "34": "LABEL_34",
49
+ "35": "LABEL_35",
50
+ "36": "LABEL_36",
51
+ "37": "LABEL_37",
52
+ "38": "LABEL_38",
53
+ "39": "LABEL_39",
54
+ "40": "LABEL_40",
55
+ "41": "LABEL_41",
56
+ "42": "LABEL_42",
57
+ "43": "LABEL_43",
58
+ "44": "LABEL_44",
59
+ "45": "LABEL_45",
60
+ "46": "LABEL_46",
61
+ "47": "LABEL_47",
62
+ "48": "LABEL_48",
63
+ "49": "LABEL_49",
64
+ "50": "LABEL_50",
65
+ "51": "LABEL_51",
66
+ "52": "LABEL_52",
67
+ "53": "LABEL_53",
68
+ "54": "LABEL_54",
69
+ "55": "LABEL_55",
70
+ "56": "LABEL_56",
71
+ "57": "LABEL_57",
72
+ "58": "LABEL_58",
73
+ "59": "LABEL_59",
74
+ "60": "LABEL_60",
75
+ "61": "LABEL_61",
76
+ "62": "LABEL_62",
77
+ "63": "LABEL_63",
78
+ "64": "LABEL_64",
79
+ "65": "LABEL_65",
80
+ "66": "LABEL_66",
81
+ "67": "LABEL_67",
82
+ "68": "LABEL_68",
83
+ "69": "LABEL_69",
84
+ "70": "LABEL_70",
85
+ "71": "LABEL_71",
86
+ "72": "LABEL_72",
87
+ "73": "LABEL_73",
88
+ "74": "LABEL_74",
89
+ "75": "LABEL_75",
90
+ "76": "LABEL_76",
91
+ "77": "LABEL_77",
92
+ "78": "LABEL_78",
93
+ "79": "LABEL_79",
94
+ "80": "LABEL_80",
95
+ "81": "LABEL_81",
96
+ "82": "LABEL_82",
97
+ "83": "LABEL_83",
98
+ "84": "LABEL_84",
99
+ "85": "LABEL_85",
100
+ "86": "LABEL_86",
101
+ "87": "LABEL_87",
102
+ "88": "LABEL_88",
103
+ "89": "LABEL_89",
104
+ "90": "LABEL_90",
105
+ "91": "LABEL_91",
106
+ "92": "LABEL_92",
107
+ "93": "LABEL_93",
108
+ "94": "LABEL_94",
109
+ "95": "LABEL_95",
110
+ "96": "LABEL_96",
111
+ "97": "LABEL_97",
112
+ "98": "LABEL_98",
113
+ "99": "LABEL_99",
114
+ "100": "LABEL_100",
115
+ "101": "LABEL_101",
116
+ "102": "LABEL_102",
117
+ "103": "LABEL_103"
118
+ },
119
+ "initializer_range": 0.02,
120
+ "intermediate_size": 3072,
121
+ "label2id": {
122
+ "LABEL_0": 0,
123
+ "LABEL_1": 1,
124
+ "LABEL_10": 10,
125
+ "LABEL_100": 100,
126
+ "LABEL_101": 101,
127
+ "LABEL_102": 102,
128
+ "LABEL_103": 103,
129
+ "LABEL_11": 11,
130
+ "LABEL_12": 12,
131
+ "LABEL_13": 13,
132
+ "LABEL_14": 14,
133
+ "LABEL_15": 15,
134
+ "LABEL_16": 16,
135
+ "LABEL_17": 17,
136
+ "LABEL_18": 18,
137
+ "LABEL_19": 19,
138
+ "LABEL_2": 2,
139
+ "LABEL_20": 20,
140
+ "LABEL_21": 21,
141
+ "LABEL_22": 22,
142
+ "LABEL_23": 23,
143
+ "LABEL_24": 24,
144
+ "LABEL_25": 25,
145
+ "LABEL_26": 26,
146
+ "LABEL_27": 27,
147
+ "LABEL_28": 28,
148
+ "LABEL_29": 29,
149
+ "LABEL_3": 3,
150
+ "LABEL_30": 30,
151
+ "LABEL_31": 31,
152
+ "LABEL_32": 32,
153
+ "LABEL_33": 33,
154
+ "LABEL_34": 34,
155
+ "LABEL_35": 35,
156
+ "LABEL_36": 36,
157
+ "LABEL_37": 37,
158
+ "LABEL_38": 38,
159
+ "LABEL_39": 39,
160
+ "LABEL_4": 4,
161
+ "LABEL_40": 40,
162
+ "LABEL_41": 41,
163
+ "LABEL_42": 42,
164
+ "LABEL_43": 43,
165
+ "LABEL_44": 44,
166
+ "LABEL_45": 45,
167
+ "LABEL_46": 46,
168
+ "LABEL_47": 47,
169
+ "LABEL_48": 48,
170
+ "LABEL_49": 49,
171
+ "LABEL_5": 5,
172
+ "LABEL_50": 50,
173
+ "LABEL_51": 51,
174
+ "LABEL_52": 52,
175
+ "LABEL_53": 53,
176
+ "LABEL_54": 54,
177
+ "LABEL_55": 55,
178
+ "LABEL_56": 56,
179
+ "LABEL_57": 57,
180
+ "LABEL_58": 58,
181
+ "LABEL_59": 59,
182
+ "LABEL_6": 6,
183
+ "LABEL_60": 60,
184
+ "LABEL_61": 61,
185
+ "LABEL_62": 62,
186
+ "LABEL_63": 63,
187
+ "LABEL_64": 64,
188
+ "LABEL_65": 65,
189
+ "LABEL_66": 66,
190
+ "LABEL_67": 67,
191
+ "LABEL_68": 68,
192
+ "LABEL_69": 69,
193
+ "LABEL_7": 7,
194
+ "LABEL_70": 70,
195
+ "LABEL_71": 71,
196
+ "LABEL_72": 72,
197
+ "LABEL_73": 73,
198
+ "LABEL_74": 74,
199
+ "LABEL_75": 75,
200
+ "LABEL_76": 76,
201
+ "LABEL_77": 77,
202
+ "LABEL_78": 78,
203
+ "LABEL_79": 79,
204
+ "LABEL_8": 8,
205
+ "LABEL_80": 80,
206
+ "LABEL_81": 81,
207
+ "LABEL_82": 82,
208
+ "LABEL_83": 83,
209
+ "LABEL_84": 84,
210
+ "LABEL_85": 85,
211
+ "LABEL_86": 86,
212
+ "LABEL_87": 87,
213
+ "LABEL_88": 88,
214
+ "LABEL_89": 89,
215
+ "LABEL_9": 9,
216
+ "LABEL_90": 90,
217
+ "LABEL_91": 91,
218
+ "LABEL_92": 92,
219
+ "LABEL_93": 93,
220
+ "LABEL_94": 94,
221
+ "LABEL_95": 95,
222
+ "LABEL_96": 96,
223
+ "LABEL_97": 97,
224
+ "LABEL_98": 98,
225
+ "LABEL_99": 99
226
+ },
227
+ "layer_norm_eps": 1e-05,
228
+ "max_position_embeddings": 258,
229
+ "model_type": "bert",
230
+ "num_attention_heads": 12,
231
+ "num_hidden_layers": 12,
232
+ "pad_token_id": 1,
233
+ "position_embedding_type": "absolute",
234
+ "tokenizer_class": "PhobertTokenizer",
235
+ "torch_dtype": "float32",
236
+ "transformers_version": "4.43.3",
237
+ "type_vocab_size": 1,
238
+ "use_cache": true,
239
+ "vocab_size": 64001
240
+ }
Model_API/Saved_Model/key_ner_new_data_method/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:df3b781d83ed05ecd4cf74b0b96769a690d57c5182e0ea85b676309973b1c6f8
3
+ size 537973976
Model_API/main.py ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+
3
+ import uvicorn
4
+ from Destinations.get_destinations import (get_destinations_list,
5
+ get_question_vector)
6
+ from fastapi import APIRouter, FastAPI
7
+ from fastapi.middleware.cors import CORSMiddleware
8
+ from Model.model_predict import predictor
9
+
10
+ router = APIRouter(prefix="/model", tags=["Model"])
11
+
12
+ @router.get("/get_question_tags/{question}")
13
+ async def get_question_tags(question: str):
14
+ # Get the prediction
15
+ original_sentence, predicted_tags = predictor.predict(question)
16
+
17
+ # Print the sentence and its predicted tags
18
+ print("Sentence:", original_sentence)
19
+ print("Predicted Tags:", predicted_tags)
20
+ return {"question_tags": predicted_tags}
21
+
22
+ @router.get("/get_destinations_list/{question_tags}/{top_k}")
23
+ async def get_destinations_list_api(question_tags: str, top_k:str):
24
+ # Get the prediction
25
+ question_vector = get_question_vector(question_tags)
26
+ destinations_list = get_destinations_list(question_vector, int(top_k))
27
+
28
+ print("destinations_list:", destinations_list)
29
+ return {"destinations_list": destinations_list}
30
+
31
+ app = FastAPI(docs_url="/")
32
+ app.add_middleware(
33
+ CORSMiddleware,
34
+ allow_origins=['*'],
35
+ allow_credentials=True,
36
+ allow_methods=['*'],
37
+ allow_headers=['*'],
38
+ expose_headers=['*',]
39
+ )
40
+
41
+ app.include_router(router)
42
+
43
+
44
+ if __name__ == "__main__":
45
+ uvicorn.run(app, host="0.0.0.0", port=int(os.environ.get("PORT", 7860)))
requirements.txt ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ annotated-types==0.7.0
2
+ anyio==4.8.0
3
+ certifi==2024.12.14
4
+ charset-normalizer==3.4.1
5
+ click==8.1.8
6
+ colorama==0.4.6
7
+ contourpy==1.3.1
8
+ cycler==0.12.1
9
+ et_xmlfile==2.0.0
10
+ exceptiongroup==1.2.2
11
+ fastapi==0.115.7
12
+ filelock==3.17.0
13
+ fonttools==4.55.7
14
+ fsspec==2024.12.0
15
+ h11==0.14.0
16
+ huggingface-hub==0.28.0
17
+ idna==3.10
18
+ Jinja2==3.1.5
19
+ joblib==1.4.2
20
+ kiwisolver==1.4.8
21
+ MarkupSafe==3.0.2
22
+ matplotlib==3.10.0
23
+ mpmath==1.3.0
24
+ networkx==3.4.2
25
+ nltk==3.9.1
26
+ numpy==2.2.2
27
+ openpyxl==3.1.5
28
+ packaging==24.2
29
+ pandas==2.2.3
30
+ pillow==11.1.0
31
+ pydantic==2.10.6
32
+ pydantic_core==2.27.2
33
+ pyparsing==3.2.1
34
+ python-crfsuite==0.9.11
35
+ python-dateutil==2.9.0.post0
36
+ pytz==2024.2
37
+ PyYAML==6.0.2
38
+ regex==2024.11.6
39
+ requests==2.32.3
40
+ safetensors==0.5.2
41
+ scikit-learn==1.6.1
42
+ scipy==1.15.1
43
+ six==1.17.0
44
+ sniffio==1.3.1
45
+ starlette==0.45.3
46
+ sympy==1.13.1
47
+ threadpoolctl==3.5.0
48
+ tokenizers==0.21.0
49
+ torch==2.5.1
50
+ torchaudio==2.5.1
51
+ torchvision==0.20.1
52
+ tqdm==4.67.1
53
+ transformers==4.48.1
54
+ typing_extensions==4.12.2
55
+ tzdata==2025.1
56
+ underthesea==6.8.4
57
+ underthesea_core==1.0.4
58
+ urllib3==2.3.0
59
+ uvicorn==0.34.0