Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh bùng nổ công nghệ số và sự phát triển mạnh mẽ của Internet, các nguồn tài nguyên dữ liệu văn bản tăng nhanh về số lượng và phong phú về nội dung. Sự gia tăng của các thư viện điện tử và trang thông tin trực tuyến dẫn đến tình trạng một tài liệu có thể được tái phát hành nhiều lần dưới nhiều định dạng, xuất hiện phân tán tại nhiều nguồn khác nhau. Thực trạng này đặt ra thách thức lớn trong việc trích chọn thông tin hữu ích, kiểm chứng tính xác thực, cũng như phát hiện việc sao chép hoặc cắt ghép văn bản từ các nguồn sẵn có.
Các giải pháp truyền thống chủ yếu dựa trên kỹ thuật tìm kiếm và so khớp chuỗi ký tự bề mặt (string matching). Phương pháp này chỉ phát huy hiệu quả khi đoạn văn bản được sao chép nguyên văn. Khi văn bản bị can thiệp bằng cách thay đổi trật tự từ ngữ, hoán đổi cấu trúc câu hoặc sử dụng từ đồng nghĩa, các thuật toán so khớp chuỗi không thể phát hiện sự trùng lặp về nội dung. Do đó, việc nghiên cứu các giải pháp đối sánh văn bản dựa trên tầng ngữ nghĩa tiềm ẩn (Latent Semantic Analysis - LSA) thay vì so khớp hình thức bề mặt là yêu cầu cấp thiết.
Đồ án tốt nghiệp của tác giả Nguyễn Minh Thành tập trung vào việc áp dụng phương pháp phân tích ngữ nghĩa tiềm ẩn nhằm nâng cao hiệu quả đối sánh văn bản. Theo quyết định giao nhiệm vụ tốt nghiệp, các nhiệm vụ nghiên cứu cụ thể bao gồm:
- Tìm hiểu các phương pháp phân cụm dữ liệu văn bản.
- Tìm hiểu một số phương pháp tạo luật cơ bản và các giải thuật liên quan đến xử lý ngôn ngữ.
- Đề ra phương pháp xây dựng hệ thống đối sánh văn bản theo ngữ nghĩa.
- Thử nghiệm với các công cụ mã nguồn mở để giải quyết bài toán đặt ra.
Đối tượng nghiên cứu của đề tài là dữ liệu văn bản (chú trọng tiếng Việt và tài liệu kỹ thuật tiếng Anh), các mô hình biểu diễn ngữ nghĩa tiềm ẩn và các độ đo tương đồng văn bản. Về phạm vi, đề tài được thực hiện tại Khoa Công nghệ Thông tin, Trường Đại học Dân lập Hải Phòng; thời gian triển khai từ ngày 03 tháng 10 năm 2016 đến ngày 30 tháng 12 năm 2016. Phạm vi thực nghiệm tập trung vào việc xây dựng quy trình tiền xử lý tách từ tiếng Việt dựa trên từ điển, tính toán ma trận phân tích giá trị kỳ dị (SVD) và mô phỏng trên ngôn ngữ R với thư viện chuyên dụng.
Cơ sở lý thuyết và phương pháp
Về khung lý thuyết, tác giả tổng hợp các lý thuyết ngôn ngữ học, mô hình không gian vector và đại số tuyến tính:
- Lý thuyết cấu trúc ngữ pháp tiếng Việt: Dựa trên các công trình nghiên cứu cấu trúc cụm danh từ của Nguyễn Tài Cẩn (1975), Hồ Lê (1992), Nguyễn Kim Thản (1997) và Diệp Quang Ban (1999) nhằm xác định các thành phần định tố, từ trung tâm và đặc trưng cấu tạo câu phục vụ cho việc tiền xử lý văn bản.
- Lý thuyết phân tích ngữ nghĩa tiềm ẩn (LSA/LSI): Kế thừa nền tảng lý thuyết trích rút ngữ nghĩa từ thống kê của Landauer & Dumais (1997), Thomas K. Landauer, Peter W. Foltz, Darrell Laham (1998) và các phát triển về Chỉ mục ngữ nghĩa tiềm ẩn (LSI) tại Bellcore từ cuối thập niên 1980.
- Kỹ thuật Phân tích giá trị kỳ dị (Singular Value Decomposition - SVD): Công cụ toán học phân rã ma trận chữ nhật thành các ma trận thành phần để giảm số chiều không gian đặc trưng.
- Mô hình trọng số: Kỹ thuật đánh trọng số kết hợp tần suất xuất hiện của từ và nghịch đảo tần suất tài liệu (TF-IDF).
- Các độ đo tương đồng văn bản: Bao gồm độ tương đồng dựa trên tập từ chung (khoảng cách Jaro, mô hình tương phản Tversky, hệ số Jaccard) và độ tương đồng trong không gian vector (độ đo Cosine, khoảng cách Euclide, khoảng cách Manhattan).
Phương pháp nghiên cứu trong đồ án kết hợp giữa lý thuyết và thực nghiệm:
- Phương pháp phân tích - tổng hợp lý thuyết: Khảo sát các công trình xử lý ngôn ngữ tự nhiên tiếng Việt, các thuật toán tách từ và phân cụm văn bản.
- Phương pháp toán học và thống kê: Áp dụng đại số tuyến tính để phân rã ma trận thuật ngữ - tài liệu và ánh xạ vào không gian khái niệm có số chiều rút gọn ($k \ll N$).
- Phương pháp thực nghiệm: Thử nghiệm giải thuật tách từ tiếng Việt trên môi trường lập trình C#; thực thi quy trình phân tích LSA, tính toán ma trận tương đồng và trực quan hóa dữ liệu trên môi trường RStudio.
Nguồn dữ liệu sử dụng trong đồ án bao gồm:
- Bộ từ điển tiếng Việt phục vụ tách từ gồm hơn 99.000 từ và cụm từ.
- Tệp dữ liệu chứa hơn 300 từ dừng (stopword) tiếng Anh.
- Tập ngữ liệu mẫu gồm 9 tài liệu kỹ thuật (5 tài liệu về giao diện người - máy $c_1 - c_5$ và 4 tài liệu về lý thuyết đồ thị $m_1 - m_4$) với 12 thuật ngữ đặc trưng.
Nội dung chính theo từng chương
Chương 1: Giới thiệu đối sánh văn bản
Chương 1 mở đầu bằng việc khái quát hóa bài toán chuyển đổi dữ liệu văn bản tự nhiên thành dữ liệu có cấu trúc. Tác giả phân tích sự khác biệt cơ bản giữa văn bản tiếng Anh và tiếng Việt trong khâu tách từ (tokenization). Tiếng Anh có ranh giới từ phân tách rõ ràng bằng dấu cách, trong khi tiếng Việt là ngôn ngữ đơn lập, ranh giới giữa các tiếng và từ ghép phức tạp, đòi hỏi phải dựa vào từ điển và giải thuật chuyên biệt kết hợp loại bỏ từ dừng.
Tác giả dành dung lượng lớn để khảo cứu các quan điểm cấu trúc ngữ pháp của các nhà nghiên cứu Việt Nam:
- Nguyễn Tài Cẩn (1975): Cụm danh từ gồm 3 phần (phần đầu, phần trung tâm gồm hai vị trí $T_1, T_2$, và phần sau) với các loại định tố chỉ xuất, định tố số lượng và định tố miêu tả.
- Hồ Lê (1992): Mô hình cấu trúc xoay quanh danh từ trung tâm với số lượng từ, nhóm danh từ $D_1$ (chỉ đơn vị, chủng loại, nơi chốn), nhóm danh từ $D_2$, sự kiện từ và đại từ chỉ định.
- Nguyễn Kim Thản (1997): Phân loại từ tổ danh từ theo các mô hình kết hợp cú pháp như danh từ + danh từ ($N+N$), danh từ + thời vị từ ($N+E$), số từ + danh từ ($F+N$), danh từ + tính từ, hoặc danh từ + động từ.
- Diệp Quang Ban (1999): Quy chuẩn mô hình danh ngữ gồm phần phụ trước (vị trí -3, -2, -1), phần phụ trung tâm (vị trí 0) và phần phụ sau (vị trí 1, 2).
Về giải pháp tách từ, tác giả khảo sát các công cụ sẵn có như Code_correct, VNSegment của Phương Thái (viết bằng Java, đóng mã nguồn) và VNTokenizer. Tác giả đề xuất giải thuật tách từ tiếng Việt chạy ngoại tuyến (offline) dựa trên bộ từ điển hơn 99.000 từ và cụm từ. Quy trình hoạt động theo cơ chế duyệt câu, so khớp từ điển, cắt tiếng bên trái và sử dụng ngăn xếp (STACK). Giải thuật giải quyết tốt các cụm từ như "thuộc | địa bàn", nhưng vẫn mắc lỗi trong trường hợp nhập nhằng như câu "Học sinh học sinh học" bị phân tách thành "Học | sinh học | sinh học". Thời gian xử lý của mô-đun này được ghi nhận khoảng 3 phút đối với một cuốn sách điện tử dung lượng 200 trang.
Nhằm tối ưu hóa tốc độ tìm kiếm trong bộ từ điển 99.000 mục từ trên bộ nhớ trong, tác giả đề xuất hai giải pháp tổ chức dữ liệu bằng C#:
| Cấu trúc dữ liệu |
Cơ chế tổ chức |
Đặc điểm vận hành |
Mảng chuỗi ký tự (string[]) |
Sắp xếp toàn bộ từ và cụm từ theo thứ tự tăng dần của mã ASCII |
Tìm kiếm nhị phân trên toàn bộ tập mục từ |
Danh sách mảng chuỗi (ArrayList) |
Mỗi phần tử trong danh sách là một mảng chuỗi gồm các từ có chung âm tiết đầu tiên |
Tách âm tiết đầu của từ cần tra, định vị mảng tương ứng rồi mới so khớp chi tiết, giúp tăng đáng kể tốc độ tìm kiếm |
Cuối chương 1, tác giả trình bày tổng quan về hệ thống gợi ý (Recommender Systems - RS) với mô hình ánh xạ $u: C \times S \to R$, phân loại các hướng tiếp cận Content-based, Collaborative Filtering và Hybrid. Đồng thời, tác giả điểm lại tiến trình xử lý văn bản tiếng Việt (bộ mã Unicode, OCR VnDOCR, từ điển Lạc Việt, hệ dịch EVTRAN/VETRAN) và tiến trình xử lý ngữ nghĩa (AI-based từ 1960, Knowledge-based từ 1980 với WordNet, Corpus-based từ 1940 và bùng nổ từ 1990).
Chương 2: Phương pháp phân tích ngữ nghĩa tiềm ẩn
Chương 2 trình bày chi tiết cơ sở toán học và kỹ thuật xử lý của phương pháp LSA cùng các thuật toán liên quan:
- Tiền xử lý và phân nhóm: Phân tích hai hướng tiếp cận phân nhóm văn bản gồm phân nhóm phân cấp (hierarchical clustering) với chi phí tính toán lớn và phân nhóm không phân cấp (non-hierarchical clustering).
- Các phương pháp tách từ phổ biến:
- Maximum Matching (LRMM): Thuật toán khớp tối đa duyệt từ trái qua phải, gồm dạng đơn giản và dạng phức tạp (phân đoạn 3 từ).
- TF-IDF: Đánh trọng số mức độ quan trọng của từ. Tác giả đưa ví dụ minh họa: một văn bản có 100 từ, từ "máy tính" xuất hiện 10 lần thì $tf = 10 / 100 = 0{,}1$. Trong tập 1000 tài liệu có 200 tài liệu chứa từ này thì $idf = \log(1000 / 200) \approx 0{,}699$. Trọng số tổng hợp đạt $TF\text{-}IDF = 0{,}1 \times 0{,}699 = 0{,}0699$.
- Transformation-based Learning (TBL): Học quy luật ranh giới từ dựa trên tập ngữ liệu gán nhãn sẵn.
- Mạng chuyển dịch trạng thái hữu hạn có trọng số (WFST) kết hợp mạng Neural: Công trình của Đinh Điền (2001) xây dựng từ điển trọng số với chi phí $Cost = -\log(f/N)$, sinh các khả năng phân đoạn tối ưu và dùng mạng Neural khử nhập nhằng, đạt độ chính xác công bố trên 97%.
- Phương pháp IGATEC: Công trình của Nguyễn Thanh Hùng (2005) kết hợp thống kê Internet và giải thuật di truyền để phân loại văn bản mà không phụ thuộc vào từ điển hay ngữ liệu học.
Về bản chất của LSA, phương pháp này giải quyết triệt để hai hiện tượng ngôn ngữ là từ đồng nghĩa (synonymy) và từ đa nghĩa (polysemy) bằng cách ánh xạ các từ và tài liệu vào một không gian khái niệm trung gian. Quy trình thực hiện gồm 4 bước:
- Thiết lập ma trận tần số thuật ngữ - tài liệu ban đầu $X$.
- Áp dụng kỹ thuật SVD để phân rã ma trận $X$ thành 3 ma trận thành phần với số chiều rút gọn.
- Nhận dạng vector đại diện cho từng tài liệu trong không gian mới.
- Xây dựng chỉ mục không gian vector để phục vụ việc truy vấn và đối sánh.
Về mặt toán học, ma trận $X$ kích thước $t \times d$ được phân rã thành:
$$X = T_0 S_0 D_0^T$$
Trong đó $T_0$ ($t \times m$) và $D_0$ ($d \times m$) là các ma trận có các cột trực giao; $S_0$ ($m \times m$) là ma trận đường chéo chứa các giá trị kỳ dị sắp xếp giảm dần, với $m = \min(t, d)$. Tác giả minh họa cụ thể việc tính trị riêng và vector riêng thông qua phương trình đặc trưng $\det(X - cI) = 0$. Khi giảm chiều, chỉ giữ lại $k$ giá trị kỳ dị lớn nhất trong $S_0$, ta thu được ma trận xấp xỉ:
$$\hat{X} = T S D^T$$
Tác giả chứng minh hiệu quả giảm chiều qua ví dụ lý thuyết: Một cơ sở dữ liệu có $t \approx 1.000.000$ thuật ngữ và $d \approx 10.000$ tài liệu, ma trận ban đầu đòi hỏi lưu trữ xấp xỉ 10 tỷ giá trị. Khi áp dụng SVD với $k = 200$, ma trận $T$ ($1.000.000 \times 200$) chiếm 200 triệu phần tử, ma trận đường chéo $S$ lưu 200 phần tử, ma trận $D$ ($200 \times 10.000$) chiếm 2 triệu phần tử. Tổng số phần tử cần lưu trữ giảm xuống còn khoảng 202 triệu, giúp tiết kiệm không gian lưu trữ xấp xỉ 50 lần so với dữ liệu thô.
| Dữ liệu thực nghiệm LSA |
Danh sách chi tiết trong đồ án |
| Tập tài liệu mẫu ($c_1 - c_5$: Giao diện người - máy; $m_1 - m_4$: Đồ thị toán học) |
$c_1$: Giao diện máy cho các ứng dụng máy tính Lab ABC với con người $c_2$: Nghiên cứu sự đánh giá của người sử dụng về thời gian hệ thống máy tính trả lời $c_3$: Hệ thống quản lý giao diện người dùng EPS $c_4$: Kiểm thử kỹ thuật xây dựng hệ thống và con người EPS $c_5$: Mối quan hệ của người sử dụng - thời gian trả lời thấy được độ sai lệch đo lường $m_1$: Sinh ra các cây ngẫu nhiên, nhị phân, không thứ bậc $m_2$: Đồ thị tác động qua lại của đường dẫn trong các cây $m_3$: Thứ bậc đồ thị IV: Chiều rộng của cây và hầu như được sắp thứ tự tốt $m_4$: Thứ bậc đồ thị: Sự nghiên cứu |
| 12 thuật ngữ khảo sát |
con người, giao diện, máy tính, người sử dụng, hệ thống, trả lời, thời gian, eps, nghiên cứu, cây, đồ thị, thứ bậc |
Khi kiểm thử truy vấn "Sự tương tác giữa con người với máy tính" (human computer interaction), nếu dùng tìm kiếm so khớp từ khóa thông thường, hệ thống chỉ trả về kết quả là $c_1, c_2, c_4$, bỏ sót hai tài liệu liên quan mật thiết về nội dung là $c_3$ và $c_5$. Thông qua phân rã LSA, các tài liệu $c_3$ và $c_5$ được kéo lại gần trong không gian khái niệm nhờ chia sẻ các khái niệm tiềm ẩn chung.
Phần cuối chương hệ thống hóa các công thức tính độ tương đồng văn bản:
- Khoảng cách Jaro: $d_j = \frac{1}{3} \left( \frac{m}{|s_1|} + \frac{m}{|s_2|} + \frac{m - t}{m} \right)$ với $m$ là số từ trùng lặp, $t$ là số bước chuyển vị.
- Mô hình tương phản Tversky: $S(A, B) = \alpha g(A \cap B) - \beta g(A - B) - \gamma g(B - A)$.
- Hệ số Jaccard: $J(A, B) = \frac{|A \cap B|}{|A \cup B|}$.
- Độ đo Cosine: Cosine của góc giữa hai vector đặc trưng $\vec{D}_i$ và $\vec{D}_j$.
- Khoảng cách khoảng cách Euclide và Manhattan: Quy đổi sang độ tương đồng qua công thức dạng $Sim = 1 - \frac{Dist}{1 + Dist}$.
Chương 3: Bài toán áp dụng
Chương 3 trình bày phần thực nghiệm kiểm chứng mô hình LSA trên môi trường tính toán khoa học. Tác giả lựa chọn ngôn ngữ lập trình R và môi trường RStudio làm nền tảng triển khai.
Nội dung thực nghiệm tập trung vào:
- Giới thiệu các đặc trưng xử lý ma trận và thống kê của ngôn ngữ R.
- Cài đặt và sử dụng gói thư viện chuyên dụng
lsa (Latent Semantic Analysis) trong R.
- Xây dựng mã kịch bản trong tập tin
lsa_plot.R sử dụng các lệnh của gói lsa để đọc tập dữ liệu, khởi tạo ma trận thuật ngữ - tài liệu và áp dụng phân tích SVD giảm chiều.
- Xuất kết quả kiểm tra thông qua lệnh
return, ghi nhận ma trận thuật ngữ - tài liệu gốc, ma trận giảm chiều không gian khái niệm và ma trận tính toán độ tương đồng giữa các tài liệu.
- Vẽ biểu đồ tương quan phân bố giữa các thuật ngữ và các tài liệu trên không gian tọa độ hai chiều rút gọn, minh chứng trực quan sự phân cụm rõ rệt giữa hai nhóm chủ đề (giao diện người - máy và lý thuyết đồ thị).
Kết quả và đóng góp
Về kết quả định lượng và thực nghiệm:
- Đo lường thực tế tốc độ xử lý tách từ: Hệ thống đọc và bóc tách tài liệu sách điện tử 200 trang mất khoảng 3 phút trong quá trình xử lý ngoại tuyến.
- Xây dựng thành công cơ sở dữ liệu từ điển tiếng Việt gồm hơn 99.000 từ và cụm từ, tối ưu hóa thành công cấu trúc truy xuất bằng mảng ASCII và
ArrayList nhóm theo âm tiết đầu tiên trong C#.
- Chuẩn bị danh mục hơn 300 từ dừng tiếng Anh phục vụ cho quá trình lọc dữ liệu.
- Chứng minh bằng toán học khả năng tối ưu hóa tài nguyên của SVD: Giảm kích thước lưu trữ ma trận từ mức xấp xỉ 10 tỷ giá trị xuống còn khoảng 202 triệu giá trị (giảm khoảng 50 lần) trên mô hình cơ sở dữ liệu giả định 1 triệu từ và 10.000 tài liệu với $k = 200$.
- Phân tích thực nghiệm thành công tập dữ liệu 12 thuật ngữ và 9 tài liệu kỹ thuật trên RStudio bằng thư viện
lsa, khắc phục tình trạng bỏ sót tài liệu liên quan ngữ nghĩa ($c_3, c_5$) mà phương pháp đối sánh từ khóa bề mặt mắc phải.
Về giải pháp đề xuất:
- Đề xuất giải thuật tách từ tiếng Việt dựa trên cơ chế so khớp từ điển, cắt tiếng bên trái kết hợp cấu trúc dữ liệu STACK.
- Đề xuất phương án tổ chức từ điển theo nhóm âm tiết đầu tiên nhằm giảm thiểu không gian duyệt và tăng tốc độ tra cứu từ trên bộ nhớ trong.
- Đề xuất quy trình ứng dụng LSA vào bài toán đối sánh văn bản nhằm phát hiện tài liệu tương đồng dựa trên không gian khái niệm, xử lý được các biến đổi ngữ nghĩa như thay thế từ đồng nghĩa hoặc xáo trộn cấu trúc câu.
Về đóng góp học thuật tự nêu:
- Đồ án đã tổng hợp có hệ thống các quan điểm ngôn ngữ học về cấu trúc câu tiếng Việt của các tác giả Nguyễn Tài Cẩn, Hồ Lê, Nguyễn Kim Thản, Diệp Quang Ban, làm sáng tỏ các đặc trưng hình thái học phục vụ xử lý ngôn ngữ tự nhiên.
- Đánh giá toàn diện ưu nhược điểm của các phương pháp tách từ hiện hành tại Việt Nam (Maximum Matching, TF-IDF, TBL, WFST kết hợp mạng Neural của Đinh Điền, IGATEC của Nguyễn Thanh Hùng).
- Làm chủ quy trình toán học của phân tích SVD và ứng dụng thành công gói công cụ mã nguồn mở
lsa trên ngôn ngữ R để minh chứng tính khả thi của đối sánh văn bản ngữ nghĩa.
Hạn chế và hướng nghiên cứu tiếp
Về mặt hạn chế:
- Giải thuật tách từ tiếng Việt dựa vào từ điển vẫn gặp sai sót trong các ngữ cảnh đa nghĩa phức tạp (chẳng hạn phân tách sai câu "Học sinh học sinh học").
- Chi phí thời gian cho khâu kiểm tra từ trong từ điển còn lớn khi số lượng từ vựng vượt quá 99.000 mục từ.
- Phần thực nghiệm LSA tại Chương 3 mới dừng lại ở việc kiểm chứng trên tập dữ liệu mẫu quy mô nhỏ (9 tài liệu, 12 thuật ngữ) thông qua thư viện có sẵn trên ngôn ngữ R, chưa tiến hành đánh giá thực nghiệm diện rộng trên kho ngữ liệu văn bản tiếng Việt quy mô lớn.
Về hướng nghiên cứu tiếp:
- Hoàn thiện giải thuật tách từ tiếng Việt nhằm khử triệt để sự nhập nhằng trong các trường hợp đồng âm, đồng tự hoặc ghép từ phức tạp.
- Tích hợp mô hình LSA vào một phần mềm hoàn chỉnh, cho phép tự động tiếp nhận đầu vào là văn bản tiếng Việt và thực hiện đối sánh tự động trên các kho dữ liệu đóng hoặc mở trên Internet.
Giá trị tham khảo
Đồ án có giá trị tham khảo hữu ích cho sinh viên, học viên ngành Công nghệ thông tin, Khoa học dữ liệu và Ngôn ngữ học tính toán khi nghiên cứu về các bài toán:
- Xử lý ngôn ngữ tự nhiên tiếng Việt: Các phần tổng quan lý thuyết ngữ pháp tiếng Việt (mục 1.2.1) và so sánh các giải thuật tách từ (mục 2.3) cung cấp bức tranh tổng thể về các thách thức hình thái học tiếng Việt.
- Thiết kế cấu trúc dữ liệu cho từ điển: Giải pháp tổ chức bảng từ điển hơn 99.000 từ bằng
ArrayList nhóm theo âm tiết đầu (Bảng 1 trong Chương 1) là kỹ thuật lưu trữ thực tế đáng tham khảo khi lập trình xử lý chuỗi trên C#.
- Nền tảng toán học của LSA và SVD: Các bước giải chi tiết phương trình đặc trưng tìm trị riêng, vector riêng và ma trận xấp xỉ $\hat{X}$ trong Chương 2 là tài liệu học tập trực quan cho học phần đại số tuyến tính ứng dụng và khai phá dữ liệu.
- Thực hành thống kê văn bản trên R: Quy trình cài đặt thư viện
lsa, tạo ma trận thuật ngữ - tài liệu và vẽ biểu đồ tương quan trong Chương 3 là mẫu thực hành cụ thể cho các đề tài phân tích dữ liệu văn bản bằng mã nguồn mở.
Câu hỏi thường gặp
1. Trong trường hợp nào thì giải thuật tách từ tiếng Việt của tác giả bị phân tách sai?
Giải thuật cắt tiếng bên trái dựa trên từ điển của tác giả xử lý tốt cụm từ "thuộc địa bàn" thành "thuộc | địa bàn", nhưng bị tách sai trong câu nhập nhằng "Học sinh học sinh học" thành "Học | sinh học | sinh học" thay vì "Học sinh | học | sinh học".
2. Tác giả tối ưu hóa cấu trúc lưu trữ của bộ từ điển hơn 99.000 từ tiếng Việt như thế nào để giảm thời gian tìm kiếm?
Tác giả tổ chức từ điển trên bộ nhớ trong dưới dạng một ArrayList, trong đó mỗi phần tử là một mảng chuỗi (string[]) chứa các từ có chung âm tiết đầu tiên (ví dụ nhóm âm tiết "ả", "ái", "an", "anh", "ăn"...). Khi đọc từ, hệ thống chỉ cần tách âm tiết đầu để định vị nhóm mảng tương ứng trước khi so khớp chi tiết, giúp tăng tốc độ tìm kiếm so với việc duyệt toàn bộ mảng tuần tự.
3. Phương pháp LSA giải quyết nhược điểm gì của tìm kiếm từ khóa truyền thống trong ví dụ 9 tài liệu kỹ thuật?
Trong ví dụ ở Chương 2, với câu truy vấn "human computer interaction", tìm kiếm từ khóa truyền thống chỉ trả về các tài liệu $c_1, c_2, c_4$, bỏ sót $c_3$ (Hệ thống quản lý giao diện người dùng EPS) và $c_5$ (Quan hệ người dùng - thời gian trả lời...) vì hai tài liệu này không chứa đúng các từ khóa truy vấn. LSA ánh xạ các tài liệu vào không gian khái niệm chung, giúp nhận diện được $c_3$ và $c_5$ có cùng chủ đề tương tác người - máy.
4. Kỹ thuật SVD giúp tối ưu dung lượng lưu trữ ma trận như thế nào theo tính toán lý thuyết trong đồ án?
Với một tập dữ liệu giả định gồm 1.000.000 thuật ngữ và 10.000 tài liệu, ma trận thô đòi hỏi lưu trữ khoảng 10 tỷ phần tử. Khi áp dụng SVD giảm xuống $k = 200$ chiều, tổng số phần tử của ba ma trận thành phần chỉ còn khoảng 202 triệu, giúp giảm không gian lưu trữ xấp xỉ 50 lần.
5. Công cụ và ngôn ngữ nào được tác giả sử dụng trong phần thực nghiệm ở Chương 3?
Tác giả sử dụng ngôn ngữ lập trình thống kê R và môi trường RStudio, kết hợp gói thư viện mã nguồn mở lsa để lập trình kịch bản (lsa_plot.R), tạo ma trận thuật ngữ - tài liệu và vẽ biểu đồ tương quan không gian ngữ nghĩa.
Kết luận
Đồ án tốt nghiệp của tác giả Nguyễn Minh Thành đã giải quyết bài toán đối sánh văn bản thông qua việc tiếp cận tầng ngữ nghĩa tiềm ẩn bằng kỹ thuật LSA, khắc phục nhược điểm phụ thuộc vào câu chữ nguyên văn của các phương pháp so khớp chuỗi truyền thống. Tác giả đã hệ thống hóa các lý thuyết ngữ pháp tiếng Việt, xây dựng giải thuật tách từ dựa trên bộ từ điển hơn 99.000 từ, đồng thời làm rõ cơ sở toán học của kỹ thuật phân tích giá trị kỳ dị (SVD) trong việc giảm chiều dữ liệu và tối ưu hóa không gian biểu diễn khái niệm. Mặc dù khâu thực nghiệm còn mang tính mô phỏng trên tập ngữ liệu mẫu nhỏ với công cụ R, đồ án đã chứng minh rõ tính khả thi của mô hình và cung cấp tài liệu tham khảo có giá trị về mặt thuật toán và phương pháp luận cho lĩnh vực xử lý ngôn ngữ tự nhiên.