Thực tế trong bộ dữ liệu cào về trong trường năm sinh không có dữ liệu nào mất.Nhưng giả định một vài trường hợp bị null sẽ xử lý như sau: Bước 1 : Khởi tạo dữ liệu null... Pandas rất ph
Trang 4Tiểu Luận Pro(123docz.net)
LỜI CẢM ƠN
Để hoàn thành tiểu luận này, em xin gửi lời cảm ơn chân thành đến:
Các thầy cô trong khoa Công nghệ thông tin đã cung cấp các kiến thức nền tảng để ápdụng và nghiên cứu thông tin trong bài tiểu luận
Em xin bày tỏ lòng biết ơn sâu sắc đến thầy Bùi Thanh Hùng người đã trực tiếp giảngdạy và hướng dẫn tạo mọi điều kiện thuận lợi giúp đỡ em trong quá trình thực hiện đềtài
Tuy đã có nhiều cố gắng, nhưng chắc chắn tiểu luận của em còn có vài điểm sai sót.Rất mong nhận được sự nhận xét, ý kiến đóng góp, phê bình từ phía Thầy để bài tiểuluận được hoàn thiện hơn
Xin chân thành cám ơn!
Trang 5Tiểu Luận Pro(123docz.net)
LỜI CAM ĐOAN
Tôi xin cam đoan đây là sản phẩm đồ án của riêng tôi và được sự hướng dẫn củaBui Thanh Hung Các kết quả trong đề tài này là trung thực và chưa công bố dưới bất
kỳ hình thức nào trước đây Những số liệu trong các bảng biểu phục vụ cho việc phântích, nhận xét, đánh giá được chính tác giả thu thập từ các nguồn khác nhau có ghi rõtrong phần tài liệu tham khảo
Ngoài ra, trong tiểu luận còn sử dụng một số nhận xét, đánh giá cũng như sốliệu của các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích nguồngốc
Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm
về nội dung đồ án của mình Trường đại học Tôn Đức Thắng không liên quan đến
những vi phạm tác quyền, bản quyền do tôi gây ra trong quá trình thực hiện (nếu có)
TP Hồ Chí Minh, ngày 31 tháng 03 năm 2022
Tác giả (ký tên và ghi rõ họ tên)
Nguyễn Văn Tài
Trang 6Tiểu Luận Pro(123docz.net)
PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN
Phần xác nhận của GV hướng dẫn
Tp Hồ Chí Minh, ngày tháng
năm (kí và ghi họ tên)
Phần đánh giá của GV chấm bài
Trang 7Tiểu Luận Pro(123docz.net)
Trang 8Tiểu Luận Pro(123docz.net)
TÓM TẮT
Trang 9MỤC LỤC
1 Viết code cào dữ liệu từ trang Web, lưu kết quả vào 1 file tương ứng và
mô tả ngắn gọn về cấu trúc của trang Web trên 4
2 Với dữ liệu bạn vừa cào về, bạn hãy thực hiện các yêu cầu sau: 5
2.1 Hãy đọc tất cả các thẻ html (div) với lớp là "quote" và lưu nótrong biến 'result’, hiển thị giá trị biến 'result’ ra màn hình? 52.2 Hãy tìm trong biến 'result’ vừa rồi các dữ liệu có chứa nhãn
"small" với class là "author" và in kết quả ra màn hình? 62.3 Hãy viết hàm tacgiaLink() để lấy nội dung của mỗi tác giả Với
2.4 Hãy lưu kết quả ở câu c vào file Quote.csv tương ứng, với mỗi tácgiả là 1 dòng dữ liệu Bạn được yêu cầu thu thập ít nhất 40 câu nói nổitiếng từ trang web trên một cách tự động theo code của các ý trên? 7
Trang 101 Xử lý dữ liệu- Data Imputation 8
Trang 11DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT
Trang 12DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ, ĐỒ THỊ
Trang 13CHƯƠNG I - THU THẬP DỮ LIỆU
1 Viết code cào dữ liệu từ trang Web, lưu kết quả vào 1 file tương ứng
và mô tả ngắn gọn về cấu trúc của trang Web trên
1.1 Code cào dữ liệu
Trang 141.2 Cấu trúc trang Web
2 Với dữ liệu bạn vừa cào về, bạn hãy thực hiện các yêu cầu sau:
2.1 Hãy đọc tất cả các thẻ html (div) với lớp là "quote" và lưu nó trong biến 'result’, hiển thị giá trị biến 'result’ ra màn hình?
Trang 152.2 Hãy tìm trong biến 'result’ vừa rồi các dữ liệu có chứa nhãn "small" với class là "author" và in kết quả ra màn hình?
2.3 Hãy viết hàm tacgiaLink() để lấy nội dung của mỗi tác giả Với mỗi tác giả in ra màn hình các nội dung
Trang 162.4 Hãy lưu kết quả ở câu c vào file Quote.csv tương ứng, với mỗi tác giả
là 1 dòng dữ liệu Bạn được yêu cầu thu thập ít nhất 40 câu nói nổi tiếng
từ trang web trên một cách tự động theo code của các ý trên?
Trang 17CHƯƠNG II - KHAI PHÁ DỮ LIỆU
1 Xử lý dữ liệu- Data Imputation
1.1 Giới thiệu:
Missing Data là gì?
Missing data là dữ liệu bị thiếu, được hiển thị như NaN, Nat, Null, N/A,… Missing
Data xuất hiện do nhiều nguyên nhân như:
Người dùng quên điền
Dữ liệu bị mất trong quá trình chuyển thủ công từ cơ sở dữ liệu cũ
Lỗi của chương trình
Thiếu dữ liệu do trùng hợp
Missing Data có thể được phân thành 3 loại:
Missing at Random (dữ liệu khuyết ngẫu nhiên)
Missing Completely at Random (dữ liệu thiếu hoàn toàn ngẫu nhiên)
Missing Not at Random (dữ liệu khuyết không ngẫu nhiên)
1.2 Một số giá trị của dữ liệu Trường ngày sinh chưa có, bạn hãy đề xuất cách điền?
Thực tế trong bộ dữ liệu cào về trong trường năm sinh không có dữ liệu nào mất.Nhưng giả định một vài trường hợp bị null sẽ xử lý như sau:
Bước 1 : Khởi tạo dữ liệu null
Trang 18Bước 3 : Trong trường hợp chúng ta không sử dụng cột “Namsinh”, giải pháp làchúng ta bỏ cột “Namsinh” Nhưng sẽ không tính được tuổi nếu không có dữkiện năm sinh => không phù hợp
Bước 4 : Loại bỏ các dữ liệu không liên quan nhưng có ảnh hưởng đến các dữ liệukhác Nhưng cũng không tính được tuổi của tác giả => không phù hợp
Bước 5 : Dùng phương pháp ffill : lấy giá trị dòng trên chèn xuống dòng dưới.Nếu dòng trên bị null thì không thể thay thế => không phù hợp
Bước 6 : Dùng phương pháp bfill : lấy giá trị dòng dưới chèn lên dòng trên Nếu
Trang 19Bước 7 : Lấy giá trị xuất hiện nhiều nhất trong mảng sẽ thay những chỗ còn lại.
Do đó sẽ điền được tất cả trường trong dataframe mà không bị bỏ sót ô nào =>phù hợp
1.3 Bạn hãy thêm vào Trường Tuoi (Tuổi) và đề xuất cách điền tuổi của các tác giả?
2 Khám phá dữ liệu- Data Exploration
2.1 Giới thiệu
Pandas là một thư viện Python cung cấp các cấu trúc dữ liệu nhanh, mạnh mẽ, linhhoạt và mang hàm ý Tên thư viện được bắt nguồn từ panel data (bảng dữ liệu) Pandasđược thiết kế để làm việc dễ dàng và trực quan với dữ liệu có cấu trúc (dạng bảng, đa
Trang 20Mục tiêu của pandas là trở thành khối căn bản (building block) cấp cao cơ bản chocông việc thực tế, phân tích dữ liệu thế giới thực trong Python, và rộng hơn là trở thànhcông cụ thao tác / phân tích mã nguồn mở mạnh mẽ và linh hoạt nhất có sẵn trong bất
kỳ loại ngôn ngữ lập trình nào
Pandas rất phù hợp với nhiều loại dữ liệu khác nhau:
Dữ liệu dạng bảng với các cột được nhập không đồng nhất, như trong bảng
Bất kỳ hình thức khác của các bộ dữ liệu quan sát / thống kê Dữ liệu thực
sự không cần phải được dán nhãn vào cấu trúc dữ liệu pandas
Pandas được xây dựng dựa trên NumPy Hai cấu trúc dữ liệu chính của pandas
Trang 213 groupBy
Trang 22Khi bạn lần đầu tiên nhận được một bộ dữ liệu mới, bạn muốn nhanh chóng khám phá
nó và có được cảm giác về nội dung của nó Pandas có một số phương pháp cho việcnày Đầu tiên là đầu, trả về vài hàng đầu tiên của DataFrame Chức năng đầu được sửdụng để xem vài hàng đầu tiên của bộ dữ liệu
Trang 23hàng và cột theo chỉ số số nguyên của chúng loc và iloc cũng cho phép bạn chọn cảhàng và cột từ DataFrame
groupBy()
Pandas groupBy() hàm được sử dụng để chia dữ liệu thành các nhóm bằng cách sửdụng một số tiêu chí được xác định trước Trong ví dụ dưới đây, chúng tôi sẽ tính thunhập trung bình của các ứng cử viên bằng cách nhóm nó theo độ tuổi
replace()
Hàm replace() trả về một bản sao của chuỗi ban đầu sau khi đã thay thế các chuỗi con
cũ bằng chuỗi con mới
Trang 242.2 Thống kê về tác giả và câu nói nổi tiếng có trong bộ dữ liệu
Cách tiếp cận:
● Nhóm dataframe theo tác giả
● Đếm số lần xuất hiện của từng tác giả (tương ứng với số câu nói của tácgiả đó)
df groupby( 'Tacgia' ).size().reset_index( name = 'So cau noi' )
2.3 Thống kê về năm sinh và độ tuổi của các tác giả
Cách tiếp cận:
● Nhóm dataframe theo tác giả
● Hiển thị trường tuổi và năm sinh theo tác giả
● Sắp xếp theo thứ tự tăng dần tuổi
2.4 Thống kê về các câu nói nổi tiếng như: câu dài nhất, ngắn nhất, số từ
Cách tiếp cận:
● Đếm số từ của từng câu nói
● Sắp xếp theo thứ tự giảm dần số từ
Trang 252.5. Thống kê về các từ được sử dụng trong các câu
nóiCách tiếp cận:
● Gộp các câu nói lại với nhau (string + string)
● Đếm tần suất của từng từ sau khi gộp
● Tạo dataframe mới chứa từ và tần suất vừa tính được
2.6. Phân tích, trực quan mối quan hệ giữa giữa tác giả và câu nói nổitiếng
Cách tiếp cận:
● Bổ sung trường tags cho dataframe
Trang 26● Tạo dataframe chứa tác giả và tags vừa tìm được
Cách tiếp cận:
● Tạo dataframe mới với 2 trường quote và tags của dataframe gốc
Cách tiếp cận:
● Tạo dataframe mới với 2 trường quote và tags của dataframe gốc
● So sánh lần lượt tag của từng quote với tags của từng tác giả Nếu tagcủa quote tồn tại trong tags của tác giả thì đếm 1
● Cộng tất cả lại rồi chia cho số tag của quote * 100 thì được tỉ lệ mốiquan hệ giữa quote và tác giả ( % quote thuộc về tác giả)
Trang 272.7 Phân tích, trực quan mối quan hệ giữa các tác giả với
Trang 283.2 Hãy dự đoán tên của người nổi tiếng theo câu nói dựa trên các đặctrưng bạn trích xuất ở trên và đánh giá trên bộ dữ liệu đã cho với tỉ lệTrain/Test và các độ đo phù hợp?
Cách tiếp cận :
Dựa trên mối quan hệ của tác giả và quote được thiết lập ở trên
Tìm ra tỉ lệ phần trăm cao nhất của từng quote
Trả về tác giả ứng với tỉ lệ phần trăm trên
Test với từng câu trong bộ dữ liệu Tính độ chính xác bằng cách lấy số câu dựđoán được chia cho tổng số câu rồi nhân với 100
Thử nghiệm dự đoán 1 câu nói bất kì trong bộ dữ liệu
Trang 29CHƯƠNG III - TÀI LIỆU THAM KHẢO
1.1 Các phương pháp imputation đơn giản cho missing value:
Trang 30PHỤ LỤC
Phần này bao gồm những nội dung cần thiết nhằm minh họa hoặc hỗ trợ cho nộidung luận văn như số liệu, biểu mẫu, tranh ảnh nếu sử dụng những câu trả lời cho
một bảng câu hỏi thì bảng câu hỏi mẫu này phải được đưa vào phần Phụ lục ở dạng
nguyên bản đã dùng để điều tra, thăm dò ý kiến; không được tóm tắt hoặc sửa đổi.
Các tính toán mẫu trình bày tóm tắt trong các biểu mẫu cũng cần nêu trong Phụ lục củaluận văn Phụ lục không được dày hơn phần chính của luận văn
MÔN XỬ LÍ DỮ LIỆU LỚN
MÔN XỬ LÍ DỮ LIỆU LỚN
LỜI CẢM ƠN
LỜI CAM ĐOAN
PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN
CHƯƠNG I - THU THẬP DỮ LIỆU
Viết code cào dữ liệu từ trang Web, lưu kết quả vào 1 file tương ứng và mô tả ngắn gọn về cấu trúc của trang Web trên
Trang 31theo code của các ý trên?
CHƯƠNG II - KHAI PHÁ DỮ LIỆU
Xử lý dữ liệu- Data Imputation
Giới thiệu:
Một số giá trị của dữ liệu Trường ngày sinh chưa có, bạn hãy đề xuất cách điền?
Bước 2 : Xử lý dữ liệu null bằng cách giảm số lượng cột trong dataframe sẽ xảy ra việc mất dữ liệu
Bạn hãy thêm vào Trường Tuoi (Tuổi) và đề xuất cách điền tuổi của các tác giả?
Khám phá dữ liệu- Data Exploration
Giới thiệu sort_values()
Phân tích, trực quan mối quan hệ giữa giữa tác giả và câu nói nổi tiếng
Phân tích, trực quan mối quan hệ giữa các tác giả với nhau Cách tiếp cận:
tag của tác giả này tồn tại trong tags của tác giả kia thì lấy tag đó
Suy luận
CHƯƠNG III - TÀI LIỆU THAM KHẢO
PHỤ LỤC