Nghiên Cứu Xây Dựng Ứng Dụng Đọc Tin Nhanh Bằng Cách Trích Rút Và Tổng Hợp Thông Tin Từ Các Trang Web

Nghiên Cứu, Xây Dựng Ứng Dụng Đọc Tin Nhanh Bằng Cách Trích Rút Và Tổng Hợp Thông Tin Từ Các Trang Web

Nghiên Cứu Xây Dựng Ứng Dụng Đọc Tin Nhanh Bằng Cách Trích Rút Và Tổng Hợp Thông Tin Từ Các Trang Web

  1. Lý do chọn đề tài

Ngày nay công nghệ thông đóng một vai trò rất quan trọng trong hầu hết các lĩnh vực của đời sống xã hội. Sự phát triển nhanh chóng của của công nghệ thông tin nói chung và công nghệ World Wide Web nói riêng đã tạo ra một nguồn tài nguyên thông tin vô cùng rộng lớn, một kho tàng tri thức phong phú cho nhân loại. Tuy nhiên, nguồn tài nguyên thông tin này không biểu diễn một cách tập trung mà nằm rải rác phân tán khắp nơi trên mạng, không được sắp xếp, phân loại như mong muốn đã gây không ít những khó khăn cho con người khi tìm kiếm và khai thác thông tin. Trong hoàn cảnh đó, trích rút và tổng hợp thông tin ra đời giúp cho việc tìm kiếm và thu thập thông tin trở nên hiệu quả, tiết kiệm thời gian và công sức trong việc sàng lọc và tổng hợp tri thức.

Như tìm hiểu, tôi biết được trích rút thông tin là một trong những phương thức điển hình của chủ đề khai thác nguồn thông tin gồm:

  • Tìm kiếm thông tin (Information Retrieval)
  • Tóm lược văn bản (Text Summarization)
  • Trích rút thông tin (Information Extraction)

Trích rút thông tin là phương thức trích chọn để lấy ra thông tin hữu ích từ kho thông tin chưa được tổng hợp chọn lọc. Trích rút thông tin từ trang web là công nghệ bao gồm nhiều phương thức giúp trích xuất một phần thông tin hữu ích theo mục đích từ các trang web chứa nhiều danh mục, chủ đề, nội dung khác nhau. Khi sử dụng công nghệ trích rút thông tin, con người không còn phải mất nhiều thời gian để đọc hết các kết quả tìm kiếm trên mạng hay các trang web với nhiều những thông tin, nội dung dung không liên quan để lọc ra những tin cần thiết. Ví dụ như khi chúng ta đọc báo trên mạng, các trang web chứa đầy các nội dung quảng cáo, các danh mục, các bài viết. Để biết được kết quả bóng đá, sổ số, bảng tin chứng khoán hay một mục nào đó, chúng ta phải lướt hết nội dung của trang web và tìm ra phần nội dung cần thiết. Việc làm đó không những lãng phí thời gian mà còn gây ra tình trạng tốn lưu lượng, tốn bộ nhớ.

Bên cạnh đó, sự ra đời của báo điện tử đã thay đổi diện mạo của phương thức tiếp cận tri thức, cũng như thay đổi trong thói quen đọc báo của con người. Với ưu thế về tốc độ và khả năng vươn xa, Internet giúp cho độc giả có thể tiếp cận tin tức mọi lúc, mọi nơi với sự hỗ trợ của các thiết bị di động thông minh như điện thoại di động thông minh (smartphone), thiết bị đọc sách thông minh (playbook), máy tính cầm tay thông minh (tablet),… Các thiết bị di động thông minh không những giao diện đẹp, thiết bị gọn nhẹ, mà còn hỗ trợ truy cập Internet với nhiều loại hình như mạng 3G, mạng không dây, GPRS,… đã tạo tiền đề cho nhu cầu đọc báo và cập nhật tin tức trở thành nhu cầu thiết yếu, không thể thay thế của con người.

Tuy nhiên, việc đọc báo trên các thiết bị di động còn nhiều bất tiện vì màn hình nhỏ không cho phép hiển thị trang web được thiết kế cho máy tính để bàn, phông chữ bị lỗi, thông tin quảng cáo và tiêu đề của ứng dụng cũng được tải về cùng lúc với ứng dụng làm giảm tốc độ và gây khó chịu cho người dùng,… Chính vì vậy, mục đích của luận văn này là xây dựng một hệ thống cho phép dễ dàng và thuận tiện xem tin tức tiếng Việt của báo điện tử bất kỳ trên thiết bị di động thông minh, mà chi tiết hơn là trên thiết bị di động hệ điều hành android.

