1. Trang chủ
  2. » Luận Văn - Báo Cáo

Seminar report môn nhập môn xử lý ngôn ngữ tự nhiên

14 1 0
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

Định dạng
Số trang 14
Dung lượng 1,17 MB

Nội dung

Đề tài: Xây dựng công cụ để xác định độ tương đồng giữa 1 hoặc nhiều văn bản đầu vào với các văn bản đã có trong kho ngữ liệu văn bản sẵn có.. Các công trình liên quan: a Các ứng dụng: -

Trang 1

UNIVERSITY OF SCIENCE

FACULTY OF INFORMATION TECHNOLOGY

Seminar Report

MÔN: NHẬP MÔN XỬ LÝ

NGÔN NGỮ TỰ NHIÊN

Sinh viên thực hiện : 21127043 - Lư Trung Hậu

21127454 - Đinh Bảo Trân

21127578 - Nguyễn Hồng Quế Anh

Giảng viên hướng dẫn: Nguyễn Hồng Bửu Long

Lê Thanh Tùng Lương An Vinh

Trang 2

Mục lục

1 GIỚI THIỆU TỔNG QUAN 2

1.1 Danh sách thành viên nhóm 2

1.2 Đề tài 2

2 NỘI DUNG CHÍNH 2

2.1 Các công trình liên quan 2

2.2 Phương pháp đã cài đặt 3

a) Tải Mô Hình Word2Vec từ Google 3

b) Hàm calculate_sentence_similarity_Word2vec 4

c) Hàm find_matching_sentences 4

d) Hàm calculate_similarity 5

e) Hàm highlight_matching_sentences 5

f) Các hàm load_text, compare_texts, và compare_texts_ui_load_text 5

3 MIÊU TẢ NGỮ LIỆU 6

4 THỰC NGHIỆM 7

4.1 Chuẩn bị môi trường và dữ liệu 7

4.2 Chạy chương trình và tải dữ liệu 7

4.3 Thực hiện so sánh 7

4.4 Phân tích kết quả 7

4.5 Điều chỉnh và thử nghiệm 8

4.6 Hình ảnh thực nghiệm 8

5 KẾT LUẬN 11

6 CÁC NGUỒN THAM KHẢO 12

1

Trang 3

1 GIỚI THIỆU TỔNG QUAN:

1.1 Danh sách thành viên nhóm :

TADoubleH

21127578 Nguyễn Hồng Quế Anh

1.2 Đề tài:

Xây dựng công cụ để xác định độ tương đồng giữa 1 (hoặc nhiều) văn bản đầu vào với các văn bản đã có trong kho ngữ liệu văn bản sẵn có Hiển thị văn bản và tô màu các câu tương đồng, hiển thị tỉ lệ % số câu tương đồng

Sử dụng ngôn ngữ Python, chạy theo dạng ứng dụng độc lập (không dùng web/server) SV phải build được tool hoàn chỉnh để người dùng chỉ cần mở lên là có thể sử dụng ngay chứ không phải build lại

2 NỘI DUNG CHÍNH:

2.1 Các công trình liên quan:

a) Các ứng dụng:

- Tóm tắt văn bản: Công cụ này có thể được sử dụng để xác định các phần văn

bản quan trọng, giúp trong việc tạo ra tóm tắt cho các trang web hoặc tài liệu dài

- So sánh và phân tích văn bản: Công cụ này còn hữu ích trong việc so sánh

và phân tích văn bản để xác định độ tương đồng giữa chúng Điều này có thể

áp dụng trong nghiên cứu học thuật, kiểm tra sao chép, hay phân tích sự tương quan giữa các văn bản khác nhau

- Ứng dụng trong ngôn ngữ tự nhiên: Trong lĩnh vực xử lý ngôn ngữ tự nhiên,

công cụ này có thể giúp xác định mối quan hệ giữa các từ, cụm từ hoặc câu trong một ngôn ngữ, hỗ trợ việc xây dựng các mô hình ngôn ngữ hiệu quả hơn

- Phát triển công cụ hỗ trợ nghiên cứu và giáo dục: Công cụ có thể hỗ trợ việc

nghiên cứu và giảng dạy bằng cách cung cấp phương tiện để so sánh và phân

2

Trang 4

tích văn bản, giúp sinh viên và nhà nghiên cứu hiểu rõ hơn về các chủ đề học thuật

- Phân tích ngữ nghĩa: Sử dụng mô hình Word2Vec, công cụ này có thể giúp

phân tích độ tương tự ngữ nghĩa giữa các văn bản, hỗ trợ trong việc tìm kiếm thông tin và dịch máy, đặc biệt hữu ích trong xử lý văn bản tiếng Việt

b) Các bài báo liên quan:

- MỘT SỐ PHƯƠNG PHÁP TÍNH ĐỘ TƯƠNG ĐỒNG VĂN BẢN DỰA

