SỬ DỤNG ỨNG DỤNG R TRONG VIỆC HỖ TRỢ NGƯỜI HỌC
TÌM KIẾM THƠNG TIN, TÀI LIỆU PHỤC VỤ HỌC TẬP
VÀ NGHIÊN CỨU
Hà Thị Minh Huệ
Trường Đại học Kinh tế Quốc dân
Tóm tắt: Bài viết chia sẻ ứng dụng sử dụng R với một số gói mã lệnh thơng dụng để
tiếp cận nguồn thông tin, tài liệu dồi dào trên các trang mạng một cách nhanh chóng, hiệu
quả. Điều này sẽ giúp các bạn sinh viên nâng cao hiệu quả tìm kiếm nguồn thơng tin, có thêm
dữ liệu để phục vụ học tập, nghiên cứu hay tham gia các hoạt động xã hội. Bài viết tập trung
vào sử dụng R để tự động cào dữ liệu dạng bảng, dạng ký tự chữ viết ở nhiều trang mạng, từ
đó thu thập được nguồn tài liệu, dữ liệu hay thông tin lớn hơn rất nhiều so với cách thủ cơng
thơng thường.
Từ khóa: trang mạng, đường dẫn, gói mã lệnh, thu thập, dữ liệu.
1. Đặt vấn đề
Trong thời đại 4.0, với sự phát triển ngày càng cao của khoa học và công nghệ, việc cập
nhật hay ứng dụng các công cụ công nghệ thông tin, khoa học dữ liệu để hỗ trợ xử lý các công
việc khác nhau trở nên phổ biến và dần trở thành điều kiện tiên quyết để thành công. Tất cả
chúng ta đều biết công nghệ thông tin, khoa học dữ liệu là các lĩnh vực đã đang và sẽ cịn phát
triển nhanh chóng, mở ra cho sinh viên những con đường lập nghiệp thú vị và cơ hội học tập
nâng cao. Không riêng các bạn sinh viên đang theo học các ngành này, tất cả chúng ta đều có
thể và nên trang bị cho mình những kiến thức cơng nghệ thông tin, khoa học dữ liệu cơ bản
nhất để có thể thúc đẩy nâng cao hiệu quả học tập và làm việc.
Các bạn sinh viên hiện nay đã rất may mắn khi có thể tiếp cận nguồn thơng tin, tài
liệu vô hạn trên các trang mạng chỉ với một vài từ khóa, một cú nhấp chuột. Tuy vậy, việc
sử dụng nhanh chóng và hiệu quả nguồn thơng tin, tài liệu này đơi khi lại gây khó khăn cho
chúng ta.
Hiện nay, R, Python hay một số ngơn ngữ lập trình khác được sử dụng rất nhiều trong
việc làm sạch, hình ảnh hóa, phân tích dữ liệu. Khơng chỉ có vậy, chúng ta cịn có thể sử dụng
chúng để thu thập nguồn tài liệu và thơng tin khổng lồ có trên các trang mạng. Điều này sẽ giúp
chúng ta có thêm công cụ để học tập và nghiên cứu. Bài viết chia sẻ một vài ứng dụng của việc
sử dụng R thơng qua một số ví dụ cụ thể về việc thu thập tài liệu, thông tin trên các trang mạng
hay cịn gọi là “scraping data”, thơng qua một số gói mã lệnh của phần mềm R. Tác giả khơng
trình bày cụ thể cách viết mã, bạn đọc quan tâm có thể tìm đọc tại [1] và tìm hiểu thêm các gói
mã lệnh theo các đường dẫn ở mục tài liệu tham khảo.
62
2. Nội dung
Tác giả sử dụng 3 gói mã chính sau của R:
• Rvest là gói mã sử dụng để cào dữ liệu từ trang mạng [2] [3]. Nếu bạn chưa biết gì
về nó, chúng ta có thể hiểu đơn giản như sau: Ở đây, ta cần đường dẫn tới trang mạng, địa chỉ
khu vực mà ta muốn tìm kiếm thơng tin trên trang mạng đó, dạng dữ liệu thơng tin mà ta muốn
thu thập, ví dụ trong bài viết là ta thu thập dữ liệu dạng bảng và chữ viết.
• Dplyr là gói mã sử dụng để xử lý dữ liệu dạng bảng [4] [5]. Ta có thể lập bảng, thêm
bớt dòng, cột, sắp xếp hay lọc dữ liệu trong bảng,…
• Stringr là gói mã sử dụng để xử lý dữ liệu dạng ký tự chữ viết [5] [6]. Ta có thể đếm
số ký tự, tìm kiếm vị trí ký tự, nối chuỗi ký tự,…
Từng gói lệnh đọc qua có vẻ làm các cơng việc khá đơn giản, nhưng ta phải kết hợp các
gói lệnh, ứng dụng uyển chuyển, linh hoạt để mang lại hiệu quả tối đa. Ví dụ, một vài dịng mã
dưới đây có thể giúp ta thu về một bảng gồm tất cả các đường dẫn xuất hiện trên một vùng của
trang mạng:
url %>%
read_html() %>%
html_element(css_page) %>%
html_nodes(“a”) %>%
html_attr(“href”) %>%
matrix(ncol = 1) %>%
as.data.frame() -> links
Ở đây, “url” chính là đường dẫn tới trang mạng, “css_page” là chỉ điểm tới vị trí khu
vực ta muốn lấy thơng tin, và “a”, “href” chính là dấu hiệu nhận biết để chỉ tới các đường dẫn;
sau đó, ta cho các đường dẫn này vào một bảng gồm 1 cột.
Các ví dụ sau đây, tác giả đều thực hiện việc thu thập các đường dẫn có cùng một kiểu
thơng tin, dữ liệu mà tác giả quan tâm, sau đó tự động thu thập dữ liệu trên các đường dẫn đã
lấy được. Ta hãy xem xét lần lượt các ví dụ.
2.1. Tải (download) tài liệu
Giả sử tác giả đang học ôn luyện tiếng Anh và đang muốn làm bài đọc dạng “multiple
choice cloze”. Tác giả nhận thấy trang mạng [7]:
/>Có rất nhiều bài luyện được phân cấp từ B1 đến C1, mỗi bài là một đường dẫn, như một
số đường dẫn ví dụ dưới đây:
(NEW) C1 MULTIPLE CHOICE: ABLAUT REDUPLICATION
C1 MULTIPLE CHOICE: BUSINESS
63
C1 MULTIPLE CHOICE: CELEBRITY LIFESTYLES
C1 MULTIPLE CHOICE: CHILDHOOD OBESITY
Các đường dẫn này sẽ mở ra một tập tin dạng .pdf và ta có thể tải về. Nếu làm thủ cơng
ta sẽ phải vào lần lượt từng đường dẫn sau đó tải về, điều này cũng khá mất thời gian và nhàm
chán. Nhưng ta có thể sử dụng R để tự động thu thập các đường dẫn, và sau đó tải tập tin về
một thư mục mà ta mong muốn nhờ lệnh “download.file” trong R
Ta thu được bảng chứa 45 đường dẫn (Urls), sử dụng gói mã dplyr và stringr để tạo
thêm 2 cột chứa tên tệp (Name_file) và vị trí thư mục ta muốn tải về (Destination). Bảng 1 dưới
đây chứa thông tin của đường dẫn đầu tiên trong 45 đường dẫn ta thu được, tương ứng ta sẽ có
một thư mục chứa 45 tệp .pdf mà đã tải được về ở vị trí ta đã định.
Bảng 1: Thơng tin một đường dẫn, tên tệp và vị trí lưu tệp
Đường dẫn
b1-reading-part-5_-basketball.pdf (intercambioidiomasonline.com)
Tên tệp
b1-reading-part-5_-basketball.pdf
Địa chỉ thư mục
./multiple_choice/b1-reading-part-5_-albacete.pdf
2.2. Thu thập dữ liệu dạng bảng (table)
Ở ví dụ tiếp theo ta sẽ sử dụng thêm lệnh “html_table” để thu nhập các bảng số liệu có
trên trang mạng. Tương tự như trên một bảng số liệu, ta hồn tồn có thể sao chép thủ công,
nhưng với nhiều bảng số liệu việc sao chép như vậy là hồn tồn khơng nên; và quan trọng hơn
là khi tập hợp được nhiều bảng thì ta có một bảng dữ liệu lớn.
Cũng vẫn là một ví dụ để có thêm tài liệu học tiếng Anh. Lần này, ta muốn luyện tập về
phrasal verb. Trên trang mạng [8]:
/>Có các bài tập về phrasal verb như một số đường dẫn dưới đây:
Phrasal Verbs (OUT) 1
Phrasal Verbs (OUT) 2
Phrasal Verbs (UP) 1
Phrasal Verbs (UP) 2
Phrasal Verbs (OFF) 1
Phrasal Verbs (OFF) 2
Mỗi bài tập sẽ có đáp án là một bảng gồm 10 phrasal verbs kèm nghĩa hoặc từ đi kèm,
mục đích của tác giả là lập bảng gộp tất cả các bảng đáp án này lại.
64
1
drop out of
Bảng 2: Một bảng kết quả đáp án
leave school, college, etc. without finishing your studies
2
churn out
produce something in large quantities quickly and often carelessly
3
hold out
offer a chance, hope or possibility of something
4
take it out on
behave in an unpleasant way towards sb because you feel angry
5
bear out
show that something is true or that someone is telling the truth
6
eke out
get just enough money or food to be able to continue to exist
7
fizzle out
gradually become less successful and end in a disappointing way
8
work out at
add up to a particular amount
9
grow out of
become too tall or too big to wear or use something
10
opt out of
decide not to be part of a group or system
Hoàn toàn tương tự ta sẽ lấy được tất cả 29 đường dẫn bài tập, ở mỗi bài tập, ta lấy bảng
kết quả, gộp các bảng này lại, ta thu một bảng gồm 290 phrasal verb như Bảng 3 dưới đây.
1
abide by
Bảng 3: Mười dòng đầu tiên của bảng 290 kết quả
to accept and act according to a law, an agreement, etc.
2
accede to
agree to do what people have asked you to do
3
account for
be the reason why something exists or happens
4
act up
(of a thing) fail to function properly
5
adhere to sth
continue to behave according to a particular rule or belief
6
amount to sth
add up to something, to make something as a total
7
answer for
accept responsibility or blame for something
8
arrive at sth
decide on or find something, especially after discussion and thought
9
ascribe sth to sb
refer to a supposed cause, source, or author
10
ask sb out
invite somebody to something, such as dinner or a date
2.3. Thu thập dữ liệu dạng ký tự và lập bảng
Trong ví dụ tiếp theo, ta sẽ xem báo chí nói gì về ĐH Kinh tế Quốc dân, ta sẽ lấy các
bài báo của vietnamnet.vn [9] và tìm kiếm với từ khóa “Kinh tế Quốc dân”, sau đó một danh
sách các bài báo sẽ hiện ra
Mỗi trang kết quả hiện ra có 20 đường dẫn của 20 bài báo, ta sẽ thử lấy 5 trang kết quả
để có 100 bài báo. Với mỗi bài báo, ta dùng html_text để lấy các thông tin sau:
•
•
•
•
•
Ngày, tháng, năm đăng bài (Date)
Lĩnh vực (Field): Giáo dục, Thời sự, Chính trị,...
Tiêu đề (Title)
Nội dung tóm tắt đầu bài (Main_content)
Đường dẫn của bài báo (URL)
Ta thu được bảng dữ liệu với các thông tin cơ bản nhất của các bài báo nói về ĐH Kinh tế
Quốc dân, nếu muốn ta có thể đọc lại đầy đủ bất cứ bài nào mà ta thấy quan tâm. Chú ý rằng, đây
65
là dạng thông tin động (dynamic) nên mỗi lần thực hiện ta sẽ thu được các kết quả khác nhau vì các
bài báo sẽ được cập nhật liên tục. Bảng dưới đây là ví dụ một trong 100 bài báo ta thu được.
Ngày đăng
Bảng 4: Kết quả thông tin một bài báo thu thập được
21/08/2013 10:00 (GMT+07:00)
Lĩnh vực
Giáo dục
Tiêu đề
ĐH Kinh tế Quốc dân tuyển sinh cử nhân quốc tế
Là chương trình đào tạo liên kết đầu tiên tại Việt Nam cho phép sinh viên
Nội dung mở đầu lấy bằng Đại học của Anh quốc, chương trình Cử nhân Quốc tế tại Trường
Đại học Kinh tế Quốc dân (IBD@NEU) đang tuyển sinh khóa thứ 9.
Đường dẫn
ĐH Kinh tế Quốc dân tuyển sinh cử nhân quốc tế (vietnamnet.vn)
3. Kết luận
Trong bài viết tác giả không hướng dẫn chi tiết cách sử dụng R để thực hiện mà chủ yếu
nói về ý tưởng và kết quả thu được qua các ví dụ thực tế. Bạn đọc quan tâm có thể tham khảo
phần mã lệnh của tác giả và tìm hiểu thêm về các gói mã được sử dụng trong các ví dụ trong
bài nói riêng và các ứng dụng khác của R nói chung. Tác giả trình bày đơn giản nhưng để hiểu
được phần mã mà tác giả viết, chúng ta cũng sẽ phải mất chút thời gian và công sức để tìm tịi
thêm các kiến thức R cơ bản. Cịn rất nhiều ứng dụng khác trong việc cào dữ liệu mạng và sử
dụng R trong việc khai thác và phân tích dữ liệu mà bạn đọc có thể tìm hiểu thêm. Ví dụ, chúng
ta có thể vào một trang thương mại điên tử như Shopee, Lazada để tìm hiểu về: các loại mặt
hàng, doanh số bán hàng hay thu thập phản hồi của khách hàng để phân tích kinh doanh. Các
kết quả thu được trên đây chỉ là thông tin, tài liệu ban đầu để phục vụ học tập, nghiên cứu, nó
như một viên ngọc thơ mà nếu biết mài rũa, phân tích sử dụng đúng cách, chúng ta cịn có thể
thu được nhũng thành quả rực rỡ hơn nữa. Tác giả hy vọng tất cả các bạn sinh viên sẽ trang bị
cho mình những cơng cụ hữu ích, để làm việc, học tập sáng tạo, hiệu quả hơn.
Tài liệu tham khảo
1. [Trực tuyến]. Địa chỉ: />2. [Trực tuyến]. Địa chỉ: />3. Simon Munzert, Christian Rubba, Peter Meißner, Dominic Nyhuis (2015),
Automated Data Collection with R - A Practical Guide to Web Scraping, John Wiley & Sons.
4. [Trực tuyến]. Địa chỉ: />5. Garrett Grolemund, Hadley Wickham (2016), R for Data Science, O'Reilly.
6. [Trực tuyến]. Địa chỉ: />7. [Trực tuyến]. Địa chỉ: ttps://www.englishrevealed.co.uk/advanced_vocabulary.php.
8. [Trực tuyến].
multiple-choice-cloze/.
Địa
chỉ:
/>
9. [Trực tuyến]. Địa chỉ: />
66