Đó cũng chính là lý do tôi chọn đề tài “Nghiên Cứu, Xây Dựng Ứng Dụng Đọc Tin Nhanh Bằng Cách Trích Rút Và Tổng Hợp Thông Tin Từ Các Trang Web”

  1. Mục tiêu và nhiệm vụ
  • Nghiên cứu các thuật toán trích rút thông tin từ trang web.
  • Xây dựng ứng dụng đọc tin nhanh trên thiết bị di động đáp ứng nhu cầu cập nhật tin tức nhanh chóng hiệu quả.
  • Để đạt được mục đích trên, nhiệm vụ chính của đề tài là:
  • Tìm hiểu các nội dung lý thuyết liên về xử lý ngôn ngữ tự nhiên, khai phá dữ liệu web.
  • Trích rút thông tin từ trang web để xây dựng ứng dụng.
  • Biểu diễn kết quả trích rút thông tin từ trang web.
  1. Đối tượng và phạm vi nghiên cứu

Đối tượng nghiên cứu của đề tài gồm:

  • Các trang web cần trích rút thông tin.
  • Hệ thống trích rút thông tin.
  • Thuật toán trích rút thông tin từ trang web.

Phạm vi nghiên cứu như sau:

  • Trích rút bằng phân tích mã HTML dựa trên cấu trúc cây DOM và thuật toán Body Text Extraction
  • Xây dựng ứng dụng trên thiết bị di động android.
  1. Phương pháp nghiên cứu

Thứ nhất, tổng hợp các kết quả nghiên cứu từ các tư liệu liên quan về xử lý ngôn ngữ tự nhiên, khai phá dữ liệu web và kỹ thuật trích rút thông tin từ trang web.

Thứ hai, phân tích đánh giá các phương pháp và đề xuất các giải pháp lựa chọn để xây dựng ứng dụng có hiệu quả nhất.

Từ những giải pháp lựa chọn đã đề xuất, chọn ra một phương pháp hiệu quả để áp dụng cho việc xây dựng ứng dụng đọc tin nhanh trên thiết bị di động android.

  1. Ý nghĩa khoa học và thực tiễn của đề tài

Thực nghiên cứu các phương pháp trích rút thông tin, sẽ góp phần làm cơ sở cho việc tổng hợp thông tin, phân loại, lọc dữ liệu.

  1. Bố cục của luận văn

Nội dung chính của luận văn này được chia thành ba chương với nội dung như sau:

Chương 1: Cơ sở lý thuyết

Tìm hiểu lý thuyết liên quan đến vấn đề nghiên cứu:

  • Giới thiệu xử lý ngôn ngữ tự nhiên
  • Khai phá dữ liệu
  • Khai phá dữ liệu web

Chương 2: Giải pháp trích rút và tổng hợp thông tin để xây dựng ứng dụng đọc tin nhanh

Trình bày các phương pháp trích rút thông tin cụ thể và giải pháp trích rút thông tin cho ứng dụng đọc tin nhanh.

Chương 3: Phát triển ứng dụng đọc tin nhanh bằng cách trích rút thông tin từ các trang web

Tập trung nghiên cứu phân tích xây dựng kiến trúc tổng thể của hệ thống gồm các thành phần liên quan, cách vận hành, từ kiến trúc tổng thể đã xây dựng tiếp tục triển khai thiết kế các thành phần, xây dựng CSDL, và cài đặt ứng dụng trên thiết bị android.

Nghiên Cứu Xây Dựng Ứng Dụng Đọc Tin Nhanh Bằng Cách Trích Rút Và Tổng Hợp Thông Tin Từ Các Trang Web
Nghiên Cứu Xây Dựng Ứng Dụng Đọc Tin Nhanh Bằng Cách Trích Rút Và Tổng Hợp Thông Tin Từ Các Trang Web

 

CHƯƠNG 1

NGHIÊN CỨU TỔNG QUAN

GIỚI THIỆU XỬ LÝ NGÔN NGỮ TỰ NHIÊN

Giới thiệu

