HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA CƠNG NGHỆ THÔNG TIN I
-----
🕮
-----
Báo cáo Thực tập cơ sở
GIẢNG VIÊN HƯỚNG DẪN:
Đinh Xuân Trường
SINH VIÊN THỰC HIỆN:
Nguyễn Duy Mạnh
MÃ SINH VIÊN:
LỚP:
HÀ NỘI, 2022
B19DCCN417
D19CQCN09-B
Mục Lục
Báo cáo Thực tập cơ sở .......................................................................................... 1
GIỚI THIỆU CHUNG............................................................................................ 5
Mục tiêu thực tập cơ sở ......................................................................................... 5
Mục tiêu và định hướng của cá nhân ................................................................... 6
PATH LEARNING ................................................................................................. 6
Quy trình học tập ................................................................................................... 6
Đề tài dự án (Tuần thứ 6) ...................................................................................... 6
Nội dung thực tập đề xuất ..................................................................................... 7
BÁO CÁO TIẾN ĐỘ TỪNG TUẦN....................................................................... 8
Tuần 1 (27/3-3/4) .................................................................................................... 8
Tuần 2 (3/4-10/4) .................................................................................................... 9
Tuần 3 (11/4-17/4) ................................................................................................ 10
Tuần 4 (18/4-24/4) ................................................................................................ 12
Tuần 5 (25/4-1/5) .................................................................................................. 13
Tuần 6 (2/5-8/5) .................................................................................................... 16
Tuần 7 (8/5-15/5) .................................................................................................. 18
Tuần 8 (15/5-22/5) ................................................................................................ 20
Tuần 9 +10(22/5-29/5) .......................................................................................... 21
Nội Dung Dự án TTCS ......................................................................................... 27
I.
Giới Thiệu .................................................................................................... 27
1.
Tổng quan ................................................................................................. 27
2.
phát biểu bài toán ..................................................................................... 27
3.
ý nghĩa của dự án ..................................................................................... 27
4.
Quy Trình Dự Án ..................................................................................... 28
Thu Thập dữ liệu: Thu thập dữ liệu bằng 2 công nghệ là: Scrapy và AkaBot. ..... 28
Làm sạch dữ liệu: Chuyển dữ liêu thu thập được dưới dạng Data Frame -> tiến
hành làm sạch bằng Python.................................................................................... 28
Visualizaton: Sử dụng thư viện Plotly để trực quan hoá dữ liệu. .......................... 28
2
II.
Cơ sở lý thuyết và các công nghệ sử dụng.............................................. 28
1.
Tự động hóa quy trình(RPA) bằng Akabot ........................................... 28
2.
pandas.DataFrame ................................................................................... 30
3.
plotly python ( ............................................. 30
4.
scrapy ........................................................................................................ 30
5.
So Sánh thu thập dữ liệu bằng Scrapy và AkaBot ................................ 32
Scrapy.................................................................................................................... 32
AkaBot .................................................................................................................. 32
Thu thập bằng việc đi vào các đoạn HTML để lấy dữ liệu -> sử dụng XPath ...... 32
Thu thập bằng việc đi vào các đoạn HTML để lấy dữ liệu -> sử dụng XPath ...... 32
-Có thể thu thập ở nhiều trang nhờ việc tìm link trong đoạn mã HTML để chuyển
trang ....................................................................................................................... 32
Thu thập ở 1 trang ( thu thập ở nhiều trang yêu cầu trình độ cao và viết bằng C#)32
-Dữ liệu thô thu được khá sạch .............................................................................. 32
Dữ liệu thô thu được trùng lặp và phải xử lí nhiều để sử dụng. ............................ 32
Khơng thu thập được ở tất cả các web ................................................................... 32
- Thu Thập được ở tất cả các web và lấy được lượng thông tin đầy đủ bằng việc
cào 1 trường nhiều lần............................................................................................ 32
III.
1.
2.
Xử lý dữ liệu và Visualization dữ liệu .................................................... 32
Xử lý dữ liệu.............................................................................................. 32
Visualization ............................................................................................. 35
IV.
1.
2.
3.
Đánh giá .................................................................................................... 45
Ưu điểm của dự án ................................................................................... 45
Nhược điểm của dự án ............................................................................. 45
Hướng phát triển của dự án .................................................................... 45
Kết Luân Quá Trình Thực Tập ............................................................................ 45
I.
Kết quả đạt được ......................................................................................... 45
1.
Nền tảng lý thuyết .................................................................................... 45
2. Dự án ................................................................................................................. 46
II.
Bài học kinh nghiệm................................................................................. 46
III.
Những điều cần cải thiện ......................................................................... 46
3
Mục Lục Hình Ảnh Báo Cáo Dự Án TTCS( Phần 4)
Hình 1 Sử dụng Extract Stractured Data(B) để lấy dữ liệu thơ từ web ................. 29
Hình 2: Xpath của các trường dữ liệu .................................................................... 29
Hình 3: Code lấy dữ liệu từ Cellphones của nhện ................................................. 31
Hình 4: Dữ liệu thơ được lấy từ nhện .................................................................... 32
Hình 5: Dữ liệu chuẩn hố ..................................................................................... 33
Hình 6: Dữ liệu cellphones .................................................................................... 34
Hình 7: Dữ liệu FPT SHOP ................................................................................... 34
Hình 8: Dữ liệu Hà Nam Mobile ........................................................................... 35
Hình 9: Dữ liệu Thế Giới Di Động ........................................................................ 35
Hình 10: Số lượng điện thoại đang được bán ở các store ...................................... 36
Hình 11: Lượng tương tác của người dùng tại các store ........................................ 37
Hình 12: Tìm kiếm điện thoại theo tên .................................................................. 38
Hình 13 tìm kiếm điện thoại theo tên đúng và đưa ra gợi ý cửa hàng nên đến mua
................................................................................................................................ 39
Hình 14: Số lượng điện thoại theo hãng ở các store(4 đồ thị) ............................... 40
Hình 15: Tỉ lệ điện thoại theo hãng ở các store(4 đồ thị) ...................................... 41
Hình 16: số lượng điện thoại theo yêu cầu ở 4 chi nhánh ...................................... 42
Hình 17: Tỉ lệ các hãng điện thoại ở cả 4 Store ..................................................... 43
Hình 18: Tổng số lượng điện thoại các hãng tự chọn ở từng Store ....................... 44
4
GIỚI THIỆU CHUNG
Mục tiêu thực tập cơ sở
Mục tiêu của thực tập cơ sở là củng cố kiến thức cơ sở cho sinh viên trước khi vào phần chuyên ngành tạo
tiền đề cho các sinh viên trong kỳ thực tập năm tiếp theo.
Hình 1: Kiến thức và kỹ năng cơ sở ngành CNTT
Yêu cầu cho mỗi sinh viên cần được bao phủ tối thiểu 2/4 mảng kiến thức (Lập
trình, thuật tốn, cơ sở dữ liệu, máy tính), trong đó mảng kiến thức về lập trình là
bắt buộc. Sinh viên lựa chọn làm một project hoặc nhóm các bài tập theo từng mảng
kiến thức.
Nội dung đề tài có thể nằm một trong các mảng sau: Web/ App/ Công nghệ (Học
máy, học sâu,...). Các công nghệ về dữ liệu và ứng dụng cơng nghệ trong một bài
tốn cụ thể và theo các định hướng chuyên sâu.
Mỗi tuần các nhóm / cá nhân cần có báo cáo tiến độ cụ thể các việc thực hiện được
trong tuần. Cuối kỳ sẽ đánh giá dựa trên kết quả thực hiện của project và cả quá trình
học tập. Các nhóm sẽ cần trình bày lại project và gửi báo cáo kết quả. Điểm sẽ được
đánh giá dựa trên báo cáo tiến độ và kết quả trình bày project vào cuối kỳ.
5
Mục tiêu và định hướng của cá nhân
- Mục Tiêu: Trong tương lai gần có thể xin thực tập tại 1 vị trí Data Engineer. Xa
hơn là làm về mảng Dữ Liệu.
- Định hướng cá nhân: Phát triển bản thân theo hướng Data ( DA/DS/DE/ML)
nhưng tập trung vào DE.
- Lý do: Mặc dù bản thân em không quá giỏi về code, thuật tốn, ngoại ngữ nhưng
em có niềm đam mê với các con số, hình ảnh …. ở mức độ lớn(rộng hơn là dữ
liệu). Em muốn mình có thể làm việc với những thứ mà hiện tại mình thích. Và
một lý do nhỏ nữa là em muốn có thể giải quyết những bài toán nhỏ trong kinh
doanh bằng việc phân tích dữ liệu tự phát vì em có đam mê khá lớn với kinh
doanh.
PATH LEARNING
Quy trình học tập
Đề tài dự án (Tuần thứ 6)
Đề xuất đề tài: Dữ Liệu Điện Thoại di động ở các trang thương mại điện tử
uy tín ở Việt Nam
6
Công nghệ muốn sử dụng: Python, Scrapy, Hadoop….
Nội dung thực tập đề xuất
Tiến độ thực hiện thực tập
#
1
Topics
Hadoop
ecosystem
tools
Days
Target
10
Trình bày và cài đặt
được các tool: HDFS,
Data
warehouse
& ETL
5
3
MongoDB
5
Trình bày và cài đặt cấu
hình được MongoDB
3
Đề xuất đề tài
Project
10
6
5
Phân tích dữ liệu
7
5
Visualization dữ liệu
3
Tổng kết dự án
Final
03/ 10/0 17/0 24/0 01/ 08/0 15/ 22/0 29/
04
4
4
4
05
5
05
5
05
Hiểu được Data
warehouse là gì và
cách làm việc với nó.
Trình bày được về
ETL.
5
8
27/
03
YARN, MapReduce
and Hadoop
2
4
20/
03
Xử lý dữ liệu
7
BÁO CÁO TIẾN ĐỘ TỪNG TUẦN
Tuần 1 (27/3-3/4)
Hadoop ecosystem tools
Cài đặt được các tool, tìm hiểu khái quát về HDFS, YARN
● tìm hiểu khái quát về kiến trúc HDFS( namenode, datanode, secondary
namenode,blocks); đọc ghi dữ liệu trên HDFS
● cài đặt Hadoop và cấu hình hadoop
8
-
setup theo: />Gặp một số lỗi về java ở phiên bản 16 -> hạ phiên bản java
setup xong gặp lỗi không start được localhost và fix:z
Tuần 2 (3/4-10/4)
Data warehouse & ETL
Mục tiêu tuần 2
● Data warehouse là gì? vì sao nên sử dụng data warehouse; so sánh OLTP và OLAP
9
● Data warehouse dimensional modeling
●
ETL: khái niệm; cách thức hoạt đơng
●
Thư viện Prefect hỗ trợ ETL python
/>
●
●
Vì sao cần ETL
ETL Hadoop?( chưa hoàn thành)
Tuần 3 (11/4-17/4)
MongoDB
Mục tiêu tuần 2
●
-
cài đặt MongoDB
tải MongoDB compass và cài
MongoDB community server
mở terminal tiến hành cài
10
tạo thư mục để chứa MongoDB; chuyển thư mục bin vừa tải về vào thư mục vừa
tạo; tạo path cho thư mục vừa tạo
- Hệ thống sẽ báo tạo thêm thư mục /data/db -> không tạo thủ công bằng câu lệnh
sudo mkdir được do lỗi Read-only file system
- tạo 1 đường dẫn mới và tạo lại thư mục /data/db và connect thành công
11
Tuần 4 (18/4-24/4)
Đề xuất đề tài: Dữ Liệu Điện Thoại di động ở các trang thương mại điện tử uy tín
ở Việt Nam
● Đề tài về dữ liệu điện thoại di động ở Việt Nam. Đề tài đề cập đến các số liệu
thống kê về các trang bán điện thoại di động và các loại điện thoại được bán. Kết
quả hướng đến tệp dữ liệu về điện thoại di động được làm sạch và các biểu đồ.
● Hiện nay để đưa ra được chiến lược kinh doanh của các công ty, cửa hàng….
khơng thể theo cảm tính vì mang tính chất may rủi. chính vì vậy chúng ta cần có
dữ liệu cụ thể trên thị trường hoặc của đối thủ để có thể đưa ra những chiến lược
phù hợp.
● Hiện nay hầu hết các công ty lớn về bán lẻ đều sử dụng và coi như đó là một cách
để nghiên cứu thị trường. Trước hết chúng ta cần lấy dữ liệu thơ từ các cơng cụ
được chọn, sau đó tiến hành làm sạch dữ liệu và thống kê dữ liệu theo mục đích và
cuối cùng là hiển thị nó thành các biểu đồ để thuận tiện cho việc nắm bắt thông tin
12
●
●
●
●
●
●
và phân tích thị trường
Đề tài này tuy khơng lớn nhưng nó áp dụng rất nhiều vào cuộc sống ở các quy mơ
bán lẻ từ nhỏ đến lớn. chính vì vậy mà em chọn đề tài này. Cuối cùng đề tài này
không chỉ dừng lại ở việc dữ liệu điện thoại di động mà nó cịn tương tự ở các lĩnh
vực khác
Cũng bởi vì các nhà bán lẻ lớn cần có chiến lược kinh doanh cụ thể và hiệu quả mà
các dự án như thế này có thể giúp họ đưa ra quyết định hoặc có cái nhìn tổng qt
hơn nên có rất nhiều người đang nghiên cứu và thực hiện các dự án tương tự như
này.
Em chia làm 3 giai đoạn:
Giai đoạn 1: Lấy dữ liệu thô: Akabot, Scrapy
Giai đoạn 2: Làm sạch dữ liệu: pandas, numpy
Giai đoạn 3: visualization: plotly.graph_objects
Tuần 5 (25/4-1/5)
Học về Scrapy và xử lý dữ liệu
Nắm được cách Crawl dữ liệu từ web
● Cài Scrapy:
13
● Tạo project và mở code bằng visual studio code
14
● Test dữ liệu adult
- đọc file và xem thông tin dữ liệu
code:
-
kiểm tra dữ liệu null -> dữ liệu khơng có null -> tiền hành đi visualization
-
tiến hành đi visualization
15
Tuần 6 (2/5-8/5)
Cào dữ liệu bằng scrapy: /> />
16
● scrapy genspider [Tên thư mục]
● scrapy genspider [ [Tên thư mục] [link]
●
-
scrapy shell
fetch(“link")
response.css(‘..’)
đường dẫn
17
Dữ liệu thô về điện thoại của Cellphones
file log:
/>p=sharing
git: />Tuần 7 (8/5-15/5)
Cào dữ liệu bằng akabot:
● Akabot:
- Akabot hay còn được gọi là RPA là viết tắt của Robotic Process Automation (tự
động hóa quy trình robot), robot có khả năng bắt chước các thao tác của con người
- Akabot cần có tài khoản đăng kí để thực hiện và do FPT Software phát triển
- ở đây em đã cho bot đi vào các thẻ HTML để lấy dữ liệu thô đồng loạt
• Em tìm hiểu về các thẻ HTML và xpath của các giá trị cần lấy
• làm bot thực hiện các thao tác để lấy dữ liệu.
18
● /> />
● Link git Akabot (.xaml) và dữ liệu thô:
/>
19
Hình: Sử dụng Extract Structured Data(B) để lấy dữ liệu
• Lưu dữ liệu dưới dạng File Excel
Tuần 8 (15/5-22/5)
Xử lý dữ liệu thô:
● />● Mục Data_TTCS đã xử lý dữ liệu thô của các tệp dữ liệu được lấy bằng scrapy
dưới dạng json
● Xử lí dữ liệu file xulidata( xem chi tiết ở github)
● Sơ lược về xử lí dữ liệu
Hình: Mơ tả dữ liệu dưới dạng Data Frame và thêm các column mà tệp dữ liệu thơ
chưa có
20
Hình: [‘ratings’] đã được chuẩn hố
● Xử lý dữ liệu bằng python -> dữ liệu được chuẩn hoá theo một quy định chung
gồm các trường:
Tuần 9 +10(22/5-29/5)
Xử lý dữ liệu thô và Visualization dữ liệu( demo trước các đồ thị)
● Xử lý loại bỏ dư thừa dữ liệu bằng excel
● linkgit:
/>- Thư mục data là dữ liệu đã được loại bỏ dư thừa
- xử lý loại bỏ những dòng trống, dữ liệu dư thừa bằng excel ( khi thu thập cùng 1 ơ
có thể chứa nhiều giá trị -> khi thu thập như vậy những ơ có ít giá trị có thể gây
thừa -> tiến hành loại bỏ)
- sử dụng những câu code excel để xử lý dữ liệu đơn giản ( Khi thu thập dữ liệu
bằng akabot cùng 1 trường nhưng phải thu nhiều lần để lấy được toàn bộ dữ liệu ->
tiến hành ghép cột)
• Sơ lược về xử lí dữ liệu
Hình: Đọc dữ liệu và tiến hành đánh giá dữ liệu để đưa ra hướng xử lí; Tiếp đó là
đưa dữ liệu về dạng DataFrame
21
Hình: Chuẩn hố giá bán [‘price_selloff’] bằng cách loại bỏ ‘nan’ và các kí tự thừa
và đưa giá bán về dạng float
• Dữ liệu thu được
Hình: kiểu dữ liệu thu được sau khi làm sạch
● Xử lý dữ liệu bằng python file xulidataakabot-> dữ liệu được chuẩn hoá theo một
quy định chung gồm các trường:
●
●
Dữ liệu cuối cùng được lưu dưới dạng .._final.csv
Sử Dụng thư viện Plotly để tiến hành trực quan hoá dữ liệu
22
Hình: Số lượng điện thoại theo hãng ở các store(4 đồ thị)
23
Hình: Tỉ lệ điện thoại theo hãng ở các store(4 đồ thị)
24
Hình: số lượng điện thoại theo yêu cầu ở 4 chi nhánh
25