Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 53 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
53
Dung lượng
1,65 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Đào Hoàng Sơn HỆ THỐNG TỔNG HỢP TIN TỨC KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin HÀ NỘI - 2012 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Đào Hoàng Sơn HỆ THỐNG TỔNG HỢP TIN TỨC KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin Cán hướng dẫn: TS Nguyễn Ngọc Hóa HÀ NỘI - 2012 VIETNAM NATIONAL UNIVERSITY, HANOI UNIVERSITY OF ENGINEERING AND TECHNOLOGY Dao Hoang Son NEWS AGGREGATOR SYSTEM Major: Information Technology Supervisor: Dr Nguyen Ngoc Hoa HA NOI - 2012 LỜI CẢM ƠN Trước tiên, xin bày tỏ lòng cảm ơn chân thành đến TS Nguyễn Ngọc Hóa, người hết lòng bảo, hướng dẫn cho phương pháp tiếp cận vấn đề, giúp giải đáp thắc mắc, giải khó khăn mắc phải để hoàn thành khóa luận Tôi xin chân thành cảm ơn thầy cô khoa Công nghệ thông tin hết lòng truyền đạt cho kiến thức tảng Công nghệ thông tin, giúp có đủ kiến thức để tiếp cận, hoàn thành khóa luận Bên cạnh xin gửi lời cảm ơn đến giúp đỡ nhiệt tình nhà trường, tạo điều kiện tốt cho để hoàn thành khóa luận Tôi xin gửi lời cảm ơn sâu sắc đến người thân gia đình, họ động viên nhiều mặt tinh thần để có đủ nghị lực hoàn thành khóa luận Tôi xin chân thành cảm ơn bạn bè tôi, người bên cạnh, động viên, tạo điều kiện thuận lợi cho trình hoàn thành khóa luận Hà Nội, tháng năm 2012 Sinh viên Đào Hoàng Sơn HỆ THỐNG TỔNG HỢP TIN TỨC Đào Hoàng Sơn Khóa QH-2008-I/CQ, ngành Công nghệ thông tin Tóm tắt Khóa luận tốt nghiệp Trong thời đại bùng nổ thông tin phương tiện thông tin đại chúng, người sử dụng mạng Internet giới nội chung Việt Nam nói riêng tiếp cận với lượng thông tin khổng lồ Các thông tin khó tổng hợp cách có hệ thống, người đọc khó nắm bắt hết tin tức nhiều thời gian để đọc hết tin Do vậy, khóa luận muốn phát triển hệ thống phân tích báo đưa thông tin tổng hợp giúp người xem nhanh chóng nắm bắt vấn đề xã hội Từ khóa: xử lý text, xu hướng, scaling LỜI CAM ĐOAN Tôi xin cam đoan kết đạt khoá luận sản phẩm riêng cá nhân Trong toàn nội dung khoá luận, điều trình bày cá nhân tổng hợp từ nhiều nguồn tài liệu Tất tham khảo từ nghiên cứu liên quan rõ trích dẫn danh mục tài liệu tham khảo cách rõ ràng Tôi xin hoàn toàn chịu trách nhiệm theo quy định cho lời cam đoan Hà Nội, tháng năm 2012 Sinh viên Đào Hoàng Sơn MỤC LỤC MỞ ĐẦU .2 CHƯƠNG TỔNG QUAN HỆ THỐNG 1.1 Hiện trạng, vấn đề cần giải .3 1.2 Mục tiêu hệ thống 1.3 Ý tưởng thiết kế 1.3.1 Hệ thống xử lý văn tiếng Việt 1.3.2 Hệ thống tổng hợp tin tức CHƯƠNG CÁC CÔNG CỤ ĐƯỢC SỬ DỤNG 2.1 Giới thiệu hệ quản trị sở liệu 2.1.1 Hệ quản trị sở liệu quan hệ .7 2.1.2 NoSQL .10 2.2 Giới thiệu RESTful web API 15 2.2.1 Cơ 15 2.2.2 Sử dụng phương thức giao thức HTTP 15 2.2.3 Không lưu trạng thái .18 2.2.4 Sử dụng URI có cấu trúc giống thư mục 19 2.2.5 Hỗ trợ XML, JSON hai 20 2.3 Giới thiệu crawler/web crawler 20 2.4 Giới thiệu ngôn ngữ lập trình web 21 2.4.1 PHP 21 2.4.2 Ruby 22 2.4.3 Python 23 2.4.4 Node.js .24 CHƯƠNG PHÂN TÍCH THIẾT KẾ HỆ THỐNG 25 3.1 Hệ thống xử lý tiếng Việt .25 3.1.1 Cấu trúc hệ thống 25 3.1.2 Cấu trúc sở liệu .27 3.1.3 API cho hệ thống xử lý tiếng Việt 29 3.1.4 Giải thuật xử lý 29 3.2 Crawler (Hệ thống tổng hợp tin tức) 31 3.2.1 Cấu trúc hệ thống 31 3.2.2 Cấu trúc sở liệu .32 3.2.3 Giải thuật xử lý 32 3.3 Front-end (Hệ thống tổng hợp tin tức) 35 4.2.1 Thiết kế giao diện front-end .35 4.2.2 Giải pháp cài đặt 38 CHƯƠNG THỰC NGHIỆM 39 5.1 Kết thực nghiệm 39 5.1.1 Hệ thống xử lý tiếng Việt 39 5.1.2 Hệ thống tổng hợp tin tức, phần Crawler .40 5.2 Hướng phát triển .42 5.3 Kết luận 43 TÀI LIỆU THAM KHẢO 44 Tiếng Việt 44 Tiếng Anh 44 Endnote 44 DANH MỤC TỪ VIẾT TẮT Từ viết tắt Tiếng Anh Tiếng Việt CPU Central Processing Unit Bộ xử lý trung tâm PaaS Platform as a Service Nền tảng dịch vụ RDBMS Relational Database Hệ quản trị sở liệu Management System quan hệ SaaS Software as a Service Phần mềm dịch vụ MỞ ĐẦU Trong thời đại bùng nổ thông tin phương tiện thông tin đại chúng, người sử dụng mạng Internet giới nội chung Việt Nam nói riêng tiếp cận với lượng thông tin khổng lồ Một phần lớn lượng thông tin cung cấp trang báo mạng, trang tin tức hay blog cá nhân người tiếng Điểm chung thông tin là: chủ yếu dạng text, có siêu liên kết đến thông tin liên quan, trình bày dàn trải, có cấu trúc Với đặc điểm vậy, thông tin khó tổng hợp cách có hệ thống, người đọc khó nắm bắt hết tin tức nhiều thời gian để đọc hết tin Để giải vấn đề đó, khóa luận tìm hiểu giải pháp tổng hợp phân tích báo tiếng Việt diện rộng, cách hoàn toàn tự động Từ đưa thông tin hữu ích, mang tính tổng quát tình hình xã hội, giúp người đọc nhanh chóng có nhìn cụ thể tin tức ngày khoảng thời gian định Với mục tiêu vậy, có số khó khăn định mặt kĩ thuật, khóa luận trình bày khó khăn giải pháp lựa chọn để giải d Giá trị đoạn chữ tính tổng giá trị bảng mã Unicode kí tự Sau có kết phân tích n-gram hai văn (văn yêu cầu tìm văn tài liệu hệ thống), thực so sánh đoạn chữ trùng khớp hai kết Tính giá trị so sánh số đoạn trùng khớp chia cho số đoạn chữ Giá trị khoảng Nếu giá trị so sánh lớn 0.5 (giá trị hard code hệ thống) thực emit với key _id value giá trị so sánh emit phương thức cung cấp hệ thống MapReduce, dùng giai đoạn Map để đưa kết cho giai đoạn Reduce Xử lý giai đoạn Reduce đơn giản hơn, bao gồm việc trả lại value danh sách value Giai đoạn phải xử lý key emit giai đoạn Map _id tức đảm bảo với tài liệu 3.2 Crawler (Hệ thống tổng hợp tin tức) 3.2.1 Cấu trúc hệ thống Crawler thiết kế với đoạn mã Python chạy độc lập với nhiên giai đoạn sử dụng kết giai đoạn trước với mô sau: 31 Mỗi giai đoạn có công việc cụ thể là: Queue Manager: lấy đường dẫn tin từ RSS feed Fetcher: tải tin từ đường dẫn lấy bước Parser: xử lý tin tải về, trích xuất nội dung chuyển cho hệ thống xử lý tiếng Việt 3.2.2 Cấu trúc sở liệu Toàn Crawler sử dụng hệ thống file để lưu danh sách RSS feed danh sách đường dẫn chờ tải Riêng bước Parse, Crawler truy xuất vào sở liệu Front-end để lưu trữ liệu 3.2.3 Giải thuật xử lý 3.2.3.1 Queue Để cài đặt crawler hệ thống tổng hợp tin tức, có mục tiêu rõ ràng tin từ trang báo, trang tin, trang tổng hợp Việt Nam nên khóa luận không thực theo mô hình thông thường crawler (tải về, tìm siêu liên kiết, lưu lại) mà sử dụng trang RSS cung cấp để thu thập đường dẫn đến trang tin 32 Với danh sách địa trang RSS có sẵn, bước Queue cần tải trang RSS dạng XML xử lý Hình RSS báo Tuổi trẻ Với ví dụ RSS báo Tuổi trẻ, Queue phải thực tìm đối tượng tiếp tục tìm tiếp đối tượng trích xuất đường dẫn để lưu lại 3.2.3.2 Fetch 33 Sau có đường dẫn tin bước 1, Fetch lấy đường dẫn từ hàng chờ tải lưu tạm thư mục articles Đường dẫn lưu tính toán tương ứng theo đường dẫn tới tin Một số ví dụ: • http://tuoitre.vn/The-gioi/383531/Bo-anh-hiem-hoi-cua-gia-dinh Kim-JongIl.html articles/tuoitre.vn/The-gioi/383531/Bo-anhhiem-hoi-cua-gia-dinh Kim-Jong-Il.html • http://vnexpress.net/gl/van-hoa/2012/01/cac-ngoi-sao-gap-su-co-tren-maybay articles/vnexpress.net/gl/van-hoa/2012/01/cacngoi-sao-gap-su-co-tren-may-bay 3.2.3.3 Parse Sau có toàn mã HTML trang tin bước 2, Parse bắt đầu trình phân tích để lọc nội dung tin (loại bỏ phần mã HTML) Có nhiều giải pháp cho việc trích lọc này: • Lọc bán thủ công: lập trình viên xem nghiên cứu mã HTML trang (ví dụ trang tin Tuổi trẻ) Sau tìm hiểu kĩ cấu trúc trang đó, lập trình viên viết đoạn mã trích xuất nội dung trang tin theo cách tổng quát Sau đó, có trang tin khác tương tự (ví dụ Tuổi trẻ) hệ thống sử dụng đoạn mã có để trích xuất Nhược điểm lớn phương pháp lập trình viên phải xử lý hệ thống đường dẫn để đảm bảo có đủ đoạn mã trích xuất cho tất đường dẫn hệ thống Đó việc thời gian • Lọc thông minh: xử lý hiển thị trang web cách đầy đủ sau tìm phần nội dung hiển thị cửa sổ trình duyệt đường cắt (above the fold, giới hạn 600px) kết hợp thêm vài điều kiện khác Từ tìm đoạn nội dung quan trọng trang web để trích xuất Giải pháp lọc hiệu cao, gần với góc nhìn người xem nhiên yêu cầu xử lý lớn để hiển thị trang web hoàn chỉnh cần nhiều thành phần: xử lý HTML, xử lý CSS, chí phải xử lý JavaScript Trước có giải pháp mã 34 nguồn mở Readibilityxvii viết JavaScript dạng bookmarklet nên tận dụng trình duyệt vốn chạy sẵn đem lại kết xác Bộ lọc hệ thống sau thử nghiệm nhiều phương pháp khác nhau, cuối sử dụng thuật toán sau: Mô hình hóa HTML trang thành thành phần với quan hệ cha Tìm thẻ HTML có định danh , Kiểm tra xem nội dung thẻ có chứa dấu chấm (.) hay không? a Nếu có, lấy cha cha chứa phần tử b Lặp lại (2.b) không lấy cha thỏa mãn lưu lại thẻ cha vào danh sách filtered Lấy thẻ cha thẻ filtered đưa vào sanh sách parents Kiểm tra số thẻ parents: a Nếu có thẻ, trả lại kết tìm thấy b Nếu có thẻ, không tìm thấy c Nếu có nhiều thẻ: i Lấy thẻ chứa nhiều nội dung văn ii Trả lại kết tìm thấy Sau có kết lọc nội dung, tìm thấy nội dung gửi nội dung lên hệ thống xử lý tiếng Việt để xử lý lưu vào sở liệu Front-end 3.3 Front-end (Hệ thống tổng hợp tin tức) 4.2.1 Thiết kế giao diện front-end 4.2.1.1 Trang chủ 35 • Feature News: Hiển thị tin nhất, đáng quan tâm hệ thống • Sections: Hiển thị mục tin mục • Trending: Hiển thị danh sách từ khóa thu hút quan tâm (trên toàn hệ thống) 4.2.1.2 Trang từ khóa 36 Khi người dùng click vào từ khóa, hiển thị biểu đồ thay đổi từ khóa theo ngày Đồng thời hiển thị danh sách tin liên quan từ khóa 4.2.1.3 Trang theo mục 37 Khi người dùng click vào mục, hiển thị biểu đồ thay đổi từ khóa mục này, thỉ từ khóa đáng quan tâm Đồng thời hiển thị danh sách viết nhất, đáng quan tâm bên cạnh 4.2.2 Giải pháp cài đặt Với đơn giản Front-end hệ thống, phần xây dựng PHP, kết nối với sở liệu MySQL (chung với Crawler) Để tăng tốc độ phát triển, sử dụng hệ thống Yiixviii 38 CHƯƠNG THỰC NGHIỆM 5.1 Kết thực nghiệm Toàn mã nguồn hệ thống đăng tải địa chỉ: • Hệ thống xử lý tiếng Việt o https://github.com/daohoangson/koluto-platform • Hệ thống tổng hợp tin tức o Crawler https://github.com/daohoangson/koluto-demo-crawler o Front-end https://github.com/daohoangson/koluto-demo-front-end Hệ thống chạy thử địa chỉ: • Hệ thống xử lý tiếng Việt o http://api.koluto.com:29690/ • Hệ thống tổng hợp tin tức o http://news.koluto.com/ 5.1.1 Hệ thống xử lý tiếng Việt 5.1.1.1 POST /documents Đây kết chạy thử POST /documents với nội dung gửi lên tài liệu với độ dài khác Thời gian đo phía Node.js sử dụng hàm Date.now() Tập liệu test lựa chọn ngẫu nhiên 191805 file tài liệu Lần chạy Độ dài tài liệu Thời gian 4263 836ms 3115 263ms 1173 38ms 10485 3174ms 4726 1884ms 39 Lần chạy Độ dài tài liệu Thời gian 3576 304ms 9177 1683ms 11750 3395ms 6917 2449ms 10 516 9ms 5.1.1.2 POST /similar Đây kết chạy thử POST /similar với nội dung gửi lên để kiểm tra số tài liệu sở liệu khác Thời gian đo phía Node.js sử dụng hàm Date.now() Tập liệu test lựa chọn ngẫu nhiên 191805 file tài liệu Lần chạy Độ dài tài liệu Số tài liệu db Thời gian 3142 152 1858ms 3112 152 1854ms 3596 311 1610ms 2765 311 1563ms 4524 311 1832ms 5.1.2 Hệ thống tổng hợp tin tức, phần Crawler 5.1.2.1 Queue Hiện tại, địa RSS sử dụng đến từ nguồn sau: Nguồn Số địa RSS 24h.com.vn 23 antd.cand.com.vn cand.com.vn 15 daidoanket.vn dantri.com.vn 72 giaoduc.net.vn 11 40 Nguồn Số địa RSS hanoimoi.com.vn 10 laodong.com.vn 21 nhandan.org.vn 13 phapluattp.vn 13 sgtt.vn 15 tienphong.vn 49 tuoitre.vn 30 vietnamnet.vn 11 vietnamplus.vn 14 vneconomy.vn 11 vnexpress.net 14 zing.vn 34 Tổng số 372 Với 372 đường dẫn RSS, kết chạy Queue vào ngày 20-05-2012 trích xuất 5652 đường dẫn tin 5.1.2.2 Parse Đây kết lần chạy thử Parse với tập liệu đầu vào khác (chọn lựa ngẫu nhiên từ 191805 file liệu) Cách thức thực test: • Tạo tập liệu: o python test002_get_articles_to_test.py • Xử lý tập liệu tạo: o python test003_parse_test_articles.py Tỉ lệ tính kết phép chia số tin xử lý thành công cho tổng số tin tập liệu Thời gian đo câu lệnh time Unix Lấy giá trị real chia cho số tin xử lý thành công 41 Lần chạy Số lượng Thành công Tỉ lệ Thời gian 164 144 87.80% 111ms 248 220 88.71% 106ms 415 380 91.57% 113ms 3864 3544 91.72% 119ms 3823 3508 91.76% 126ms Một số trang có tỉ lệ xử lý không thành công cao: • batdongsan.vietnamnet.vn (do số có toàn ảnh) • daidoanket.vn (do nội dung để thẻ ) • hanoimoi.com.vn (do nội dung để thẻ ) • nhandan.com.vn (do số đường dẫn RSS tin bài) • vef.vn (do trang tải sử dụng JavaScript để chuyển tới trang khác) 5.2 Hướng phát triển Hầu hết thành phần hệ thống cải thiện theo hướng khác để tăng cường khả toàn hệ thống Đối với hệ thống xử lý tiếng Việt, mô hình lưu trữ thực nghiệm có thời điểm chậm, gây treo máy nên cần phải thực nhiều kiểm tra để đạt tính ổn định Mặc dù thiết kế để thực horizontal scaling nhiên hệ thống chưa cài đặt nhiều hai máy chủ (cho sở liệu MongoDB Node.js) Đúng theo thiết kế hiệu hệ thống tăng tuyến tính theo số lượng máy chủ sử dụng Về mặt xử lý, có hai giai đoạn quan trọng bước phân tích từ khóa bước tìm kiếm tài liệu tương tự với tài liệu cho trước Việc xử lý hai bước thô sơ, chưa áp dụng thuật toán mạnh xử lý ngôn ngữ tự nhiên Trong trình thực nhiều ý tưởng chưa thể thực ví dụ việc xử lý giá trị số theo cách riêng cách xác định chuỗi đặc trưng tiếng Việt “nghìn”, “triệu”, “tỉ” (hoặc “tỷ”) để trích xuất nhiều thông tin có giá trị Ngoài xác định tên riêng người hay địa danh thông qua cách trình bày với chữ viết hoa có từ từ đứng liền (không tính từ câu) 42 Đối với hệ thống tổng hợp tin tức, giai đoạn Parse Crawler giai đoạn cải thiện nhiều Mặc dù tỉ lệ lọc viết thành công nằm khoảng chấp nhận nhiên chưa cao mong muốn Thêm vào đó, kết lọc chứa thông tin thừa ví dụ “Lưu để đọc sau” “Email này”, “In trang này”,.v.v Đây siêu liên kết đến chức riêng số trang tin, siêu liên kết đặt gần với nội dung nên giai đoạn Parse xác định nhầm Ở trang hiển thị, thiếu số tính theo dự kiến ban đầu cho phép người xem đăng ký tài khoản, tạo lọc, thiết lập thông báo hàng ngày qua email,.v.v Nhìn chung, hệ thống xử lý tiếng Việt hệ thống hoàn chỉnh chức phát triển để cung cấp dịch vụ mang tính chất thương mại với mô hình Freemium trình bày Để đạt mục tiêu đó, cần đặt ưu tiên cao vào việc đảm bảo tính ổn định hệ thống, chống truy cập trái phép, đảm bảo an toàn thông tin người sử dụng,.v.v 5.3 Kết luận Với kết nghiên cứu thực nghiệm trình bày, công cụ thu giải phần vấn đề được đặt Tuy nhiên thiếu kinh nghiệm nên kết thu nhiều hạn chế, cần tiếp tục cải thiện, nâng cấp 43 TÀI LIỆU THAM KHẢO Tiếng Việt [1] TS Nguyễn Tuệ Giáo trình sở liệu Khoa Công Nghệ, ĐHQGHN, 2004 [2] ThS Đào Kiến Quốc Giáo trình phân tích thiết kế Hệ thống thông tin - Tin học hoá Khoa Công Nghệ, ĐHQGHN Tiếng Anh [3] Peter Rob, Carlos Coronel Database system: Design, implementation and management Wadsworth Publishing Company, 1993 Endnote 44 i Trang tổng hợp thông tin tự động BáoMới (http://www.baomoi.com) ii Các công cụ xử lý văn tiếng Việt Lê Hồng Phương (http://www.loria.fr/~lehong/softwares.php) iii Các nghiên cứu Phan Xuân Hiếu Nguyễn Cẩm Tú (https://sites.google.com/site/pxhieu/software) iv Thống kê nguồn tin BáoMới (http://www.baomoi.com/Statistics/Report.aspx) v Trang tổng hợp thông tin Cubit NewsDesk (https://cubit.moreover.com) vi Dịch vụ xác định chép mạng Copyscape (http://copyscape.com) vii Dịch vụ xác định chép văn học thuật turnitin (http://turnitin.com) viii Dịch vụ xác định chép văn học thuật SafeAssign (http://safeassignment.com) ix Codd, E.F (1970) “A Relational Model of Data for Large Shared Data Banks” x Nhánh phát triển MySQL sử dụng Google (http://code.google.com/p/google-mysql/) xi Nhánh phát triển MySQL sử dụng Twitter (https://github.com/twitter/mysql) xii PostGIS (http://postgis.refractions.net) xiii Nền tảng điện toán đám mây heroku (http://heroku.com) xiv Web crawler Wikipedia tiếng Anh (http://en.wikipedia.org/wiki/Web_crawler) xv Cài đặt RESTful web API đầy đủ cho CodeIgniter (https://github.com/philsturgeon/codeigniter-restserver) xvi Bảng xếp hạng TIOBE (http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html) xvii Readability mã nguồn mở (http://code.google.com/p/arc90labs-readability/) xviii Hệ thống Yii (http://www.yiiframework.com/) [...]... phí), turnitinvii (trả phí), SafeAssignviii (trả phí) Chính vì vậy, khóa luận này tìm hiểu xây dựng hai hệ thống riêng biệt sẵn sàng có thể tiếp tục phát triển hơn nữa trong tương lai 1.3.1 Hệ thống xử lý văn bản tiếng Việt Đây là hệ thống cốt lõi được xây dựng làm nền tảng để phục vụ các hệ thống khác Các hệ thống bên ngoài này (ví dụ như hệ thống tổng hợp tin tức) sẽ chạy độc lập với hệ thống xử lý... độ chính xác và tính đúng đắn của hệ thống một cách đáng kể Với các thông tin cụ thể hơn về mỗi từ khóa, hệ thống có thể trích xuất được các từ khóa liên quan, cùng chỉ đến một nội dung, từ đó đưa ra được những thống kê hữu ích hơn 1.3.2 Hệ thống tổng hợp tin tức Đây là hệ thống thực hiện nhiệm vụ trực tiếp lấy các bài báo từ các nguồn khác nhau, chuyển đến cho hệ thống xử lý tiếng Việt, lưu lại kết... của mình, hệ thống tổng hợp tin tức sẽ có hai thành phần: Crawler và Front-end Chức năng của Crawler: • Chạy liên tục 24/7 • Thu thập đường dẫn của tin, bài từ các nguồn khác nhau Truy xuất đến các đường dẫn đã có và lưu lại nội dung HTML của tin, bài Trích xuất nội dung tin, bài từ HTML của trang • Chuyển nội dung tin, bài cho hệ thống xử lý tiếng Việt Lưu lại kết quả sau khi xử lý cùng thông tin liên... có thể dễ dàng mở rộng dung lượng của hệ thống bằng cách cắm thêm máy tính vào mạng và tiếp tục cân bằng tải giữa các tiến trình trên các máy tính khác nhau 24 CHƯƠNG 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 3.1 Hệ thống xử lý tiếng Việt 3.1.1 Cấu trúc hệ thống Hệ thống xử lý tiếng Việt được thiết kế theo 3 lớp theo mô hình MVC (Model View Controler): 3.1.1.1 Controllers Hệ thống xử lý tiếng Việt có 2 controllers... liệu Sau khi tìm hiểu về hệ thống quản trị cơ sở dữ liệu hiện có, nhận thấy rằng mỗi hệ thống đều có những ưu nhược điểm riêng chứ không có một giải pháp nào có thể áp dụng cho mọi bài toán Chính vì vậy, hệ thống xử lý tiếng Việt sử dụng kết hợp nhiều hệ thống cơ sở dữ liệu như sau: 27 • MongoDB: Lưu trữ các văn bản được đăng lên hệ thống • Redis: Chuyên sử dụng để tính toán thống kê • MySQL: Lưu trữ... để thu được thông tin cần thiết phục vụ cho hệ thống như: o Tên người, tên địa danh o Các cụm từ nổi bật 1.3 Ý tưởng thiết kế Sau khi tìm hiểu các hệ thống liên quan đang có trên thị trường như: 1 BáoMới (miễn phí) • Tổng hợp thông tin tự động từ 60 nguồn khác nhau, với số lượng 3500 tin tức mỗi ngày Các thao tác xử lý bao gồm: tìm kiếm các bài trùng lặp (các bài được nhiều trang tin đăng lại của nhau),... trữ các thành phần khác của hệ thống như thông tin người sử dụng (tên đăng nhập, mật khẩu), thông tin các ứng dụng đã đăng ký,.v.v Cấu trúc chi tiết: • MongoDB: có một collection duy nhất để chứa tài liệu của hệ thống (documents) Mặc dù MongoDB không hỗ trợ schema nhưng hệ thống tự quy ước mỗi tài liệu phải có các thông tin là: appId, text, extraData, sections • Redis: hệ thống sử dụng 2 loại dữ liệu... Có thể nói Ruby on Rails là một trong những hệ thống nền đầu tiên đưa được khái niệm ORM (object relational mapping) vào sử dụng với hệ thống Active Record Sau Ruby on Rails, một loạt các hệ thống nền khác cũng lần lượt cài đặt chức năng tương tự này Tuy Ruby on Rails hỗ trợ nhiều chức năng nhưng hầu hết đều không sử dụng nhiều trong một hệ thống API như hệ thống xử lý tiếng Việt với các đặc điểm về... của một trang tổng hợp tin tức, BáoMới có thể nhanh chóng chỉ ra các bài viết đang được nhiều người quan tâm (bấm vào đọc) cũng như tìm được các bài viết tương tự nhau (mục Tin đăng lại”) 1.2 Mục tiêu của hệ thống Khóa luận tốt nghiệp này mong muốn tìm ra được giải pháp đối với một số vấn đề thuần kĩ thuật • Ứng dụng mô hình lưu trữ và xử lý phân tán để dễ dàng cấu hình hệ thống cho phù hợp khi nhu... khác trong hệ thống Với chức năng này, hệ thống 5 có thể cung cấp gói dịch vụ miễn phí với giới hạn về số yêu cầu được gửi đến trong 24 giờ để hỗ trợ các lập trình viên muốn làm quen với hệ thống Việc này tương tự như các hệ thống PaaS hay SaaS hiện nay với mô hình Freemium • Phân tích từ khóa theo văn cảnh, sử dụng các thuật toán tagging, học máy để lọc tách thông tin thay vì chỉ dùng thống kê đơn