Xử lý ngôn ngữ chính là xử lý thông tin đầu vào là “dữ liệu ngôn ngữ”, tức là dữ liệu “văn bản” hay “tiếng nói”. Các dữ liệu liên quan đến ngôn ngữ viết (văn bản) và nói (tiếng nói) đang dần trở nên kiểu dữ liệu chính của con người và lưu trữ dưới dạng điện tử. Đặc điểm chính của các kiểu dữ liệu này là không có cấu trúc hoặc nửa cấu trúc và chúng không thể lưu trữ trong các khuôn dạng cố định như các bảng biểu. Theo đánh giá của công ty Oracle, hiện có đến 80% dữ liệu không có cấu trúc trong lượng dữ liệu của loài người đang có. Với sự ra đời và phổ biến của Internet, của sách báo điện tử, của máy tính cá nhân, của viễn thông, của thiết bị âm thanh,… Người người ai cũng có thể tạo ra dữ liệu văn bản hay tiếng nói. Vấn đề là làm sao ta có thể xử lý chúng, tức là chuyển chúng từ dạng ta chưa hiểu được thành các dạng ta có thể hiểu và giải thích được, tức là ta có thể tìm ra thông tin, tri thức hữu ích cho mình.

Xử lý ngôn ngữ tự nhiên đã được ứng dụng trong thực tế để giải quyết bài toán như nhận dạng chữ viết, tóm tắt văn bản, khai phá dữ liệu và phát hiện tri thức.

Khái niệm cơ bản ngôn ngữ tự nhiên

Khái niệm cơ bản xử lý ngôn ngữ tự nhiên

KHAI PHÁ DỮ LIỆU

Khái niệm khai phá dữ liệu (Data Mining)

Khai phá dữ liệu (Data Mining) được định nghĩa như một quá trình chắt lọc hay khám phá tri thức từ một lượng lớn dữ liệu. Nói một cách khác, khai phá dữ liệu là quá trình trích ra những thông tin dùng được, đúng và chưa biết trước từ cơ sở dữ liệu lớn, rồi dùng thông tin này để ra các quyết định.

KHAI PHÁ DỮ LIỆU WEB

Khái quát về khai phá dữ liệu web

Các bước của quá trình khai phá dữ liệu web

Lựa chọn dữ liệu

Tiền xử lý dữ liệu

Biểu diễn văn bản

Trích rút đặc trưng

Các lĩnh vực của khai phá dữ liệu web

Khai phá nội dung trang web (Web Content Mining)

Khai phá cấu trúc web (Web Structure Mining)

Khai phá sử dụng web (Web Usage/Log Mining)

Khó khăn và thuận lợi trong khai phá dữ liệu web

Khó khăn trong khai phá dữ liệu web

Một số khó khăn gặp phải trong quá trình khai phá dữ liệu web đó là trang web dường như quá lớn để tổ chức thành kho dữ liệu phục vụ cho khai phá dữ liệu, độ phức tạp của trang web lớn hơn rất nhiều so với những tài liệu văn bản truyền thống khác, web là một nguồn tài nguyên thông tin có độ thay đổi cao, phục vụ một cộng đồng người dùng rộng lớn và đa dạng và chỉ một phần rất nhỏ của thông tin trên web là thực sự hữu ích.

Thuận lợi trong khai phá dữ liệu web

Web bao gồm không chỉ có các trang mà còn có cả các siêu lên kết trỏ từ trang này tới trang khác. Một máy chủ web thường đăng ký một bản ghi đầu vào (Weblog Entry) cho mọi lần truy cập.

CHƯƠNG 2

GIẢI PHÁP TRÍCH RÚT VÀ TỔNG HỢP THÔNG TIN ĐỂ XÂY DỰNG HỆ THỐNG ĐỌC TIN NHANH

Như chúng ta đã biết trích rút thông tin là một lĩnh vực nghiên cứu chuyên sâu thuộc lĩnh vực xử lý ngôn ngữ tự nhiên. Vì vậy các bài toán cũng như phương pháp trích rút thông tin đều có nguồn gốc, và tương tự các phương pháp kỹ thuật được sử dụng trong xử lý ngôn ngữ tự nhiên.

Trong phần giải pháp trích rút thông tin để xây dựng hệ thống, luận văn đề cập đến các giải thuật trong bài toán trích rút thông tin cho dữ liệu bán cấu trúc là phương pháp phân tích mã HTML dựa trên cấu trúc cây DOM, sử dụng biểu thức chính quy và thuật toán trích rút thân văn bản Body Text Extraction. Đồng thời luận văn cũng phân tích một số ưu nhược điểm của hai phương pháp này để lựa chọn ra phương pháp tối ưu nhất cho việc xây dựng ứng dụng.

BÀI TOÁN TRÍCH RÚT THÔNG TIN

Giới thiệu sơ lược về bài toán trích rút thông tin

