Ứng dụng phương pháp luận sáng tạo khoa học trong tin học – Rút trích và phân tích dữ liệu
Trang 1Trường Đại Học Công Nghệ Thông Tin
…
Báo Cáo Đề Tài
Nội Dung : Ứng dụng phương pháp luận sáng tạo khoa học trong tin học –
Rút trích và phân tích dữ liệu
Môn: Phương pháp luận sáng tạo khoa học
Giáo viên hướng dẫn : GS.TSKH Hoàng Văn KiếmSinh viên thực hiện: Nguyễn Hoàng Hiếu
MSSV: 07520118Lớp: KHMT02
Trang 2LỜI CẢM ƠN
Em xin chân thành cám ơn tất cả các thầy, cô giáo đã giảng dạy em trong suốt thời gian qua Em xin cảm ơn GS-TSKH Hoàng Văn Kiếm truyền đạt cho
em những kiến thức quý báu về Phương pháp luận sáng tạo khoa học giúp em
hoàn thành tốt đề tài này
Bài làm của em có thể còn nhiều thiếu sót do kiến thức có hạn và thời gian không cho phép Em rất mong nhận được sự đóng góp quí báu của các thầy cô
Thành phố Hồ Chí Minh, ngày 5 tháng 1 năm 2011
Sinh viênNguyễn Hoàng Hiếu
Trang 3MỤC LỤC
MỤC LỤC 3
1 Vấn đề khoa học 5
2 Phương pháp giải quyết vấn đề khoa học về phát minh, sáng chế 5
TÀI LIỆU THAM KHẢO 32
A. NGHIÊN CỨU KHOA HỌC
I Khái niệm khoa học
Trang 4Khoa học là quá trình nghiên cứu nhằm khám phá ra những kiến thức mới, học thuyết mới… về tự nhiên và xã hội Những kiến thức hay học thuyết mới nầy, tốt hơn, có thể thay thế dần những cái cũ, không còn phù hợp.
Khoa học bao gồm một hệ thống tri thức về qui luật của vật chất và
sự vận động của vật chất, những qui luật của tự nhiên, xã hội, và tư duy
Hệ thống tri thức này hình thành trong lịch sử và không ngừng phát triển trên cơ sở thực tiễn xã hội
II Phân loại khoa học
Có nhiều hướng phân loại khoa học: theo nguồn gốc, theo mục đích ứng dụng, theo mức độ khái quát, theo tính tương liên, theo cơ cấu hệ thống tri thức, theo đối tượng nghiên cứu
III Nghiên cứu khoa học
Nghiên cứu khoa học là một hoạt động tìm kiếm, xem xét, điều tra, hoặc thử nghiệm Dựa trên những số liệu, tài liệu, kiến thức,… đạt được
từ các thí nghiệm nghiên cứu khoa học để phát hiện ra những cái mới về bản chất sự vật, về thế giới tự nhiên và xã hội, và để sáng tạo phương pháp và phương tiện kỹ thuật mới cao hơn, giá trị hơn
Trang 5B PHƯƠNG PHÁP LUẬN SÁNG TẠO KHOA HỌC
I Khái niệm
Phương pháp luận sáng tạo và đổi mới là phần ứng dụng của Khoa học
về sáng tạo, bao gồm hệ thống các phương pháp và các kĩ năng cụ thể giúp nâng cao năng suất và hiệu quả, về lâu dài tiến tới điều khiển tư duy sáng tạo của người sử dụng
II. Những nội dung chính trong Phương Pháp Luận Sáng Tạo Và
Đổi Mới
Vấn đề khoa học là câu hỏi đặt ra khi người nghiên cứu đứng trước mâu thuẫn giữa tính hạn chế của tri thức khoa học hiện có với yêu cầu phát triển tri thức đó ở trình độ cao hơn
Có 40 thủ thuật (nguyên tắc) sáng tạo cơ bản:
1) Nguyên tắc phân nhỏ
2) Nguyên tắc “tách khỏi”
3) Nguyên tắc phẩm chất cục bộ
4) Nguyên tắc phản đối xứng5) Nguyên tắc kết hợp
6) Nguyên tắc vạn năng
Trang 67) Nguyên tắc “chứa trong”
8) Nguyên tắc phản trọng lượng
9) Nguyên tắc gây ứng suất sơ bộ
10) Nguyên tắc thực hiện sơ bộ
11) Nguyên tắc dự phòng
12) Nguyên tắc đẳng thế
13) Nguyên tắc đảo ngược
14) Nguyên tắc cầu (tròn) hoá
15) Nguyên tắc linh động
16) Nguyên tắc giải “thiếu” hoặc “thừa”
17) Nguyên tắc chuyển sang chiều khác
18) Nguyên tắc sử dụng các dao động cơ học
19) Nguyên tắc tác động theo chu kỳ
20) Nguyên tắc liên tục tác động có ích
21) Nguyên tắc “vượt nhanh”
22) Nguyên tắc biến hại thành lợi
23) Nguyên tắc quan hệ phản hồi
24) Nguyên tắc sử dụng trung gian
25) Nguyên tắc tự phục vụ
Trang 727) Nguyên tắc “rẻ” thay cho “đắt”
28) Thay thế sơ đồ cơ học
29) Sử dụng các kết cấu khí và lỏng
30) Sử dụng vỏ dẻo và màng mỏng
31) Sử dụng các vật liệu nhiều lỗ
32) Nguyên tắc thay đổi màu sắc
33) Nguyên tắc đồng nhất
34) Nguyên tắc phân hủy hoặc tái sinh các phần
35) Thay đổi các thông số hoá lý của đối tượng
36) Sử dụng chuyển pha
37) Sử dụng sự nở nhiệt
38) Sử dụng các chất oxy hoá mạnh
39) Thay đổi độ trợ
40) Sử dụng các vật liệu hợp thành (composite)
Trang 8C. ÁP DỤNG MỘT SỐ THỦ THUẬT SÁNG TẠO CƠ BẢN VÀO ỨNG DỤNG THỰC TẾ GIẢI QUYẾT VẤN ĐỀ TRONG TIN HỌC – RÚT TRÍCH VÀ PHÂN TÍCH DỮ LIỆU
1 Đặt vấn đề:
Khi thương mại điện tử đang được sử dụng rộng rãi thì nhu cầu tìm kiếm thông tin sản phẩm trên internet là nhu cầu không thể thiếu của người dùng Tuy nhiên các hệ thống tìm kiếm hiện nay hầu như chỉ dừng lại với những kết quả trả
về là các đường link liên quan đến từ khóa cần tìm, đôi khi còn có các thông tin không liên quan đến nội dung cần tìm, người sử dụng phải mất thêm một khoảng thời gian nữa chỉ để coi các thông tin liên quan đến sản phẩm cần tìm của mình
từ các đường link tìm kiếm được ở trên
Vấn đề được đặt ra là ta phải xây dựng hệ thống như thế nào để giải quyết vấn đề trên? Để giải quyết vấn đề này, ta cần xây dựng hệ thống rút trích sao cho đáp ứng đầy đủ thông tin mà người dùng mong muốn- cụ thể ở đây là
hệ thống có thể tìm được những thông tin phản hồi (feedback) của các sản phẩm và phân loại những feedback đó
2 Hướng tiếp cận:
Có 2 cách tiếp cận để tìm kiếm các feedback trên hệ thống tìm kiếm
- Tìm kiếm feedback dựa trên những trang website chỉ định trước
- Tìm kiếm feedback dựa vào máy học
Trang 9Tuy nhiên cả hai phương pháp này đều có những nhược điểm riêng và tốc
độ xử lý cũng cần phải được quan tâm
3 Cơ sở lý thuyết:
a Phương pháp so sánh mẫu (template):
Hầu hết các trang web hiện nay đều là những trang web được thiết kế trên các template có sẵn, đặc điểm của những trang cùng template là có cấu trúc tương tự nhau, do đó việc tiến hành rút trích dữ liệu từ những trang web trên chỉ cần so khớp với một template từ đó xác định khung trình bày chung và đi đến rút trích ra nội dung nằm trong phần được xác định chứa nội dung chính trên trang mẫu
Để xác định được khung trình bày chung giữa một template và trang web cần rút trích thông thường người ta hay phân tích cấu trúc 2 trang web thành dạng cây đa phần đựa vào mã html
Hình 2.1: ví dụ về một cây đa phân
Trang 10Từ đó người rút trích sẽ dễ dàng xác định được nội dung của trang template nằm tại Node nào trên cây và đối chiếu sang trang cần rút trích Phương pháp này không đòi hỏi người rút trích khả năng lập trình cao, dễ dàng tiến hành tuy nhiên cấu trúc của các trang web là luôn luôn biến đổi nên việc xác định các template mẫu phải luôn được cập nhật, đây là hạn chế lớn nhất của phương pháp này.
b Phân tích mã HTML:
Dựa trên việc phân tích và xử lý trên mã html source code của một trang web, hoặc phân tích các html document ra HTML DOM Tree rồi dựa vào tree này để lấy ra các dữ liệu cần thiết
Html document là một tài liệu được định dạng theo mô hình cây dưới dạng các tag, các dữ liệu đã được định dạng sẵn theo một mô hình chung
Do đó khi phân tích cú pháp của một website cụ thể thì có thể tìm ra những quy luật bóc tách dữ kiệu từ website đó
Trang 11Hình 2.2: ví dụ về một html dom tree
Khi rút trích dựa trên source code html người ta thường chú ý đến : css, tag name, attributes…cùng với sử dụng các biểu thức chính quy (Regular Expressions) từ đó người rút trích có thể xác định được vị trí nội dung cần lấy tuy nhiên cách này đòi hỏi người rút trích phải am hiểu tốt về mã html
Phương pháp phân tích mã html khá hiệu quả, ít có nội dung thừa tuy nhiên mỗi website lại có định dạng khác nhau Việc áp dụng phương pháp này thành công trên mộtwebsite này không có nghĩa là thành công trên website
Trang 12khác, phương pháp này đòi hỏi người rút trích phải có kiến thức nhất định về
mã html và kỷ thuật lập trình
c RSS:
RSS là một định dạng tập tin thuộc họ XML(eXtensible Markup Language) dùng trong việc chia sẻ tin tức Web được dùng bởi nhiều website tin tức và blog Chữ viết tắt (theo tiếng Anh) dùng để chỉ các chuẩn sau:
• Rich Site Summary (RSS 0.91)
• RDF Site Summary (RSS 0.9 and 1.0)
• Really Simple Syndication (RSS 2.0.0)
Định dạng RSS cung cấp nội dung web và tóm lược nội dụng web cùng với các liên kết đến phiên bản đầy đủ của nội dung tin đó, và các siêu-dữ-liệu (meta-data) khác Thông tin này được cung cấp dưới dạng một tập tin XML
RSS Icon
Trang 13được gọi là một RSS feed, webfeed, RSS stream, hay RSS channel
Hình 2.3 : ví dụ về cấu trúc rss
Cùng với việc hỗ trợ cung cấp chia sẻ thông tin, RSS cho phép những độc
giả thường xuyên của một website có thể theo dõi các cập nhật của site đó
Vào giữa năm 2000, việc sử dụng RSS trở nên phổ biến.Nhờ vào RSS các
nhà cung cấp tin tức cho phép các website khác tổng hợp các bản tin, tiêu đề
dưới nhiều hình thức thỏa hiệp khác nhau RSS ngày nay được dùng cho
Trang 14nhiều mục dích bao gồm tiếp thị , báo cáo lỗi hay các hoạt động cập nhật, xuất bản định kỳ…
Hình 2.4: Giao diện một website sử dụng rss
Cấu trúc của RSS thực chất là XML document vì vậy việc rút trích dữ liệu
từ các website có RSS sẽ đơn giản hơn rất nhiều so với trang web sử dụng html thông thường, bởi vì xml là một cấu trúc chặt chẽ về mặt ngữ pháp
Trang 15Search Engine là một thư viện thông tin khổng lồ về các website, cho phép người sử dụng có thể tìm kiếm các website cần quan tâm theo 1 chủ đề nào đó căn cứ vào các từ khóa mà người đó yêu cầu Search Engine tìm kiếm Trữ lượng thông tin của Search Engine thực chất là một cơ sở dữ liệu (database) cực lớn Search Engine phổ biến hiện nay là Google, Bing…
e Thuật toán K-means:
Đây là thuật toán gom nhóm văn bản, dựa trên việc thực hiện vectơ hóa các văn bản đầu vào, tính trọng tâm của các vectơ và tiến hành gom nhóm
Để tiến hành vectơ hóa, các văn bản sẽ được thống kê dựa trên tần suất xuất hiện của các từ trong văn bản, thông thường sau khi thống kê người ta chỉ lấy một số từ có tần suất xuất hiện cao để tiến hành vectơ hóa.Ví dụ như văn bản có khoảng 5000 từ được thống kê thì người ta thường lấy 1000 từ có tần suất xuất hiện cao nhất
Thuật toán tiến hành gom nhóm bằng cách cho ngẫu nhiên k vị trí trọng tâm của mỗi nhóm(với k là số nhóm cần gom) Sau đó xác định các điểm gần các trọng tâm nhất và gom lại thành nhóm Tiến hành tính toán lại trọng tâm của nhóm.Thuật toán sẽ kết thúc khi trọng tâm của các nhóm là không thay đổi nhiều qua các lần gom nhóm
Các bước của thuật toán:
Bước 1: Khởi tạo chọn k trọng tâm { } i=
Bước 2: Tính khoảng cách
= { | || - || || - || Với =
Trang 16Bước 3: Cập nhật lại trọng tâm theo công thức
Trang 17Bước 3 : cập nhật lại trọng tâm
Trọng tâm nhóm 1 c1=(1,1)
Trọng tâm nhóm 2 c2 (x,y)= ( )=(13/3,10/3)
Bước 4 :
• lặp lại bước 2 : tính khoảng cách
S(A,c1)=0 < S(A,c2)=9.89=> A thuộc nhóm 1
• lặp lại bước 2: tính khoảng cách
S(A,c1)=0.25 < S(A,c2)=18.5=> A thuộc nhóm 1
Trang 18c1=(3/2,1) và c2=(9/2,7/2)
thuật toán kết thúc
4 Áp dụng nguyên tắc sáng tạo:
- Nguyên tắc sử dụng trung gian: sử dụng các cơ sở dữ liệu trung gian chứa các tên sản
phẩm đã tìm được để dựa trên đó tìm kiếm và phân tích feedback.
- Nguyên tắc phân nhỏ: bài toán tìm kiếm feedback sẽ được phân nhỏ thành nhiều bài
toán nhỏ như: rút trích dữ liệu, tìm kiếm dữ liệu, phân tích dữ liệu
- Nguyên tắc sao chép: sử dụng thuật toán Kmean có sẵn để phân chia dữ liệu và gom
nhóm.
- Nguyên tắc linh động: sử dụng nhiều nguồn trang web tìm kiếm và danh mục sản phẩm
khác nhau.
5 Các bài toán cần thực hiện
a Bài toán xây dựng cây danh mục sản phẩm:
- Mục đích bài toán: hệ thống tên sản phẩm theo loại sản phẩm và nhà sản xuất, bài toán chỉ dừng lại ở mức độ lấy tên model của từng loại sản phẩm mà không đi vào thông tin chi tiết của từng sản phẩm
Trang 19Hình 3.1: mô tả cây danh mục sản phẩm
- Có rất nhiều cách để thực hiện cây danh mục sản phẩm này ví dụ như rút trích dữ liệu từ các website , thống kê trực tiếp hoặc dùng xử lý ngôn ngữ tự nhiên để xác định tên sản phẩm và hảng sản xuất…tuy nhiên do yêu cầu bài toán là khá đơn giản nên việc lựa chọn một phương pháp nhanh và hiệu quả là điều cần xem xét đến
- Phương pháp rút trích dữ liệu từ các website trong trường hợp này được xem là hiệu quả, tuy nhiên vẫn có vấn đề gặp phải đó là mức độ thông tin các
Trang 20trang web cần lấy có đáp ứng được yêu cầu bài toán? Nếu lấy dữ liệu trên nhiều website thì làm sao xử lý thông tin trùng khi mỗi website có những định dạng hiển thị dữ liệu khác nhau
- Để giải quyết vấn đề xử lý thông tin trùng thì rất phức tạp ,do đó việc chọn một website có lượng thông tin tương đối đầy đủ là một giải pháp có thể tạm chấp nhận được, ở đây thực hiện rút trích dữ liệu từ trang web mua bán trực tuyến www.vatgia.com dựa trên công cụ search của chính trang này Tuy nhiên
do đây là cách lấy dữ liệu bằng phương pháp phân tích mã html nên chỉ có tác dụng trong thời điểm hiện tại và chương trình có thể sẽ không hoạt động được khi website thay đổi source code
- Khi search với từ khóa sony vaio ta thấy url trên thanh address như sau: http://www.vatgia.com/home/listudv_v2.php?
&keyword=sony+vaio&keyword_reject=&price=0&price_to=0&iCat=317&module
=product&page=1 trong đoạn url này ta chỉ cần chú ý đến 2 vị trí là
keyword=sony+vaio và page=1trong đó sony+vaio chính là từ khóa mà ta truyền vào và page=1 sẻ hiển thị trang 1 trong kết quả search được Như vậy, rõ ràng
ta chỉ cần truyền biến vào 2 vị trí này là có thể lấy được các kết quả từ các từ khóa mong muốn Vấn đề bây giờ là ta tải các kết quả search được này và tách
ra dữ liệu mong muốn
Trang 21- Ta để ý thấy trong mã html thì tên sản phẩm được trình bày trong tag <div
- Do đó , chỉ cần split thông tin trong tag <div class="name"> thì sẽ cho ta thông tin tên sản phẩm
Trang 22Hình 3.2: demo rút trích thông tin sản phẩm từ vatgia.com
b Search Engine Association(Google):
- Hiện nay, Google vẫn là lựa cho số một cho rất nhiều người trên thế giới
để tìm kiếm Ngoài ra Google còn cho phép người dùng sử dụng chức năng
Trang 23Tuy nhiên khi sử dụng Google API kết quả trả về chỉ được tối đa 8 trang và mỗi trang chỉ được 8 kết quả tìm kiếm
- Một khó khăn nữa khi sử dụng search engine của Google đó là bị giới hạn số lần truy vấn Đối với người dùng search ít truy vấn thì không vấn đề gì nhưng đối với những công cụ sử dụng search engine của google để tìm kiếm dữ liệu tự động và cần lượng kết quả truy vấn là khá lớn thì ngay lập tức bị chặn capture char, ý tưởng hạn chế capture char được đưa ra trong trường hợp này
là thực hiện từng truy vấn cách nhau trong một khoảng thời gian nhất định
- Cũng với cách phân tích url tương tự như bài toán xây dựng cây danh mục sản phẩm ta có thể dễ dàng có được các kết quả truy vấn Đoạn URL khi earch từ khóa sony vaio: http://www.google.com.vn/search?num=10s&q=sony+vaio&ie=utf-8&oe=utf-8
- Trong đó &q=Sony+VAIO chính là từ khóa tìm kiếm mà ta cần tìm và num=50 là số kết quả hiển thị trên một trang Từ đó ta có thể dễ dàng truyền tham số vào 2 vị trí này và có thể lấy các kết quả trả về của truy vấn
- Xem source code của trang vừa tìm kiếm ta thấy có dạng như sau:
- Trong đó ta chỉ cần chú ý đến chuỗi <li class=g><h3 class=\"r\"><a href=\"http:// và sau đó là địa chỉ url của trang web kết quả và công việc còn lại là tiến hành lấy các url đó