TRÊN MÔ HÌNH VEC-TƠ, Tạp chí Khoa học và Công nghệ - Đại học Đà Nẵng, 2022 Bài báo này giới thiệu một số phương pháp tính độ tương đồng

văn bản dựa trên mô hình vec-tơ, bao gồm phương pháp Cosine, Jaccard, Matthanan và Levenshtein

- ĐỘ TƯƠNG ĐỒNG NGỮ NGHĨA GIỮA HAI CÂU VÀ ỨNG DỤNG

TRONG TÓM TẮT VĂN BẢN, UET, 2022 Bài báo này giới thiệu phương

pháp tính độ tương đồng câu dựa trên WordNet và Hidden Topic

- NGHIÊN CỨU CÁC PHƯƠNG PHÁP TÍNH TOÁN ĐỘ TƯƠNG TỰ

CỦA VĂN BẢN LUẬT TIẾNG VIỆT, Đại học Bách khoa Hà Nội, 2021.

Bài báo này nghiên cứu các phương pháp tính độ tương đồng văn bản tiếng Việt, đặc biệt là văn bản luật tiếng Việt

2.2 Phương pháp đã cài đặt:

a) Tải Mô Hình Word2Vec từ Google:

GoogleNews-vectors-negative300.bin, là một mô hình được huấn luyện

sẵn, sử dụng dữ liệu từ Google News Nó chứa hàng triệu từ được biểu diễn dưới dạng vector 300 chiều

- Nguyên Tắc Hoạt Động: Biểu diễn từ: Word2Vec sử dụng hai kiến trúc

chính là CBOW (Continuous Bag of Words) và Skip-gram:

+ CBOW: Dự đoán một từ dựa trên ngữ cảnh (các từ xung quanh) + Skip-gram: Ngược lại với CBOW, nó dự đoán ngữ cảnh dựa trên

một từ cụ thể

3

Trang 5

- Mục đích: Tải mô hình Word2Vec, được đào tạo sẵn bởi Google, để biểu

diễn từ dưới dạng vector

- Cách thực hiện:

+ Lấy đường dẫn đến file mô hình Word2Vec (định dạng bin)

+ Sử dụng hàm load_word2vec_format từ thư viện Gensim để tải mô

hình này

+ Ứng dụng: Mô hình này giúp chuyển đổi từ thành vector trong không gian nhiều chiều, làm cơ sở cho việc tính toán độ tương đồng ngữ nghĩa

b) Hàm calculate_sentence_similarity_word2vec:

- Mục đích: Tính toán độ tương đồng giữa hai câu.

- Cách thực hiện:

+ Tách từ trong mỗi câu sử dụng word_tokenize.

+ Loại bỏ những từ không có trong mô hình Word2Vec.

+ Tính vector trung bình cho mỗi câu bằng cách cộng vector của từng

từ rồi chia cho số lượng từ

+ Tính độ tương đồng (cosine similarity) giữa hai vector trung bình

này

- Ứng dụng: Xác định mức độ tương đồng ngữ nghĩa giữa hai câu dựa trên

ngữ cảnh sử dụng từ

c) Hàm find_matching_sentences:

- Mục đích: Tìm các cặp câu tương đồng từ hai đoạn văn bản.

- Cách thực hiện:

+ Tách câu từ mỗi văn bản sử dụngsent_tokenize

+ So sánh từng cặp câu từ hai đoạn văn bản bằng cách sử dụng hàm

‘calculate_sentence_similarity_word2vec’.

+ Lưu cặp câu có độ tương đồng vượt quá ngưỡng đã định (ví dụ: 0.8)

- Ứng dụng: Phát hiện những đoạn văn có ý nghĩa tương tự nhau giữa hai văn

bản khác nhau, hữu ích trong việc so sánh và phân tích văn bản

4

Trang 6

d) Hàm calculate_similarity:

- Mục đích: Tính toán độ tương đồng tổng thể giữa hai văn bản.

- Cách thực hiện:

+ Tách từ và chuyển chúng thành vector sử dụng Word2Vec

+ Tính độ tương đồng (sử dụng cosine similarity) giữa hai tập hợp vector từ hai văn bản

- Ứng dụng: Cung cấp một đánh giá tổng quan về mức độ tương đồng ngữ

nghĩa giữa hai đoạn văn bản

e) Hàm highlight_matching_sentences:

- Mục đích: Làm nổi bật các cặp câu tương đồng trên giao diện người dùng.

- Cách thực hiện:

+ Duyệt qua từng cặp câu tương đồng, tìm kiếm chúng trong widget văn bản

+ Sử dụng các thẻ (tag) và cấu hình màu sắc để làm nổi bật các cặp câu tương đồng

- Ứng dụng: Trực quan hóa kết quả phân tích, giúp người dùng dễ dàng nhận

biết và so sánh các phần tương đồng

f) Các hàm load_text, compare_texts, và compare_texts_ui_load_text:

- Hàm load_texts:

+ Mục đích: Cho phép người dùng tải văn bản từ tệp tin.

+ Cách thực hiện: Mở hộp thoại để chọn tệp tin, đọc nội dung và hiển

thị trên giao diện

- Hàm compare_texts:

+ Mục đích: Kích hoạt quá trình so sánh văn bản và cập nhật kết quả

trên giao diện

+ Cách thực hiện:

● Lấy nội dung văn bản từ hai widget văn bản

● Sử dụng hàm find_matching_sentences để tìm các cặp câu tương

5

Trang 7

đồng và calculate_similarity để tính độ tương đồng tổng thể.

● Cập nhật kết quả và phần trăm tương đồng trên giao diện người dùng

● Gọi hàm highlight_matching_sentences để làm nổi bật các cặp

câu tương đồng trên giao diện

- Hàm compare_texts_ui:

+ Mục đích: Xây dựng và quản lý giao diện người dùng của chương

trình

+ Cách thực hiện:

● Tạo cửa sổ chính, các widget như nhãn (label), vùng nhập văn bản (text area), và nút bấm

● Sắp xếp các widget này trên giao diện sử dụng grid layout

● Liên kết các hành động (như nhấp nút) với các hàm tương ứng

(như load_text và compare_texts).

3 MIÊU TẢ NGỮ LIỆU:

- Mô hình Word2Vec "GoogleNews-vectors-negative300.bin" được đào tạo

trên một phần của tập dữ liệu Google News, gồm khoảng 100 tỷ từ Mô hình này chứa vector 300 chiều cho 3 triệu từ và cụm từ

- Các cụm từ được thu thập thông qua một phương pháp đơn giản dựa trên dữ

liệu, được mô tả trong nghiên cứu "Distributed Representations of Words

and Phrases and their Compositionality"

- Google không công bố cụ thể về cách chia tập dữ liệu train/dev/test khi đào tạo mô hình Word2Vec của họ

- Thông thường trong quá trình đào tạo mô hình NLP, tập dữ liệu thường được chia thành các phần để đào tạo (train), phát triển (dev), và kiểm thử (test) Điều này giúp đảm bảo mô hình hoạt động hiệu quả không chỉ trên dữ liệu

đã thấy trong quá trình đào tạo mà còn trên dữ liệu mới

- Đối với việc huấn luyện các mô hình NLP như Word2Vec, tập dữ liệu lớn và

đa dạng là quan trọng để bao quát được nhiều khía cạnh ngữ nghĩa và cú pháp của ngôn ngữ

- Mô hình được huấn luyện trên tập dữ liệu Google News chắc chắn đã được

6

Trang 8

tối ưu hóa để nắm bắt được đa dạng các ngữ cảnh và sử dụng từ vựng trong thực tế

4 THỰC NGHIỆM:

4.1 Chuẩn bị môi trường và dữ liệu

- Cài đặt thư viện: Đảm bảo rằng các thư viện như NLTK, Gensim, và Tkinter

đã được cài đặt trong môi trường Python của bạn

- Tải mô hình Word2Vec: Tải file mô hình

“GoogleNews-vectors-negative300.bin” của Word2Vec, đặt trong thư mục làm việc hoặc cung cấp

đường dẫn chính xác tới file này trong code

- Chuẩn bị dữ liệu: Chuẩn bị hai tệp văn bản cần so sánh.

4.2 Chạy chương trình và tải dữ liệu

- Khởi chạy chương trình: Chạy chương trình Python, nó sẽ mở giao diện

người dùng Tkinter

- Tải văn bản: Sử dụng các nút "Load Text 1" và "Load Text 2" trong giao

diện để tải hai đoạn văn bản đã chuẩn bị

4.3 Thực hiện so sánh

- So sánh văn bản: Nhấp vào nút "Check Similarity" để chương trình bắt đầu

quá trình so sánh văn bản

- Quan sát kết quả:

+ Chương trình sẽ hiển thị độ tương đồng tổng thể giữa hai văn bản + Các cặp câu tương đồng được tìm thấy sẽ được làm nổi bật bằng màu sắc khác nhau trong cả hai văn bản

4.4 Phân tích kết quả

- Đánh giá độ tương đồng: Xem xét tỷ lệ phần trăm tương đồng được hiển thị

và các cặp câu tương đồng được làm nổi bật

- Kiểm tra mức độ chính xác: So sánh kết quả từ chương trình với nhận định

của bạn về mức độ tương đồng giữa hai văn bản

4.5 Điều chỉnh và thử nghiệm

7

Trang 9

- Thay đổi ngưỡng tương đồng: Bạn có thể thử điều chỉnh ngưỡng tương