Trích rút thông tin (IE – Information Extraction) là một lĩnh vực của khai phá dữ liệu (Data Mining), có nhiệm vụ lấy ra những mẩu thông tin có ích với người dùng từ các nguồn ở những định dạng không đồng nhất và chuyển thành một dạng đồng nhất. Dữ liệu sau khi trích chọn được sử dụng, trình bày trực tiếp cho người dùng, lưu vào cơ sở dữ liệu để xử lý sau đó hay sử dụng cho những hệ thống tìm kiếm thông tin như một dữ liệu đã qua bước tiền xử lý.

Có thể phát biểu bài toán trích rút thông tin như sau:

Đầu vào của bài toán: Văn bản có cấu trúc bất kỳ.

Đầu ra của bài toán: Thông tin “có ích” được tổ chức dưới dạng cấu trúc.

Hình 2.1. Bài toán trích rút thông tin cho dữ liệu không cấu trúc

Dữ liệu của bài toán trích rút thông tin

Dữ liệu có cấu trúc (Structured Data)

Dữ liệu không có cấu trúc (Unstructured Data)

Dữ liệu bán cấu trúc (Semistructrured Data)

Các trang web đại diện cho loại dữ liệu bán cấu trúc. Vì vậy các phương pháp và thuật toán trích rút thông tin cho dữ liệu bán cấu trúc cũng được áp dụng trong việc trích rút thông tin từ trang web.

Hướng tiếp cận giải quyết bài toán trích rút thông tin

Có nhiều hướng tiếp cận để giải quyết bài toán trích rút thông tin, tuy nhiên nếu dựa trên “đặc trưng dữ liệu” thì bài toán trích rút thông tin có thể giải quyết bằng một số kỹ thuật sau:

Dữ liệu có cấu trúc

Đối với dữ liệu có cấu trúc, việc trích rút thông tin là khá đơn giản. Vì các thông tin đã được biểu diễn theo những định dạng chuẩn của bảng, thực thể,… được lưu trong CSDL, nên có thể trích rút được những thông tin cần thiết một các dễ dàng thông qua các truy vấn người dùng. Ví dụ dữ liệu có cấu trúc được lưu trữ trong hệ quản trị cơ sở dữ liệu MS SQL, MySQL có thể trích rút được những thông tin cần thiết dựa vào các câu lệnh SQL như SELECT, JOIN.

Dữ liệu không có cấu trúc

Với dữ liệu không có cấu trúc, bài toán trích rút thông tin có thể coi là bài toán nhận dạng và trích rút thực thể (Entity Recognition) như tên người, tên tổ chức, vị trí, ngày tháng, số (xem Hình 2.1)

Để giải quyết bài toán trích xuất thực thể thì có nhiều cách tiếp cận như phương pháp HMM, SVM hay CRF, giải thuật DIPRE.

Dữ liệu bán cấu trúc

Các trang web đại diện cho dữ liệu loại bán cấu trúc. Có hai kỹ thuật thường xuyên được dùng để trích rút thông tin trên web đó là sử dụng cấu trúc cây DOM và sử dụng biểu thức chính quy.

BÀI TOÁN TRÍCH RÚT THÔNG TIN TỪ TRANG WEB

Dữ liệu web là một trong những dạng cơ bản của dữ liệu bán cấu trúc. Vì vậy các phương pháp cũng như thuật toán trích rút thông tin cho dữ liệu bán cấu trúc cũng được áp dụng cho bài toán trích rút thông tin từ trang web.

Trích rút thông tin từ trang web dựa vào cây DOM

Khái nhiệm cây DOM

Phương pháp sử dụng cây DOM sẽ phân tích mã nguồn HTML dưới dạng một cây các node, mỗi node là một thẻ HTML, quá trình trích rút thông tin sẽ dựa vào đường đi từ gốc đến node chứa thông tin cần trích rút.

Theo W3C thì DOM (Document Object Model) là một giao diện lập trình ứng dụng (API) cho các văn bản HTML hợp lệ và các văn bản XML có cấu trúc chặt chẽ. Nó định nghĩa cấu trúc logic của các văn bản và cách thức một văn bản được truy cập và thao tác.

Phương pháp xây dựng cây DOM

Xây dựng cây DOM từ những trang web đầu vào là một bước cần thiết trong nhiều giải thuật trích rút dữ liệu.

Có hai phương pháp cơ bản để xây dựng các cây DOM:

* Sử dụng các thẻ riêng biệt

Có hai nhiệm vụ cần thi hành đó là:

