1. Trang chủ
  2. » Công Nghệ Thông Tin

Báo cáo thực tập cơ sở PTIT dữ liệu điện thoại

46 636 10
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo cáo thực tập cơ sở
Tác giả Nguyễn Duy Mạnh
Người hướng dẫn Giảng Viên Đinh Xuân Trường
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo cáo
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 46
Dung lượng 15,11 MB
File đính kèm TTCS.rar (13 MB)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Báo cáo thực tập cơ sở PTIT, Dự án tập trung vào việc lấy dữ liệu thô về điện thoại trên các sàn thương mạiđiện tử của các Store lớn sau đó bằng việc sử dụng python để làm sạch dữ liệu.Từ dữ liệu thô sau khi loại bỏ dư thừa và làm sạch chúng ta có tệp dữ liệu cóthể sử dụng được. Cuối cùng sẽ visualization dữ liệu.Đầu vào là dữ liệu về điện thoại của: https:cellphones.com.vn,https:fptshop.com.vn, https:www.thegioididong.com,https:www.hnammobile.com.Thông tin cần lấy được: Tên, giá bán, giá gốc, bộ nhớ.Đầu ra: Các đồ thị được trực quan hoá từ nguồn dữ liệu được làm sạch từ dữ liệu thô

Trang 1

- 🕮 -

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: B19DCCN417

LỚP: D19CQCN09-B HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA CÔNG NGHỆ THÔNG TIN I

Trang 2

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

Trang 3

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 (https://plotly.com/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 Xử lý dữ liệu và Visualization dữ liệu 32

1 Xử lý dữ liệu 32

2 Visualization 35

IV Đánh giá 45

1 Ưu điểm của dự án 45

2 Nhược điểm của dự án 45

3 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

Trang 4

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 hoá 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

Trang 5

GIỚI THIỆU CHUNG

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 toá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ỳ

Trang 6

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 toá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

Trang 7

Công nghệ muốn sử dụng: Python, Scrapy, Hadoop…

Nội dung thực tập đề xuất

Trình bày được về ETL

3 MongoDB 5 Trình bày và cài đặt cấu

Trang 8

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

Trang 9

- setup theo: common/SingleCluster.html

https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop 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

Trang 10

● Data warehouse dimensional modeling

● ETL: khái niệm; cách thức hoạt đông

● Thư viện Prefect hỗ trợ ETL python

54005a34f10b

- tải MongoDB compass và cài

- MongoDB community server

- mở terminal tiến hành cài

Trang 11

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

Trang 12

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

Trang 13

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 quát 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:

Trang 14

● Tạo project và mở code bằng visual studio code

Trang 15

● 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

Trang 16

Tuần 6 (2/5-8/5)

Cào dữ liệu bằng scrapy: https://www.thegioididong.com/dtdd#c=42&o=9&pi=5 https://cellphones.com.vn/

Trang 17

● scrapy genspider [Tên thư mục]

● scrapy genspider [ [Tên thư mục] [link]

● scrapy shell

- fetch(“link")

- response.css(‘ ’)

- đường dẫn

Trang 18

Dữ liệu thô về điện thoại của Cellphones

file log:

https://drive.google.com/file/d/16A2eGu28YWp5cH96MobFchsb9l3p1kti/view?usp=sharing

- 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

Trang 19

● https://www.thegioididong.com/dtdd#c=42&o=9&pi=5, https://fptshop.com.vn/,

https://www.thegioididong.com/, https://www.hnammobile.com/

● Link git Akabot (.xaml) và dữ liệu thô:

https://github.com/DuyManh030901/Data_ttcs_akabot.git

Trang 20

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

● 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ó

Trang 21

Hình: [‘ratings’] đã được chuẩn hoá

● 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:

https://github.com/DuyManh030901/Data_ttcs_akabot/tree/master/Data_ttcs/code

- 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

Trang 22

Hình: Chuẩn hoá 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

Trang 23

Hình: Số lượng điện thoại theo hãng ở các store(4 đồ thị)

Trang 24

Hình: Tỉ lệ điện thoại theo hãng ở các store(4 đồ thị)

Trang 26

Hình: Tỉ lệ các hãng điện thoại ở cả 4 Store

Trang 27

để có thể dung hòa các yếu tố(giá tiền, sản phẩm, ) với nhau để cạnh tranh và phát triển.

Hiện nay ở Việt Nam có rất nhiều nhà bán lẻ điện thoại với lượng thông tin khổng lồ mà chúng ta có thể lấy được

Thông tin quan trọng mà chúng ta cần biết về một điện thoại là: tên, giá bán, giá gốc, bộ nhớ

2 phát biểu bài toán

Dự án tập trung vào việc lấy dữ liệu thô về điện thoại trên các sàn thương mại điện tử của các Store lớn sau đó bằng việc sử dụng python để làm sạch dữ liệu

Từ dữ liệu thô sau khi loại bỏ dư thừa và làm sạch chúng ta có tệp dữ liệu có thể sử dụng được Cuối cùng sẽ visualization dữ liệu

Đầu vào là dữ liệu về điện thoại của: https://cellphones.com.vn/,

https://fptshop.com.vn/, https://www.thegioididong.com/,

https://www.hnammobile.com/

Thông tin cần lấy được: Tên, giá bán, giá gốc, bộ nhớ

Đầu ra: Các đồ thị được trực quan hoá từ nguồn dữ liệu được làm sạch từ dữ liệu thô

3 ý nghĩa của dự án

Kinh doanh luôn là sự cạnh tranh của nhiều phía; đối với các nhà bán lẻ thì

sự cạnh tranh này càng lớn hơn nhất là khi các mặt hàng điện thoại có lượng tiêu thụ lớn ở thị trường Việt Nam

Dự án giúp cho các nhà bán lẻ giải quyết được việc đưa ra quyết định một

Trang 28

è Dự án hỗ trợ các nhà bán lẻ có thể đưa ra quyết định hoặc đưa ra kế hoạch

Marketing; Giúp cho người dùng có cái nhìn tổng quát hơn về giá của các loại điện thoại

4 Quy Trình Dự Án

Thu Thập dữ liệu: Thu thập dữ liệu bằng 2 công nghệ là: Scrapy và AkaBot 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

Visualizaton: Sử dụng thư viện Plotly để trực quan hoá dữ liệu

II Cơ sở lý thuyết và các công nghệ sử dụng

1 Tự động hóa quy trình(RPA) bằng Akabot

RPA là viết tắt của Robotic Process Automation (Tự động hóa quy trình bằng robot), chỉ một phần mềm được tích hợp vào máy tính, robot, có khả năng

bắt chước thực hiện các hoạt động của con người Thông qua việc thu thập các

dữ liệu, RPA sẽ mô phỏng thao tác lặp đi lặp lại thường xuyên và thay thế con người xử lý các tác vụ kỹ thuật số như diễn giải, kích hoạt hay giao tiếp với ứng dụng và hệ thống Việc dùng RPA trong một số công đoạn giúp giảm chi phí cho nguồn nhân lực, cũng như hạn chế những rủi ro về sai sót trong quá trình sản xuất, kinh doanh

Sự khác biệt của RPA với AI là: khi sử dụng RPA, bạn sẽ "dạy" cho máy làm theo mình, còn với AI, bạn sẽ phải nạp một khối lượng dữ liệu nền tảng "khủng"

để chúng tự học

Ưu điểm của RPA: Tiết kiệm thời gian và cải thiện thông lượng tốt hơn Linh hoạt và có khả năng mở rộng dữ liệu cần thiết Độ chính xác rất cao Nhân viên của bạn sẽ không phải tập trung vào nhiều quá trình dư thừa, chỉ cần lo những công việc

có khả năng phát triển công việc cao hơn Phần mềm tự động hóa có thể kiểm soát được cả quả trình thực hiện Bạn có nhiều thời gian hơn, có thể tập trung đem đến sự đổi mới và làm hài lòng khách hàng của mình Thu thập dữ liệu và phân tích chuẩn xác Dễ sử dụng và có khả năng phủ sóng rộng trong nhiều doanh nghiệp lớn nhỏ.Một số phần mềm RPA lớn: UiPath, OFFICEROBOT, Aiwozo, AkaBot… Akabot: là giải pháp tự động hoá do FPT Software phát triển và có mặt trong top 10 giải pháp RPA toàn cầu Phù hợp với người Việt và dễ dàng để tiếp cận ở mức cơ bản Và cuối cùng đây là giải pháp có trả phí

Sử dụng AkaBot ở dự án này giúp việc cào dữ liệu từ web trở nên nhanh chóng và dễ dàng hơn tuy nhiên dữ liệu thô lấy được rất cồng kềnh và bị trùng lặp

Trang 29

Hình 1 Sử dụng Extract Stractured Data(B) để lấy dữ liệu thô từ web

Trang 30

2 pandas.DataFrame

Pandas DataFrame là một cấu trúc chứa dữ liệu hai chiều và các nhãn tương ứng của nó DataFrames được sử dụng rộng rãi trong data science, machine

learning, scientific computing và nhiều lĩnh vực sử dụng nhiều dữ liệu khác

DataFrames tương tự như SQL tables hoặc bảng tính mà bạn làm việc trong Excel hoặc Calc Trong nhiều trường hợp, DataFrame nhanh hơn, dễ sử dụng hơn và mạnh hơn bảng hoặc spreadsheets vì chúng là một phần không thể thiếu của hệ sinh thái Python và NumPy

Tại sao không sử dụng NoSql mà sử dụng Pandas DataFrame:

• Tệp dữ liệu chưa đủ phức tạp chính vì vậy việc sử dụng Data Frame trở nên dễ dàng hơn

• Phù hợp với dự án nhỏ

• Ở dự án chưa phát triển thành web, app… mà chỉ đơn thuần trên desktop nên việc

sử dụng Data Frame là hợp lý hơn

3 plotly python ( https://plotly.com/python/ )

Plotly (plotly.py) trong Python là một thư viện đồ họa tương tác, mã nguồn

mở, và dựa trên nền tảng trình duyệt So với các thư viện đồ họa phổ biến khác của

Python như Matplotlib, Pandas,Visualization hay Seaborn thì Plotly có một lợi thế

lớn khi tạo ra các biểu đồ tương tác nhất

Hiện tại thư viện Plotly hỗ trợ đa dạng các loại biểu đồ với 15 loại biểu đồ cơ bản, 12 loại biểu đồ Thống kê, 20 loại biểu đồ Khoa học, 8 loại biểu đồ Tài chính,

12 loại bản đồ, 14 loại biểu đồ 3D và nhiều tiện ích khác

Dự án sử dụng hai loại biểu đồ chính là Cột và Tròn Chính vì vậy việc sử dụng Plotly sẽ dễ dàng tiếp cận hơn

Mong muốn phát triển dưới dạng web -> sử dụng Plotly phù hợp cho việc phát triển

4 scrapy

Scrapy là một khung thu thập thông tin web mã nguồn mở và miễn phí được viết bằng Python Ban đầu được thiết kế để tìm kiếm web, nó cũng có thể được sử dụng để trích xuất dữ liệu bằng cách sử dụng API hoặc như một trình thu thập thông tin web có mục đích chung

So sánh với AkaBot về việc thu thập dữ liệu:

Ngày đăng: 24/03/2023, 13:53

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w