đồng trong hàm find_matching_sentences để xem ảnh hưởng của nó đến kết

quả

- Sử dụng văn bản khác nhau: Thử nghiệm với các đoạn văn bản khác nhau

để kiểm tra tính linh hoạt và độ chính xác của chương trình

4.6 Hình ảnh thực nghiệm:

Hình 1: Hình ảnh chờ

Hình 2: Test 01

- % chính xác: 93.77%

- Số câu tương đồng: 3

8

Trang 10

- Các câu tương đồng chi tiết:

+ “The sun rose over the horizon, casting a warm orange glow over the city” và “The city was bathed in a soft orange light as the sun came up”

+ “The children play happily in the playground”

+ “Traffic moved slowly on the main street due to the heavy morning rush” và “Traffic on the main road crawled at snail’s pace because of the morning rush hour”

Hình 3: Test 02

- % chính xác: 93.32%

- Số câu tương đồng: 2

- Các câu tương đồng chi tiết:

+ “Programming languages such as Python and Java remain highly influential in the technology sector” và “Programming languages like Python and Java continue to dominate the tech world”

+ “Cloud services provide businesses with scalable resources and enhanced flexibility” và “Cloud computing offers scalable solutions and flexibility for businesses”

9

Trang 11

Hình 4: Test 03

- % chính xác: 94.41%

- Số câu tương đồng: 3

- Các câu tương đồng chi tiết:

+ “The university campus was bustling with students from various faculties” và “Students from different departments were active across the university grounds”

+ “Libraries were packed with learners preparing for their exams” + “The cafeteria served a variety of healthy and delicious meals to students” và “The university’s cafeteria offered a range of nutritious and tasty food options”

10

Trang 12

Hình 4: Test 05

- % chính xác: 92.76%

- Số câu tương đồng: 2

- Các câu tương đồng chi tiết:

+ “They communicate with their human families through a series of meows, purrs, and body gestures” và “Through barks, whimpers, and body language, they communicate a range of emotions”

+ “The presence of a cat in a home can greatly enhance the mood and emotional state of its inhabitants” và “The presence of a dog in a home can greatly enhance the mood and emotional state of its inhabitants”

5 KẾT LUẬN:

5.1 Kết quả đạt được:

- Độ chính xác: Chương trình có khả năng phát hiện và làm nổi bật các cặp

câu tương đồng, cung cấp một ước lượng độ tương đồng tổng thể giữa hai văn bản

- Trực quan hóa: Giao diện người dùng dễ sử dụng, cho phép người dùng tải

và so sánh văn bản một cách trực quan

5.2 Thách thức và giới hạn

11

Trang 13

- Đa dạng ngữ cảnh: Một số từ có nhiều nghĩa hoặc sử dụng trong ngữ cảnh

đặc biệt có thể không được phân tích chính xác

- Giới hạn mô hình Word2Vec: Word2Vec tuy mạnh mẽ nhưng có hạn chế

trong việc xử lý từ đa nghĩa và phụ thuộc vào dữ liệu huấn luyện

5.3. Hướng phát triển tương lai

- Sử dụng mô hình NLP tiên tiến: Thay thế hoặc bổ sung mô hình Word2Vec

bằng các mô hình hiện đại hơn như BERT, GPT-3, hoặc Transformer-based models Những mô hình này tốt hơn trong việc hiểu ngữ cảnh và xử lý từ đa nghĩa

- Tự đào tạo mô hình: Xem xét việc tự đào tạo mô hình Word2Vec hoặc mô

hình tương tự trên tập dữ liệu đặc thù, nhằm tối ưu hóa cho ngữ cảnh cụ thể của ứng dụng

- Tối ưu giao diện người dùng: Cung cấp thêm tính năng và cải thiện trải

nghiệm người dùng

6 CÁC NGUỒN THAM KHẢO:

- Driscoll, Mike “PySimpleGUI: The Simple Way to Create a GUI With Python – Real Python.” Real Python,

https://realpython.com/pysimplegui-python/

- “Word2vec — Machine Learning cho dữ liệu dạng bảng.” Machine Learning

cơ bản,

https://machinelearningcoban.com/tabml_book/ch_embedding/word2vec.ht ml

- “fse/word2vec-google-news-300 · Hugging Face.” Hugging Face,

https://huggingface.co/fse/word2vec-google-news-300

- “What is Sentence Similarity?” Hugging Face,

https://huggingface.co/tasks/sentence-similarity

- “Text Similarity in NLP.” Scaler,

https://www.scaler.com/topics/nlp/text-similarity-nlp/

12

Trang 14

- Import GGNews:

https://stackoverflow.com/questions/46433778/import-googlenews-vectors-n egative300-bin

13

Ngày đăng: 11/12/2024, 10:24

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w