Làm sạch mã HTML: Một vài thẻ không cần thẻ đóng (như <li>, <hr>,<p>) mặc dù chúng có thẻ đóng. Bởi vậy một thẻ đóng nên được chèn vào để tất cả các thẻ được cân bằng. Các thẻ được định dạng không tốt cũng cần thiết được sửa chữa. Một thẻ sai thường là một thẻ đóng, đó là thẻ cắt ngang các khối ẩn bên trong. Ví dụ: <tr> … <td> … </tr> … </td>, sẽ rất khó để sửa lỗi trường hợp này nếu tồn tại sự chồng chéo đa cấp. Có một vài phần mềm mã nguồn mở để làm sạch mã HTML, một số những phần mềm thông dụng như: JTidy, NekoHTML, HTMLCleaner.

Xây dựng cây: Chúng ta có thể đi theo các khối con của các thẻ HTML để xây dựng được cây DOM.

* Sử dụng các thẻ và các hộp Visual Cue

Thay vì phân tích mã HTML để sửa lỗi, có thể sử dụng sự biểu diễn hoặc các thông tin trực quan để suy luận mối quan hệ có cấu trúc của các thẻ và có thể xây dựng được cây DOM.

Các bước xử lý như sau:

  • Tìm 4 đường biên của hình chữ nhật ứng với mỗi phần tử HTML thông qua việc công cụ trình diễn của trình duyệt ví dụ như trình duyệt Internet Explorer.
  • Theo sự tuần tự của các thẻ mở và sự kiểm tra xem một hình chữ nhật có nằm trong một hình chữ nhật khác không, để xây dựng cây DOM.

Ví dụ minh họa về sử dụng Visual Cue xem Hình 2.7.

Một đoạn mã HTML có ba lỗi, sử dụng thông tin ảo có thể dễ dàng xây dựng được cây DOM.

Hình 2.5. Ví dụ xây dựng cây DOM sử dụng hộpVisual Cue

Trích rút thông tin từ trang web sử dụng cây DOM

Để trích rút được thông tin cần thiết ở một node của cây DOM, chúng ta cần chỉ rõ đường đi từ gốc của cây đến node cần trích rút thông tin. Đường đi này gọi là một XPath hay mẫu trích rút.

Trước tiên việc trích rút này được hỗ trợ bởi xây dựng cây DOM cho mã HTML của trang. Các mẫu trích rút có thể được làm rõ như đường dẫn từ gốc của cây DOM đến node chứa nội dung cần trích rút.

Ví dụ: Đây là cây DOM của một đoạn mã HTML chứa thông tin về bài báo, gồm tiêu đề của bài báo (title) và nội dung của bài báo (content). Bài toán đặt ra là sử dụng cây DOM này trích rút các thông tin về tiêu đề của bài báo và nội dung của bài báo. Mẫu trích rút được xây dựng như sau:

Mẫu trích rút tiêu đề bài báo: HTML -> BODY -> B -> CharacterData

Mẫu trích rút nội dung bài báo: HTML -> BODY -> FONT -> CharacterData.

Untitled Diagram11 (2)

Hình 2.6. Mô tả mẫu trích tiêu đề và nội dung bài báo

Việc trích rút được hỗ trợ bởi xây dựng cây DOM cho mã HTML của trang. Các mẫu trích rút này có thể được làm rõ như đường dẫn từ gốc của cây DOM đến node chứa nội dung cần trích rút. Với đầu vào là một trang web có dạng liệt kê danh sách mẩu tin, phương pháp của luận văn được thực hiện thông qua các bước sau:

Bước 1: Xác định các thuộc tính khóa của bộ dữ liệu

Bước 2: Xây dựng bộ dữ liệu mẫu trong trang web

Bước 3: Tìm kiếm các bộ dữ liệu có trong trang web

Bước 4: Xác định các thuộc tính trong một bộ dữ liệu

Giới thiệu về trích rút thông tin sử dụng biểu thức chính quy

Định nghĩa biểu thức chính quy (Regular Expression)

Sử dụng biểu thức chính quy để trích rút thông tin từ web

ÁP DỤNG PHƯƠNG PHÁP TRÍCH RÚT THÔNG TIN ĐỂ XÂY DỰNG ỨNG DỤNG ĐỌC TIN NHANH

Các chức năng chính của chương trình

Thông qua ứng dụng, người dùng có thể đọc từng mẩu tin hoặc đọc toàn bộ thông tin của trang web. Ứng dụng tiến hành xây dựng trang tin thông qua trích rút một mẩu tin từ trang web hoặc thông qua lấy toàn bộ nội dung trang web dựa vào RSS mà người dùng cung cấp. Từ trang web cần trích rút thông tin, ứng dụng sẽ tiến hành trích rút thông tin dựa trên việc phân tích mã HTML và xây dựng cấu trúc cây DOM. Thông tin sau khi được trích rút sẽ được lưu lại trong CSDL để tiến hành xử lý và sau đó hiển thị lên trang tin của ứng dụng. Ứng dụng cũng tiến hành lấy toàn bộ nội dung trang web dựa vào RSS mà người dùng cung cấp sau đó hiển thị lên các trang tin khác của ứng dụng.

