You are on page 1of 31

BÁO CÁO ĐỒ ÁN - Hệ thống tìm kiếm thông

tin bằng hình ảnh văn bản - (OCR)

Nhóm 1 - 22CLC10
Khoa Công Nghệ Thông Tin
Đại học Khoa học Tự Nhiên TP.HCM
Nguyễn Bảo Long (22127243) - Bùi Minh Quân (22127342) -
Trần Nguyễn Phúc Khang (22127182) - Thái Hữu Thọ (22127400) -
Lê Quốc Khánh (22127186) - Nguyễn Lê Thanh Duy (22127474)
December 2022

1
LỜI CẢM ƠN
Lời nói đầu tiên, nhóm xin trân trọng cám ơn Cô Tiết Gia Hồng và
Cô Hồ Thị Hoàng Vy đã hướng dẫn và giúp đỡ nhóm em với Đồ án
học tập - Xây dựng Chợ ứng dung lần này. Trong quá trình thực
hiện, có những phần mục, chức năng nhóm gặp khó khăn, thắc mắc,
chính nhờ sự giúp đỡ, giải đáp tận tình và tư vấn của Cô bổ sung
rất nhiều cho Đồ án.

Hiểu được tính thực tiễn và giá trị về kiến thức của Đồ án, nhóm
đặt mục tiêu thực hiện như một công cụ để tham khảo và tích lũy
kinh nghiệm, kiến thức. Tuy nhiên trong quá trình làm việc không
thể thiếu những sai sót và hạn chế nhất định, rất mong Cô sẽ thông
cảm, góp ý để bài Đồ án của nhóm trở nên hoàn thiện hơn. Một lần
nữa, hy vọng qua bài báo cáo Đồ án lần này, không chỉ có những
kiến thức mới về mảng Website, Dữ liệu và các kiến thức liên quan,
nhóm sẽ tích lũy thêm những kỹ năng làm việc nhóm, quản lý dự
án cũng như các kỹ năng cần thiết cho tương lai sau này.

2
Tóm tắt nội dung
Trong thời đại phát triển của công nghệ và trí tuệ nhân tạo, việc xây
dựng một hệ thống, chương trình thông minh giúp đỡ những thao tác,
công việc, cuộc sống con người dần trở nên phổ biến rộng rãi.

Chúng ta có thể bắt gặp những hệ thống, chương trình nhận biết, tìm
kiếm thông tin bằng văn bản (Optical Character Regconition) qua đời
sống hàng ngày như tìm kiếm nội dung Google Lens, QR Code, Veracity,...

Nhưng liệu chúng ta có thật sự biết cách hoạt động của những trang
ứng dụng, hệ thống trên? Cách camera, đầu vào input nhận tập tin ảnh
của một từ, câu, hoặc một đoạn văn bản (text) để xuất ra (đầu ra output)
các tài liệu có nội dung liên quan được tìm thấy từ Internet. Cách hệ thống
chuyển tập tin hình ảnh thành văn bản bằng công cụ OCR. Cách văn bản
được rút trích từ khóa để tìm tài liệu từ Internet. Tất cả những nội dung
trên sẽ được nhóm thảo luận, phân tích và trình bày qua bài báo cáo, từ
đó sử dụng bài báo cáo như một công cụ tham khảo, nguồn tài liệu để
tìm hiểu thêm về OCR và cách hệ thống tìm kiếm thông tin bằng hình
ảnh văn bản hoạt động.
Từ khóa: OCR, Optical character recognition, rút trích

Mục lục
1 Mở đầu 5
1.1 OCR là gì? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 Giai đoạn OCR 6


2.1 Các ứng dụng của OCR trong đời sống . . . . . . . . . . . . . . . 6
2.2 Các ứng dụng OCR phổ biến . . . . . . . . . . . . . . . . . . . . 7
2.2.1 Adobe Acrobat Pro DC . . . . . . . . . . . . . . . . . . . 7
2.2.2 Nanonets . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.3 PDF READER . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.4 ABBYY FINE READER . . . . . . . . . . . . . . . . . . 10
2.2.5 CÔNG CỤ TỐI ƯU NHẤT CHO OCR . . . . . . . . . . 10
2.3 Thuật toán OCR . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4 Nhận diện ký tự quang học . . . . . . . . . . . . . . . . . . . . . 11

3 Giai đoạn rút trích - Keyword 13


3.1 Định nghĩa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2 Các công cụ và phương pháp rút trích từ khóa . . . . . . . . . . 13
3.2.1 Spacy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2.2 Textrank . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2.3 KeyBert . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.4 World Cloud . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2.5 Yet Another Keyword Extractor (Yake) . . . . . . . . . . 20
3.3 Các bước và thuật toán thực hiện phương pháp rút trích . . . . . 20
3.3.1 Naive Counting . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3.2 TF-IDF (Term Frequency – Inverse Document Frequency) 20
3.3.3 Rapid Automatic Keyword Extraction (RAKE) . . . . . . 24

3
4 Tìm hiểu về giai đoạn truy xuất dữ liệu lên Internet 26
4.1 AutoCopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.2 True X-Mouse Gizmo . . . . . . . . . . . . . . . . . . . . . . . . 26

5 Phân công nhiệm vụ và Đánh giá thành viên 27

6 Lời kết 29

A Tài liệu tham khảo 31


Tham khảo 31

4
1 Mở đầu

1.1 OCR là gì?