Các chức năng chính của chương trình bao gồm:

  • Thu thập các URL cần trích rút nội dung, là đầu vào của bài toán trích rút thông tin.
  • Trích nội dung chính của trang tin tức dựa vào phân tích HTML và xây dựng cây DOM.
  • Lưu nội dung trích rút được vào cơ sở dữ liệu.
  • Chọn lựa và hiển thị kết quả thu được ra màn hình.

Các phương pháp xây dựng trang tin cho ứng dụng

Luận văn tiến hành xây dựng trang tin qua hai phương pháp:

Phương pháp 1: Lấy toàn bộ nội dung trang web dựa vào cấu trúc RSS của trang web.

Phương pháp 2: Lấy một phần nội dung trang web bằng cách trích rút thông tin bằng phân tích HTML và xây dựng cấu trúc cây DOM, sử dụng thuật toán Body Text Extraction.

Sử dụng cấu trúc cây DOM để trích rút thông tin cho ứng dụng đọc tin nhanh

Các bước ttrích rút thông tin dựa trên cây DOM

Để trích rút thông tin bằng phân tích mã HTML dựa trên cấu trúc cây DOM, chúng ta sẽ lần lượt đi hết cấu trúc cây DOM của trang web, phân tích xem thông tin cần lấy nằm ở nhánh nào của cây DOM và tiến hành trích rút thông tin dựa trên ID của các thẻ HTML.

Các bước tiến hành trích rút thông tin dựa trên cây DOM được mô tả như Hình 2.13.

download
Hình 2.13. Các bước trích rút thông tin dựa trên cây DOM

Các bước trích rút thông tin bằng cây DOM được tiến hành như sau:

Bước 1: Xác định mẩu thông tin cần hiển thị trên ứng dụng.

Bước 2: Duyệt cây cấu trúc cây DOM của trang web lấy tin.

Bước 3: Xác định địa chỉ của mẩu tin cần lấy dựa vào ID.

Bước 4: Tiến hành trích rút thông tin dựa vào ID của mẩu tin.

Bước 5: Hiển thị mẩu tin lên trang tin của ứng dụng.

Phân tích mã HTML trang web

Hầu hết tất cả các trang web đều có cấu trúc mã HTML riêng để hiển thị các nội dung của trang. Để lấy một phần trang web, đòi hỏi chúng ta phải cần biết nội dung cần lấy nằm ở phần nào của cấu trúc HTML từ đó dựa vào ID của các thẻ để lấy về phần nội dung cần trích rút.

Quá trình trích rút thông tin là quá trình phân tích mã HTML từ đó lấy mẩu tin dựa vào ID của các thẻ HTML thông qua ngôn ngữ truy vấn CSS Selector.

Truy vấn trang web bằng ngôn ngữ CSS Selector Queries

Như chúng ta đã biết trong một tập tin HTML thì có rất nhiều thẻ giống nhau và thông thường chúng ta sẽ đặt các ID, class cho các thẻ để phân biệt. Trong CSS sẽ dựa vào các ID và class đó để truy xuất tới và cách truy xuất đó gọi là Selector.

Ngôn ngữ truy vấn CSS Selector dùng để trích rút phần nội dung của trang web dựa vào cấu trúc cây DOM của trang web.

Chúng ta có thể truy cập vào trang web https://try.jsoup.org/ để xem cấu trúc cây DOM được trích rút từ trang web và thử viết các câu lệnh truy vấn CSS Selector.

Hình 2.12. Truy vấn trang web bằng CSS Selector Queries

Hình 2.12 minh họa trích rút một phần thông tin giá vàng của trang bằng cách sử dụng ngôn ngữ CSS Selector Queries.

Trích rút thông tin bảng xếp hạng bóng đá

* Mô tả bài toán

Đầu vào của bài toán: Website thethao247.

Đầu ra của bài toán: Nội dung Bảng Xếp Hạng Bóng Đá trích rút từ website thethao247.

* Xây dựng cây DOM của trang web bằng phân tích mã HTML

Dựa vào phân tích mã HTML của trang web, chúng ta xây dựng được cấu trúc cây DOM của trang web như sau:

* Bộ dữ liệu mẫu trích rút các thông tin

* Tiến hành trích rút thông tin

Tương tự phương pháp trích rút về thông tin Bảng Xếp Hạng, chúng ta cũng có thể dùng thuật toán để trích rút nhiều tin khác như thông tin về giá vàng, giá ngoại tệ, dự báo thời tiết, kết quả sổ số từ các trang web khác nhau.

Cài đặt các bước trích rút thông tin trên ngôn ngữ Java

Document document = Jsoup.connect(url_bxh).get();

Elements exephang = document.select(“td.ltid”);

int aa = exephang.size();

for (int i = 0; i < aa; i++) {

xepHang += “\n\n” + exephang.get(i).text();

}

Elements elements = document.select(“td.ltn”);

int a = elements.size();

for (int i = 0; i < a; i++) {

string += “\n\n” + elements.get(i).text();

}

Elements etran = document.select(“td.ltg”);

int b = etran.size();

for (int i = 0; i < b; i++) {

tran += “\n\n” + etran.get(i).text();

}

Elements ediem = document.select(“td.ltp”);

int c = ediem.size();

for (int i = 0; i < c; i++) {

diem += “\n\n” + ediem.get(i).text();

}

Giới thiệu về thuật toán Body Text Extraction

Mô tả bài toán

Đầu vào: Nội dung của các trang tin tức, bao gồm các thẻ HTML và nội dung.

Đầu ra: Nội dung chính của trang tin tức đã được lọc bỏ các thẻ HTML và các nội dung khác.

Giới thiệu về thuật toán trích rút Body Text Extraction

Bước 1: Mỗi trang web tương ứng với 1 tệp định dạng HTML. Làm sạch mã HTML bằng cách loại bỏ những thẻ, những đoạn mã HTML chắc chắn không chứa thông tin liên quan đến nội dung như các thẻ <input>, <script>, <img>, <marquee>, <!– …–>, <iframe>… và phần nội dung nằm bên ngoài cặp thẻ <body></body> của mỗi trang web.

Bước 2: Đối với phần trang web còn lại, xây dựng hai mảng, binary_tokens[] và tokens[].

Binary_tokens[] gồm các phần tử 1 (thẻ 8 HTML) và -1 (dấu hiệu văn bản);

Tokens[] là mảng gồm các phần tử là các dấu hiệu văn bản/thẻ tương ứng với các phần tử trong binary_tokens[];

Gộp các phần tử liền nhau có giá trị giống nhau trong mảng binary_tokens[] lại làm thành một phần tử lưu vào mảng encode[];

Bước 3: Xác định vị trí hai điểm i, j từ mảng binary_tokens[]vừa thu được ở bước 2 sao cho số phần tử -1 (tương ứng với dấu hiệu văn bản) giữa [i,j] là lớn nhất và số phần tử 1 (tương ứng với thẻ) ngoài khoảng [i,j] là lớn nhất. Tiến hành bóc tách dữ liệu trong đoạn [i,j] và loại bỏ các thẻ HTML.

Đánh giá thuật toán

Qua thử nghiệm cho thấy, thuật toán Body Text Extraction áp dụng chính xác khi trích rút nội dung văn bản chính của các trang tin tức, điều này là phù hợp với yêu cầu thu thập toàn bộ nội dung của trang web. Sau khi thu thập về nội dung của trang web, nội dung có thể được tái sử dụng tùy vào mục đích khác nhau của từng hệ thống.

Các giải pháp tổng hợp thông tin cho ứng dụng

Sau khi tiến hành trích rút thông tin từ trang web về CSDL của hệ thống, thông tin sẽ được tổng hợp trước khi đưa đến người sử dụng. Có nhiều giải pháp được đưa ra để tổng hợp thông tin đó là đó là tổng hợp thông tin theo chủ đề, tổng hợp thông tin theo thời gian, tổng hợp thông tin theo nguồn tin. Nội dung của thông tin lấy về được sắp xếp một cách khoa học để dễ tìm kiếm và sử dụng, loại bỏ những tin dư thừa.

Tuy nhiên, khi sử dụng phương pháp trích rút thông tin cho từng trang web thì tình trạng thông tin dư thừa không xảy ra. Vì khi trích rút thông tin, ứng dụng đã lựa chọn mẩu tin cần trích rút và chọn lọc trước khi trích rút.

CHƯƠNG 3

PHÁT TRIỂN ỨNG DỤNG ĐỌC TIN NHANH BẰNG CÁCH TRÍCH RÚT THÔNG TIN TỪ CÁC TRANG WEB