Khá nhiều lần chúng ta nghe đến cụm từ OCR nhưng lại không thực sự hiểu
ocr là gì? Nhiều người chỉ hình dung nó như một công nghệ được tích hợp trong
máy scan để nâng cao khả năng nhận dạng. OCR là thuật ngữ được viết tắt bởi
cụm từ Optical Character Recognition (dịch là: nhận dạng ký tự quang học).
Đây là ứng dụng công nghệ chuyên dùng để đọc text ở file ảnh. Được biết đến
là một công cụ scan kỹ thuật số chuyên nhận dạng các ký tự, chữ viết tay, hay
chữ đánh máy, công nghệ này chuyên dùng để truyền tải, nhập liệu dữ liệu. Đặc
biệt, ở OCR có khả năng kỹ thuật số nhiều dưới nhiều dạng tài liệu khác nhau:
hóa đơn, hộ chiếu, danh thiếp, tài liệu. . .
Đến với OCR, những văn bản số hóa, tìm kiếm và chỉnh sửa sẽ được thực
hiện điện tử. Đồng thời, chúng giúp tiết kiệm không gian lưu trữ tài liệu bằng
việc hiển thị trên trực tiếp.

5
2 Giai đoạn OCR
2.1 Các ứng dụng của OCR trong đời sống
a. Hỗ trợ cuộc sống của người già và người khiếm thị: Công nghệ OCR đã
được tích hợp với công nghệ tổng hợp giọng nói (giọng máy), giúp máy có khả
năng đọc hiểu văn bản. Không những thế, giọng nói vi tính hoá đã được ứng
dụng vào việc đọc văn bản trong sách, báo, tạp chí cho người cao tuổi, người
khiếm thị, giúp cuộc sống của họ trở nên nhẹ nhàng hơn.

b. Sắp xếp tài liệu trong các công ty luật và toà án: Trong mỗi vụ án,
các giấy tờ tài liệu pháp lí, hồ sơ rất nhiều và phức tạp. Để đảm bảo không bỏ
sót bất kì chi tiết, giấy tờ nào quan trọng, luật sư phải sắp xếp và tìm kiếm mất
rất nhiều thời gian.
Nhờ phần mềm OCR, các luật sư có thể số hóa tất cả các văn bản một
cách vô cùng nhanh chóng. Khi cần, họ dễ dàng tìm tài liệu theo từ khoá, ngày
tháng, tên tệp. . . một cách đơn giản, tiện lợi và khoa học. Điều này đồng nghĩa
với việc, luật sư không phải thuê nhiều trợ lí để thực hiện các nhiệm vụ thủ
công, mà vẫn đảm bảo giám sát được công việc.

c. Bảo tồn các văn bản có giá trị: Các thư viện cổ, trung tâm văn hóa
lịch sử hay viện bảo tàng. . . là những nơi lưu trữ rất nhiều các bản thảo, tài
liệu, hồi kí. . . Quá trình cất giữ và bảo quản những tài liệu này không hề đơn
giản. Chúng rất dễ bị mối mọt và hư hại theo thời gian. Việc nhập liệu thủ công
chính xác và đầy đủ lượng văn bản khổng lồ đấy là điều vô cùng khó khăn và
vất vả, có thể mất tới hàng chục năm.
Tuy nhiên, công nghệ OCR ra đời đã giúp nhiều tổ chức giải quyết bài toán
đó một cách đơn giản hơn. Các văn bản, tài liệu quan trọng được chuyển đổi từ
dạng giấy sang file mềm, giúp việc lưu trữ và bảo tồn nhiều di sản văn học trở
nên dễ dàng hơn.

d. Xử lí hoá đơn và nhiều loại chứng từ:

6
Tất cả các cơ quan, tổ chức đều có hàng nghìn các loại giấy tờ, tài liệu, với
nhiều định dạng khác nhau như các văn bản in/viết tay trên giấy, file PDF,
JPG. . . Các nhân viên khó có thể nhập tất cả các dữ liệu đó vào hệ thống, hoặc
phải tốn rất nhiều thời gian để xử lí khối lượng giấy tờ không hồi kết đó. Hơn
thế, xác suất sai sót trong nhập liệu khá lớn.

e. Nhận dạng cá nhân:


Với phần mềm OCR, các tài liệu pháp lí như chứng minh nhân dân, hộ chiếu,
bằng lái xe và nhiều loại giấy tờ khác đều có thể được quét nhanh chóng bởi
các văn phòng công chứng, phòng cảnh sát, sân bay và nhiều tổ chức, dịch vụ
cần xử lí thông tin cá nhân. Đối với các giấy tờ tùy thân không quá nhiều kí
tự, công nghệ OCR có khả năng nhận dạng chính xác gần như tuyệt đối, giảm
thiếu tối đa lỗi nhập liệu. Hơn thế nữa, việc nhận dạng và trích xuất thông tin
bằng máy giúp các cơ quan, đơn vị, tổ chức dễ dàng lưu trữ thông tin và có thể
truy xuất thông tin người dùng bất cứ lúc nào.

2.2 Các ứng dụng OCR phổ biến


2.2.1 Adobe Acrobat Pro DC
Adobe Acrobat DC là một phần mềm cho phép bạn chuyển đổi tệp từ PDF
sang Word, Excel và các định dạng khác.

7
ƯU ĐIỂM:
• Dễ sử dụng
• Chỉnh sửa văn bản và hình ảnh
• Giao diện người người dùng đơn giản và dễ sử dụng
• Công cụ cộng tác tốt

NHƯỢC ĐIỂM:

• Các thao tác liên quan đến chỉnh sửa văn bản khá khó hiểu cho người
dung
• Giá thành của phần mềm khá dễ tiếp cận, với một mức giá 14.99 đô 1
tháng, tương đương với gần 375,000 đồng 1 tháng.

2.2.2 Nanonets

Nanonet có thể hiểu tất cả các loại tài liệu, trên nhiều ngôn ngữ và không
phân biệt mẫu. AI của Nanonets học hỏi liên tục và không ngừng cải thiện độ
chính xác của nó khi nó trích xuất / xác thực dữ liệu từ tài liệu của bạn.

ƯU ĐIỂM:

• Dùng thử miễn phí

8
• Giao diện đơn giản
• Dễ sử dụng

• Hoạt động ngoại tuyến (đối với phiên bản cao cấp)

NHƯỢC ĐIỂM: Giá thành đắt so với mặt bằng chung: 499 đô cho 1 tháng
sau khi kết thúc dùng thử, tương đương với 12,475,000 đồng cho 1 tháng sử dụng
dịch vụ.

2.2.3 PDF READER


PDF Reader hỗ trợ 20 ngôn ngữ, bao gồm tiếng Anh, tiếng Pháp, tiếng Bồ
Đào Nha, tiếng Đức và tiếng Tây Ban Nha.

ƯU ĐIỂM:
• Dễ sử dụng
• Đa dạng ngôn ngữ

• Chú thích rõ ràng các tính năng


• Phần mềm mua 1 lần, sử dụng vĩnh viễn
• Khả năng điền và tạo các biểu mẫu
• Giá thành hợp lý nhất: $89,99 cho phiên bản tiêu chuẩn và $119,99 với
phiên bản cao cấp.

NHƯỢC ĐIỂM:

• Vì có nhiều tính năng nên giao diện sẽ khó làm quen đối với những người
dùng mới
• Thời gian tải về đôi khi bị chậm

9
2.2.4 ABBYY FINE READER
ABBYY FineReader, một trong những chương trình OCR phổ biến nhất
trong danh sách của PCWorld, là một chương trình mạnh mẽ và dễ sử dụng có
thể đoán tốt văn bản có thể có trong tài liệu được quét. Công cụ OCR có thể
nhận dạng độc lập tới 99 % văn bản được in ở cấp độ nhận dạng ký tự từ phông
chữ 18pts đến cỡ phông 11 pts (chiều rộng ký tự). Độ chính xác cao hơn ở kích
thước điểm lớn hơn.

ƯU ĐIỂM:
• Giao diện đơn giản
• Có tích hợp tính năng so sánh tài liệu
• Dễ sử dụng

NHƯỢC ĐIỂM: Giá thành vẫn khá cao so với PDF Reader: $199 cho
phiên bản tiêu chuẩn và $299 cho phiên bản doanh nghiệp

2.2.5 CÔNG CỤ TỐI ƯU NHẤT CHO OCR

• PDF Reader được xem là công cụ tối ưu nhất cho OCR. Những tính năng
đi kèm và hỗ trợ đa ngôn ngữ được xem là một thế mạnh của công cụ này.
Bên cạnh đó, một mức giá không quá đắt cũng là một lợi thế so với các
ứng dụng OCR khác bởi nó có thể tiếp cận được với nhiều khách hàng và
phù hợp với đại đa số người dùng phổ thông – đối tượng không sẵn sàng
chi ra một số tiền lớn cho một phần mềm mà họ không sử dụng hết những
tính năng trên đó.

• Bên cạnh đó, những khách hàng tiềm năng khác đó chính là những sinh
viên cần những công cụ phục vụ cho quá trình học tập. Chính vì thế, một
mức giá hợp lý và thời gian sử dụng trọn đời cho một lần mua được xem
là một sự lựa chọn đúng đắn đối với sinh viên khi không phải bỏ ra một
số tiền quá lớn, chỉ tương đương với mức giá của Window 11 bản quyền.

10
2.3 Thuật toán OCR
1. CÁCH THỨC HOẠT ĐỘNG Thuật toán OCR hoạt động dựa trên
việc phân chia hình ảnh ký tự thành các phần được phân biệt bởi 2 yếu tố:
vùng trống hoặc vùng không trống. Tuỳ theo font chữ hoặc đoạn văn bản được
dùng cho ký tự trong ảnh, kết quả trả về của thuật toán là một ma trận được
gắn nhãn, tương ứng với ký tự trong ảnh.

2. CÁC BƯỚC HOẠT ĐỘNG CỦA THUẬT TOÁN OCR


1. Bước 1: Tiếp nhận hình ảnh. Nhận được một văn bản dưới dạng hình ảnh
không thể chỉnh sửa được theo cách thông thường
2. Bước 2: Làm sạch và giảm độ nhiễu của hình ảnh để văn bản dễ được xử
lý hơn Mục đích của bước này nhằm làm cho dữ liệu có thể dễ dàng được
xử lý bởi thuật toán OCR
3. Bước 3: Phân tích và trích xuất những đặc điểm của hình ảnh cần được
xử lý. Nhị phân hoá: chuyển dữ liệu hình ảnh thành đen và trắng, màu
đen được dùng để biểu thị văn bản còn màu trắng đại diện cho nền. Đây
là một bước vô cùng quan trọng bởi nó có thể giúp nhận diện được font
chữ và cỡ chữ
4. Bước 4: Nhận diện ký tự. Thuật toán OCR sử dụng các thuật toán khác
nhau để nhận diện ký tự và chữ thông qua 2 đặc điểm: nhận dạng mẫu
chữ (các loại chữ viết tay khác nhau, kiểu trình bày) và nhận dạng đặc
điểm (vd: nét cong và nét thẳng trong chữ U)

5. Bước 5: Hậu xử lý. Đầu ra của dữ liệu có thể là một chuỗi ký tự hoặc một
tệp. Một số ứng dụng OCR cho phép xuất ra file PDF với cấu trúc giống
với văn bản gốc.

2.4 Nhận diện ký tự quang học


Một công cụ OCR đơn giản hoạt động bằng cách lưu trữ nhiều khuôn thức
hình ảnh văn bản và phông chữ khác nhau dưới dạng mẫu. Phần mềm OCR sử
dụng các thuật toán so khớp mẫu để so sánh các hình ảnh văn bản, theo từng

11
ký tự một, với cơ sở dữ liệu nội bộ. Nếu hệ thống so khớp văn bản theo từng
từ một thì sẽ được gọi là nhận dạng từ quang học. Giải pháp này có những hạn
chế vì số lượng phông chữ và kiểu chữ viết tay là gần như vô hạn, cũng như
không thể ghi lại hay lưu trữ tất cả kiểu loại trong cơ sở dữ liệu được.

12
3 Giai đoạn rút trích - Keyword
3.1 Định nghĩa
Keyword Extraction (còn được gọi là phát hiện từ khóa hoặc phân tích từ
khóa) là một kỹ thuật phân tích văn bản tự động trích xuất các từ và biểu thức
được sử dụng nhiều nhất và quan trọng nhất từ một văn bản. Nó giúp tóm tắt
nội dung của các văn bản và nhận ra các chủ đề chính được thảo luận.

Keyword Extraction sử dụng trí tuệ nhân tạo học máy (AI) với xử lý ngôn
ngữ tự nhiên (NLP) để chia nhỏ ngôn ngữ của con người để máy móc có thể
hiểu và phân tích. Nó được sử dụng để tìm từ khóa từ mọi dạng văn bản: tài
liệu thông thường và báo cáo kinh doanh, nhận xét trên mạng xã hội, diễn đàn
trực tuyến và bài đánh giá, báo cáo tin tức, v.v.

3.2 Các công cụ và phương pháp rút trích từ khóa


3.2.1 Spacy
Để nói về extract keywords thì không thể không nhắc tới spacy. Là một
trong những thư viện Python NLP khá nổi tiếng, SpaCy đi kèm với các pre-
trained pipelines và hiện đã và đang hỗ trợ mã hóa và đào tạo cho hơn 60
loại ngôn ngữ khác nhau. Bao gồm các mô hình mạng nơ-ron cho các tác vụ gắn
thẻ, phân tích cú pháp, nhận dạng thực thể được đặt tên, phân loại văn bản...

Một số xử lý cơ bản của spacy như sau: - Tách nội dung văn bản đầu vào
bởi tokens - Trích xuất các key words từ danh sách token. Đặt các key words
với các thẻ POS như “PROPN”, “ADJ”, "VERB", “NOUN”... (Danh sách thẻ
POS có thể tùy chỉnh)

Hình 1: Chương trình chạy thư viện Spacy với các pretrained pipelines giúp
phân biệt ra những danh từ, động từ, tính từ,...

13
Hình 2: Chương trình chạy thư viện Spacy trong Python NLP để rút trích dữ
liệu của 1 câu văn khi được nhập

Hình 3: Và đây là kết quả rút trích, khi chương trình xuất ra các keywords quan
trọng như tính từ mạnh, danh từ, động từ chứa trong câu

3.2.2 Textrank
Textrank là một thư viện trong Python có chức năng trích xuất từ khóa và
tóm tắt văn bản. Thuật toán xác định mức độ liên quan chặt chẽ của các từ
bằng cách xem liệu chúng có theo sau nhau hay không. Các thuật ngữ quan
trọng nhất trong văn bản sau đó được sắp xếp bằng cách sử dụng thuật toán
xếp hạng. Textrank thường tương thích với pipelines của Spacy.

Dưới đây là một ví dụ các bạn có thể tham khảo. Rake-NLTK RAKE
(Rapid Automatic Keyword Extraction) là một phương pháp trích xuất từ khóa

14
để tìm các từ hoặc cụm từ có liên quan nhất trong một đoạn văn bản bằng cách
sử dụng một tập hợp các từ dừng và dấu phân cách cụm từ. RAKE sử dụng
thuật toán trích xuất từ khóa độc lập theo miền và cố gắng xác định các cụm
từ khóa trong nội dung văn bản bằng cách phân tích tần suất xuất hiện của từ
và sự đồng xuất hiện của nó với các từ khác trong văn bản. Rake nltk là một
phiên bản mở rộng của RAKE với sự hỗ trợ bởi NLTK Trình xử lý cơ bản của
RAKE, điều này có thể giúp nhận ra những keywords một cách chính
xác hơn, gồm những cụm từ mang ý nghĩa đầy đủ hơn thay vì những
tính từ, danh từ riêng lẻ

Hình 4: Chương trình sử dụng thư viện Rake-NLTK, sử dụng thuật toán trích
xuất từ khóa độc lập bằng tần suất xuất hiện của từ đó

15
Hình 5: Và đây là kết quả trả về các keywords nhưng lần này không theo những
từ riêng biệt mà là cụm danh từ, cụm động từ

Chia nội dung văn bản đầu vào bởi dotes Tạo ma trận các từ đồng xuất hiện
Word scoring - Điểm đó có thể được tính bằng mức độ của một từ trong ma
trận, dưới dạng tần suất từ hoặc mức độ của từ chia cho tần suất của nó Các
cụm từ khóa cũng có thể tạo bằng cách kết hợp của các từ khóa

3.2.3 KeyBert
KeyBERT là một kỹ thuật trích xuất từ khóa cơ bản và dễ sử dụng, tạo
ra các từ khóa và cụm từ khóa tương tự nhất với một tài liệu nhất định bằng
cách sử dụng BERT-embeddings. Nó sử dụng BERT-embeddings và tính cosine
similarity để xác định vị trí các sub-documents trong một document giống nhất
với chính tài liệu đó.

BERT được sử dụng để trích xuất document embeddings để tạo ra cái biểu
diễn của documents . Tiếp theo các word embeddings cho các từ / cụm từ sẽ
được trích xuất. Sau đó KeyBert sử dụng tính tương tự cosine để tìm các từ /
cụm từ giống nhất với tài liệu.
Thư viện Transformers được xây dựng cho các ứng dụng xử lý ngôn ngữ tự
nhiên và nền tảng của nó cho phép người dùng chia sẻ các mô hình học máy và
bộ dữ liệu

16
Hình 6: Chương trình chạy thư viện Keybert với những thuật toán ít hơn so với
những thư viện khác nhưng vẫn đảm bảo hiệu suất kết quả

Hình 7: Kết quả Output cho ra những keywords quan trọng đi kèm với nó là
tần số xuất hiện nhiều nhất đến thấp nhất

3.2.4 World Cloud


Word cloud là một công cụ để trực quan hóa dữ liệu văn bản, thường được
sử dụng để nhấn mạnh các điểm dữ liệu văn bản quan trọng.

Một thuật ngữ xuất hiện trong Word cloud càng nhiều, thì càng nhiều lần
nó xuất hiện trong nguồn dữ liệu văn bản (như bài phát biểu, bài đăng trên
blog hoặc cơ sở dữ liệu) (Còn được gọi là tag cloud hay text cloud). Thuật ngữ
nào xuất hiện trong tài liệu càng thường xuyên và càng quan trọng thì thuật
ngữ đó càng lớn và càng được in đậm. Đây là những cách để trích xuất các phần
quan trọng nhất của dữ liệu dạng văn bản, chẳng hạn như các bài đăng trên
blog hay cơ sở dữ liệu.

Sau đây là chương trình chạy thư viện World Cloud trên Python:

17
Hình 8: Chương trình chạy thử việc rút trích keywords trong đoạn trích Chị em
Thúy Kiều để đưa ra những từ quan trọng trong đoạn thơ trên

18
Hình 9: Kết quả trả ra cho một bảng số liệu thống kê tần số những từ khóa
lặp lại trong đoạn trích và một graphic với keywords nào xuất hiện nhiều sẽ lớn
hơn những từ còn lại

19
3.2.5 Yet Another Keyword Extractor (Yake)
YAKE là một phương pháp trích xuất từ khóa tự động không giám sát, để
xác định các từ khóa có liên quan nhất trong một văn bản bằng cách sử dụng
dữ liệu thống kê văn bản từ các văn bản đơn lẻ. Kỹ thuật này không dựa vào
từ điển, kho dữ liệu bên ngoài, kích thước văn bản, ngôn ngữ ... và nó không
yêu cầu đào tạo về một bộ tài liệu cụ thể nào cả. Các đặc điểm chính của thuật
toán Yake như sau:
Unsupervised approach
Corpus-Independent
Domain and Language Independent
Single-Document

Nhìn chung, thuật toán của YAKE sử dụng vẫn tương tự như các thư
viện khác của Python như KeyBert hay Spacy, xuất các keywords theo dạng
từng từ riêng lẻ và tần số xuất hiện của nó chứ vẫn chưa đưa ra kết quả tối ưu
là một cụm từ được xử lí AI.

3.3 Các bước và thuật toán thực hiện phương pháp rút
trích
3.3.1 Naive Counting
Phương pháp này hết sức đơn giản, chỉ việc đếm số lần xuất hiện của từng
từ trong văn bản. Chúng ta sẽ đi vào ví dụ với 1 văn bản tiếng Việt luôn:

1. Bước 1: Tiền xử lý (Pre-processing): Trong bước này, chúng ta sẽ thực hiện


một số thao tác bao gồm: tách từ tiếng Việt, đưa về dạng viết thường,
xóa dấu câu, stopword.
2. Bước 2: Liệt kê các ứng viên: Bằng cách tách văn bản đã xử lý ở trên theo
khoảng trắng. Cách làm này giúp ta thu được các từ và mỗi từ này sẽ là
1 ứng viên có thể là từ khóa đại diện cho văn bản.
3. Bước 3: Chấm điểm các ứng viên: Chúng ta sẽ đếm tần suất xuất hiện
của mỗi ứng viên trong văn bản đã xử lý. Và giá trị này sẽ là điểm của
chúng luôn.

4. Bước 4: Kết quả cuối cùng: Từ kết quả chấm điểm ở trên, ta thực hiện
sắp xếp theo thứ tự giảm dần để lấy ra top N từ khóa có số lần xuất hiện
nhiều nhất làm kết quả.

3.3.2 TF-IDF (Term Frequency – Inverse Document Frequency)


Phương pháp này ngoài việc quan tâm yếu tố tần suất 1 từ xuất hiện trong
một văn bản thì nó còn quan tâm tới tỉ lệ từ đó xuất hiện trong tất cả các văn
bản. Chúng ta cùng tìm hiểu nó qua các bước của quy trình trích rút từ khóa.
Bởi vì IDF quan tâm tới tỉ lệ xuất hiện của từ xuyên suốt toàn bộ các văn bản.
Do đó, phương pháp này không chỉ dựa trên 1 văn bản đơn lẻ mà thống kê dựa
trên 1 tập hơn các văn bản.

20
TF: Term Frequency(Tần suất xuất hiện của từ) là số lần từ xuất hiện trong
văn bản. Vì các văn bản có thể có độ dài ngắn khác nhau nên một số từ có thể
xuất hiện nhiều lần trong một văn bản dài hơn là một văn bản ngắn. Như vậy,
term frequency thường được chia cho độ dài văn bản( tổng số từ trong một văn
bản).

Hình 10: Công thức tính tần suất xuất hiện của từ trong văn bản
4

IDF: Inverse Document Frequency(Nghịch đảo tần suất của văn bản), giúp
đánh giá tầm quan trọng của một từ . Khi tính toán TF , tất cả các từ được
coi như có độ quan trọng bằng nhau. Nhưng một số từ như “is”, “of” và “that”
thường xuất hiện rất nhiều lần nhưng độ quan trọng là không cao. Như thế
chúng ta cần giảm độ quan trọng của những từ này xuống.

Hình 11: Công thức tính tần suất nghịch đảo - giúp tăng độ chính xác, giảm
tần số từ kém quan trọng hơn

21
Cơ số logarit trong công thức này không thay đổi giá trị idf của từ mà chỉ thu
hẹp khoảng giá trị của từ đó. Vì thay đổi cơ số sẽ dẫn đến việc giá trị của các từ
thay đổi bởi một số nhất định và tỷ lệ giữa các trọng lượng với nhau sẽ không
thay đổi.
Cài đặt tf-idf với Python
1. Bước 1: Tiền xử lý dữ liệu: Cũng giống như phương pháp trên, chúng ta
vẫn sẽ tách từ, đưa về chữ thường, xóa bỏ dấu câu và stopword của các
văn bản.

2. Bước 2: Liệt kê các ứng viên: Chúng ta có thể sinh ra các từ khóa ứng
viên bằng cách tách từ theo khoảng trắng. Khi đó ta sẽ được các từ đơn
(1-gram). Ngoài ra, bạn có thể ghép 2 từ liên tiếp để tạo ra cụm từ 2-gram,
3 từ liên tiếp để tạo ra 3-gram,. . . Và đó sẽ là các ứng cử viên từ khóa.

3. Bước 3: Chấm điểm các từ khóa: Với mỗi ứng viên (từ khóa) có được,
chúng ta thực hiện tính TF và IDF của ứng viên đó. Tích của TF và IDF
sẽ là điểm số của từ khóa đó.
4. Bước 4: Kết quả cuối: Từ bảng chấm điểm của các ứng viên, ta sắp xếp
theo thứ tự điểm giảm dần và lấy ra N từ khóa đầu tiên làm kết quả cuối
cùng.

Và đây là chương trình mẫu cho việc tính toán tf-idf cho 2 câu thơ trong Truyện
Kiều sau khi trình bày các bước và thuật toán hoạt động của nó trong chương
trình Python:

22
Hình 12: Chương trình tương ứng với bước 1 và bước 2 đó là xử lý dữ liệu (tách
từ, đưa về chữ thườngm xóa bỏ dấu câu) và hình thành các từ 1-gram

23
Hình 13: Chương trình đang thực hiện bước 3 và 4 khi tính TF và IDF của từng
chữ, tích của TF và IDF sẽ trở thành điểm số của từ khóa, bước 4 xuất bảng
thống kế từ cao đến thấp theo tần suất xuất hiện

3.3.3 Rapid Automatic Keyword Extraction (RAKE)


RAKE là một phương pháp trích xuất từ khóa được đề xuất vào năm 2010.
Phương pháp này sử dụng tần suất từ và đồng xuất hiện để xác định các từ
khóa. Phương pháp này rất hữu hiệu trong việc xác định các từ khóa là cụm
từ.
1. Bước 1 - Tiền xử lý dữ liệu: Các stopword (tiếng Việt) sẽ bị xóa khỏi văn
bản. Và do tiếng Việt có từ ghép nên ta nên ách từ trước.
2. Bước 2 - Liệt kê ứng viên: Chúng ta sẽ tách văn bản dựa trên vị trí của
các stopword và dấu câu và thu được các từ / cụm từ. Các từ và cụm từ
đứng cạnh nhau không bị chia tách bởi dấu câu và stopword sẽ được coi
là các ứng viên.
3. Bước 3 - Chấm điểm ứng viên Đầu tiên, ta sẽ đi đếm tần suất xuất hiện
của tất cả các từ đơn trong danh sách các từ khóa ứng viên. Tiếp theo,
các từ đồng xuất hiện cũng sẽ được thống kê và bậc (degree) cho mỗi từ
là tổng của chúng (Xem bảng để hiểu hơn). Số liệu này xác định các từ
xuất hiện thường xuyên trong các từ khóa ứng viên dài. Tiếp nữa, ta thực
hiện chia deg(w) cho freq(w) để có được điểm số cuối cùng cho các từ đơn.
Việc này giúp ta thấy được từ nào xuất hiện nhiều hơn trong cụm so với
đứng riêng lẻ.

24
4. Bước 4 - Xếp hạng cuối cùng: - Cuối cùng, ta có được điểm của các từ
khóa ứng viên bằng tổng điểm của các thành viên của nó. Sau đó, top N
các ứng viên có điểm số cao sẽ được coi là các từ khóa của bài viết.

25
4 Tìm hiểu về giai đoạn truy xuất dữ liệu lên
Internet
4.1 AutoCopy
Auto Copy giúp tự động sao chép văn bản đã chọn vào clipboard. Có các
tùy chọn để sao chép dưới dạng văn bản thuần túy, bao gồm URL trong văn
bản được sao chép... Đa phần thời gian sử dụng máy tính của người dùng khi
đã bôi đen một đoạn văn bản là thường muốn sao chép để chia sẻ hay sử dụng
chúng. Phần tiện ích mở rộng Auto Copy này sẽ giúp bạn nhanh chóng hợp lý
hóa quá trình trên.

Lưu ý: - Phần mở rộng này hiện hoạt động tất cả các loại URL. Để nó hoạt
động với tệp: /// URL, bạn phải chọn Allow access to file URLs trên trang Tiện
ích mở rộng của Chrome (Chrome Extension). Các kịch bản nội dung được tự
động vô hiệu hóa trong Extension Gallery. Do đó, tiện ích mở rộng sẽ không
hoạt động trên trang này hoặc bất kỳ trang nào trong Gallery.

4.2 True X-Mouse Gizmo


Phần mềm này cho phép sao chép và dán văn bản bằng cử chỉ chuột. Đây
là một ứng dụng rất thông minh hiểu rằng nếu chúng ta đã chọn văn bản, có
thể muốn sao chép văn bản đó và ứng dụng sẽ làm điều đó cho chúng ta. Bạn
không cần phải nhấn hoặc nhấp vào bất cứ thứ gì. Nó dán văn bản theo cách
tương tự. Đây là cách nó hoạt động.

Sao chép văn bản Mở bất kỳ ứng dụng nào hỗ trợ văn bản mà bạn có thể
sao chép, chẳng hạn như trình duyệt, tài liệu hoặc ứng dụng email. Chọn văn
bản. Đó là tất cả những gì bạn cần làm. True X-Mouse sẽ sao chép văn bản đã
chọn cho bạn. Nó sẽ thay thế bất cứ thứ gì đã được sao chép vào khay nhớ tạm.

Dán văn bản Khi bạn dán văn bản, bạn có một trong hai tình huống; bạn
muốn dán nó vào phần trống của tệp hoặc bạn muốn dán nó lên văn bản. True
X-Mouse Gizmo có thể tự động hóa cả hai kịch bản. Để chỉ cần dán văn bản
vào phần trống của tài liệu/tệp, hãy bấm vào bên trong tệp mà bạn muốn dán
văn bản, rồi bấm giữa con chuột hoặc bàn di chuột. Văn bản sẽ được dán. (Cách
bấm giữa con chuột và bàn di chuyển chuột: https://www.addictivetips.
com/windows-tips/middle-click-on-your-touch-pad/

Nếu dán văn bản sao cho nó thay thế một đoạn văn bản khác, hãy tiếp tục
và chọn đoạn mã đó, rồi nhấp chuột giữa một lần nữa. Lần này, True X-Mouse
Gizmo sẽ không sao chép văn bản mới được chọn. Nó áp dụng logic rằng nếu
bạn đã chọn văn bản trước đó, bạn đã làm điều đó vì bạn muốn sao chép nó.
Nếu không thay thế văn bản trên khay nhớ tạm, bạn đi và chọn thêm văn bản,
rất có thể bạn muốn thay thế văn bản đó bằng văn bản bạn đã sao chép vào
khay nhớ tạm, đó là lý do tại sao nó không sao chép được.

Tất nhiên, sẽ có những trường hợp ngoại lệ ở trên. Trong trường hợp đó,

26
bạn có thể sử dụng phím tắt Ctrl+C để sao chép văn bản mới mà bạn đã chọn
và True X-Mouse Gizmo có khả năng coi là văn bản mà bạn sẽ thay thế. Nghe
có vẻ hơi phức tạp nhưng một khi bạn bắt đầu sử dụng ứng dụng để sao chép
và dán văn bản, bạn sẽ nhanh chóng quen với cách thức hoạt động của nó. Ứng
dụng này có một thiếu sót; miễn là nó còn hoạt động, bạn sẽ không thể sử dụng
thao tác nhấp chuột giữa cho bất kỳ việc gì, chẳng hạn như đóng tab trình
duyệt hoặc đóng cửa sổ ứng dụng. Ứng dụng này chỉ hoạt động đối với văn bản
chứ không hoạt động đối với tệp.

5 Phân công nhiệm vụ và Đánh giá thành viên

27
MSSV HỌ TÊN CÔNG VIỆC TUẦN 1 CÔNG VIỆC TUẦN 2
Viết báo cáo, hỗ trợ xây Thực hiện viết báo cáo
Nguyễn Bảo dựng Web, design trang đồ án bằng LaTex, design
22127243
Long Web bằng Figma Tìm hiểu trang Web Tìm hiểu độ
độ đo, thực nghiệm OCR đo, thực nghiệm OCR
Tìm hiểu cách OCR hoạt
động (phần mềm ko xài So sánh công cụ (OCR) và
Bùi Minh GG LENS, coding) Giới đưa ra những gợi ý cho
22127342
Quân thiệu các chức năng rồi công cụ tốt nhất
chọn cụ thể 1 chức năng Thuật toán sử dụng OCR
(phát hiện văn bản)
Hoàn thiện các chức năng
Thực hiện các chức năng
Trần Nguyễn đồ ánn(Thanh toán, Hiển
22127182 còn lại dự tính của chợ ứng
Phúc Khang thị sao, comment đánh giá
dụng
từ nhiều người)
Thuật toán sử dụng trong
trích xuất từ khóa, cách
Tìm hiểu các rút trích
mà hệ thống hoạt động
Thái Hữu từ khóa, xác định từ nào
22127400 để đưa ra nội dung văn
Thọ là nội dung của văn bản
bản (ví dụ: Thuật toán để
(keyword extractor)
nhận ra danh từ, động từ,
từ chính trong văn bản,...)
Dựa trên những công cụ
đã tìm hiểu, so sánh
Cách truy xuất văn bản
Lê Quốc những công cụ dán văn
22127186 sang trình duyệt sau khi
Khánh bản lên trình duyệt và đưa
đã có dữ liệu trích xuất
ra nguyên nhân tại sao lại
tối ưu nhất
Dựa trên những công cụ
Cách áp dụng các phần đã tìm hiểu, so sánh
Nguyễn Lê
22127474 mềm, code cho việc rút những công cụ trích xuất
Thanh Duy
trích (chọn 4 5 phần mềm dữ liệu và đưa ra phiên
bản tốt nhất

Bảng 1: Bảng phân công công việc của nhóm cho Đồ án OCR

28
HỌ TÊN ĐÁNH GIÁ MÔ TẢ CHI TIẾT
Độ đo OCR, thực hiện viết báo
Nguyễn Bảo Long 100%
cáo 2 đồ án
So sánh các công cụ OCR, thuật
Bùi Minh Quân 100% toán, phương thức hoạt động,
ứng dụng
Thực hiện các ứng dụng của Key-
Trần Nguyễn Phúc
100% word Extractor, thực hiện code
Khang
đồ án chính
Thuật toán sử dụng trong Key-
Thái Hữu Thọ 100% word Extractor, phương thức
hoạt động
So sánh công cụ truy xuất dữ liệu
Lê Quốc Khánh 100% lên Internet, các công cụ, độ đo
của Keyword Extractor
Tìm hiểu công cụ Keyword Ex-
Nguyễn Lê Thanh
100% tractor hiệu quả, đưa ra phiên
Duy
bản tốt nhất, thực nghiệm.

Bảng 2: Bảng đánh giá mức độ hoàn thành công việc đã được giao

6 Lời kết
Thông qua Đồ án môn học, nhóm hy vọng bài báo cáo trên sẽ là một công
cụ tra cứu, là một nguồn tài liệu tham khảo với đầy đủ những thông tin hỗ trợ
cho công việc học tập và làm việc sau này. Với các nghiên cứu, tìm hiểu về OCR,
Keyword Extractor và trích xuất dữ liệu lên Internet, hy vọng những kiến thức
lý thuyết trên sẽ được nhóm thực hiện chương trình thực nghiệm thực tế trong
tương lai

Mặc dù đây chỉ là Đồ án 2, nhưng các thành viên nhóm đều cố gắng thực
hiện một cách nghiêm túc, chỉn chu trong các công đoạn từ tìm hiểu chung, tìm
hiểu lý thuyết, và nghiên cứu các bộ đo bằng thuật toán, các phần mềm hỗ trợ.

Tuy nhiên, cũng không thể tránh khỏi những thiếu sót, hạn chế trong việc
thực hiện đồ án. Nhận thấy bài báo cáo chưa chứa nhiều những thực nghiệm
thực tế và công cụ đo mang tính xác thực, đây cũng vừa là thiếu sót cũng như
là cơ hội để nhóm thực hiện tiếp việc lập trình nên phần mềm và mô phỏng
bằng video dựa trên những kiến thức và thuật toán cơ bản như trên.
Hiểu được rằng đây không chỉ là Đồ án - là nguồn tài liệu bổ sung cho kiến
thức cứng, kĩ năng tìm hiểu và thực hiện các chức năng từ cơ bản đến nâng cao
của OCR, Keyword Extracor và truy xuất dữ liệu đã tìm được lên Internet mà
còn phát triển các kỹ năng hoạt động nhóm, thảo luận, đưa ra quyết định, kỹ
năng sử dụng phần mềm quản lý công việc, tiến độ nhóm, tìm hiểu chuyên sâu
các phần mềm thứ ba hỗ trợ cho các tác vụ quét OCR và Keyword Extractor,...

Hy vọng bài báo cáo Đồ án sẽ là phương thức chứa đầy đủ nội dung mà
nhóm muốn truyền tải như một tài liệu tham khảo cho công việc, học tập sau

29
này. Và một lần nữa, nhóm xin chân thành Cảm ơn sự giúp đỡ, hướng dẫn của
Cô trong Đồ án môn học lần này của nhóm.
Kính chúc Cô sức khỏe, và thành công trong sự nghiệp dìu dắt thế hệ học
trò đến bến bờ tri thức.

Nhóm 1 - 22CLC10

30
A Tài liệu tham khảo
OCR là gì? - https://aws.amazon.com/vi/what-is/ocr/
Ứng dụng của OCR - https://aws.amazon.com/vi/what-is/ocr/
Adobe Acrobat Pro DC - https://www.adobe.com/vn_vi/acrobat
Nanonets - https://nanonets.com/
Bài toán trích xuất thông tin từ văn bản -
https://viblo.asia/p/bai-toan-trich-xuat-thong-tin-tu-van-ban-phan-i-bJzKmPm659N
Keyword Extraction Methods from Documents in NLP -
https://www.analyticsvidhya.com/
TF-IDF là gì? - https://blog.luyencode.net/tf-idf-la-gi/
Auto Copy - https://download.com.vn/autocopy-15948
True X-Mouse - http://fy.chalmers.se/~appro/nt/TXMouse/

31

You might also like