Dựa vào các giải pháp đã trình bày ở nội dung chương trước, nội dung chương này của luận văn sẽ tiến hành phát triển ứng dụng trên môi trường thiết bị di động sử dụng hệ điều hành android và sử dụng thuật toán trích rút thông tin dựa trên phân tích mã HTML và cấu trúc cây DOM.

Toàn bộ nội dung của chương này của luận văn trình bày chi tiết những cài đặt của ứng dụng đọc tin nhanh trên thiết bị di động android bao gồm cài đặt môi trường phần cứng, phần mềm, mô tả các chức năng của hệ thống, phân tích thiết kế hệ thống và tiến hành triển khai việc xây dựng ứng dụng.

CÀI ĐẶT MÔI TRƯỜNG PHẦN CỨNG VÀ PHẦN MỀM

Một số hệ thống đọc tin nhanh đã được xây dựng

Xây dựng ứng dụng chạy độc lập trên thiết bị di động

Lựa chọn công cụ và môi trường lập trình android

Cài đặt và cấu hình JDK

Cài đặt phần mềm Android Studio

Cài đặt máy ảo Genymotion

Các công cụ phần mềm khác

CÁC CHỨC NĂNG CƠ BẢN CỦA HỆ THỐNG ĐỌC TIN NHANH

      1. Chức năng tạo tài khoản và đăng nhập hệ thống
      2. Chức năng xem thông tin tài khoản
      3. Chức năng cập nhật thông tin tài khoản
      4. Chức năng quản lý các trang tin tức
      5. Chức năng đọc tin dựa vào trang tin người dùng đã lưu

Chức năng đọc tin dựa trên việc cung cấp RSS

Chức năng đọc tin mặc định của hệ thống

PHÂN TÍCH THIẾT KẾ HỆ THỐNG

Xác định tác nhân và ca sử dụng

Biểu đồ Use Case

Sơ đồ hoạt động của ứng dụng

Mô hình thực thể liên kết

Thiết kế cơ sở dữ liệu của ứng dụng

CÀI ĐẶT VÀ THỬ NGHIỆM ỨNG DỤNG

Giao diện trang đăng nhập

Giao diện của trang đăng ký tài khoán

Giao diện của trang danh mục chức năng

Giao diện của trang thông tin người dùng

Giao diện của trang chủ

Giao diện của trang đọc tin RSS

Giao diện chức năng quản lý trang

Giao diện chức năng đọc tin tức tổng hợp

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Luận văn đã tập trung nghiên cứu các phương pháp trích rút thông tin từ trang web cũng như trình bày các khái niệm liên quan đến xử lý ngôn ngữ tự nhiên. Trên cở sở đó, luận văn đã tiến hành sử dụng phương pháp trích rút thông tin từ trang web dựa trên phân tích mã HTML và cấu trúc cây DOM, thuật toán Body Text Extraction để xây dựng ứng dụng đọc tin nhanh.

Luận văn cũng đã xây dựng thành công hệ thống đọc tin nhanh trên điện thoại android, góp phần giúp mọi người có thể cập nhật tin tức một cách hiệu quả nhanh chóng và mở ra một hướng mới trong việc khám phá và tiếp cận tri thức.

Tuy nhiên, trong quá trình thực hiện luận văn, do khuôn khổ về thời gian cũng như lượng kiến thức có hạn, luận văn còn vấp phải nhiều hạn chế, nhiều module của ứng dụng chỉ có thể đưa ra ở mức độ ý tưởng. Luận văn sẽ tiếp tục hoàn thiện và phát triển trong thời gian tới.

Từ những nhìn nhận ở trên, tôi cũng mạnh dạn đề xuất các hướng nghiên cứu và phát triển tiếp luận văn trong tương lai như sau:

Nghiên cứu thử nghiệm trên nhiều công cụ khác nhau như ứng dụng trên desktop, web lọc tin, điện thoại iOS.

Nâng cấp giao diện tương tác với người dùng để thuận tiện hơn cho người sử dụng.

Mở rộng trích rút thông tin trên nhiều lĩnh vực nghiên cứu khác như nghiên cứu khoa học, địa lý, du lịch.

Hoàn thành phát triển các module của ứng dụng như quên mật khẩu, đổi mật khẩu, tổng hợp thông tin theo chủ đề,…

LIỆN HỆ:

SĐT+ZALO: 0935568275

E:\DỮ LIỆU COP CỦA CHỊ YẾN\DAI HOC DA NANG\HE THONG THONG TIN\NGUYEN THI KHUYEN\SAU BAO VE

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *