Bạn,
Tôi có 21 lời bài nhạc Lê Uyên Phương trong hai tập ca khúc của Ông. Tôi thử coi Claude AI Sonnet (cái yếu nhất và cũng rẻ tiền nhất) có thể tìm ra các từ kép được hay không, thì nó giải bài toán này trong 1/2 giờ!!!
Tôi gửi bạn kết quả, cũng như cách nó tạo ra (process).
Mỗi khi làm một cái gì, tôi hay biểu nó làm như vậy: mày ghi xuống cho tao những gì mày làm. để tao còn học hỏi theo! Thế là nó nghe lời răm rắp. Mời bạn xem cả hai bài, có nhiều chi tiết chắc sẽ làm bạn thích thú với ca từ Lê Uyên Phương.
Thân ái,
Học Trò
(7/27/2026)
Ghi chú: từ đây tới cuối bài là do AI viết, kể cả nghĩa của từ láy (cột Nghĩa (từ điển))!!!
Ý tưởng: nhiều từ tiếng Việt chỉ có nghĩa khi đi thành cặp hai âm tiết — tách riêng từng chữ thì vô nghĩa hoặc nghĩa khác hẳn. Ví dụ do chính người yêu cầu khảo sát nêu ra: "vòng tay", "dung nhan", "huy hoàng". Bài này dùng kho ngữ liệu 21/21 bài Lê Uyên Phương của hai tập Yêu Nhau Khi Còn Thơ và Khi Loài Thú Xa Nhau (bài gốc dùng 20/21 bài thống kê ở _LeUyenPhuong_WordUsage_Analysis.md — file đó chưa cập nhật đợt bổ sung này, xem ghi chú cuối mục 0), đếm cặp âm tiết liền kề (bigram) thay vì từng âm tiết đơn lẻ, để tìm ra những "từ đôi" nào lặp lại đủ thường xuyên và đủ "dính" với nhau (so với xác suất ngẫu nhiên) để được coi là một từ ghép/từ láy thật sự, chứ không phải hai chữ tình cờ đứng cạnh nhau.
Cách đo độ "dính" gọi là PMI (pointwise mutual information — thông tin tương hỗ theo điểm); cách tính cụ thể, với đúng hai ví dụ "vòng tay" và "dung nhan"/"huy hoàng" người yêu cầu đưa ra, nằm ở file _LeUyenPhuong_TuGhep_Process.md đi kèm — file đó cũng ghi lại toàn bộ đợt tính lại 2026-07-27 (bổ sung bài 21 + sửa lỗi đếm thiếu phát hiện được khi làm việc này). Ở đây chỉ trình bày kết quả dưới dạng bảng đếm — không dựng lại nguyên văn câu hát nào.
0. Hai tập nhạc và 21 bài
Tập 1 — Yêu Nhau Khi Còn Thơ (1960–1967), 10 bài: Buồn Đến Bao Giờ · Kỷ Niệm Trong Chiều · Nỗi Buồn Dâng Hiến · Một Ngày Vui Mùa Đông · Đêm Chợ Phiên Mùa Đông · Còn Nắng Trên Đồi · Bài Ca Hạnh Ngộ · Hết Rồi Những Ngày Vui · Bên Hồ Than Thở · Một Dạ Hội Buồn.
Tập 2 — Khi Loài Thú Xa Nhau (1967–1969), 12 bài: Vũng Lầy Của Chúng Ta · Chiều Phi Trường · Không Nhìn Nhau Lần Cuối · Cho Lần Cuối · Hãy Ngồi Xuống Đây · Tình Khúc Cho Em · Dạ Khúc Cho Tình Nhân · Buồn Đến Bao Giờ (bản in lại y hệt bài #1 tập 1) · Lời Gọi Chân Mây · Đưa Người Tuyệt Vọng · Ngồi Lại Trên Đồi · Đá Xanh.
Cộng hai tập là 22 lượt tên bài; vì "Buồn Đến Bao Giờ" ở tập 2 là bản in lại y hệt bài tập 1 (không phải bài khác), số bài khác nhau thực sự là 21. Kho ngữ liệu dùng cho các bảng dưới đây nay gồm đủ 21/21 bài — "Tình Khúc Cho Em" (bản TinhKhucChoEm_KyAm.md, 173 âm tiết lời) đã được bổ sung vào đợt tính lại này.
Hai chỉnh sửa so với bản gốc (2026-07-27):
- Bổ sung bài 21 — "Tình Khúc Cho Em". Đóng góp riêng: 173 âm tiết, 172 bigram nội bộ. Cụm nổi bật nhất bài này là "nồng nàn" (4 lần, chỉ trong bài này — xem mục 2 và mục 6).
- Sửa lỗi đếm thiếu ở bài "Lời Gọi Chân Mây". Khi dựng lại corpus để cộng thêm bài 21, đối chiếu số âm tiết/bài với
_LeUyenPhuong_WordUsage_Analysis.mdcho thấy bài này trước đây chỉ được đếm 70/181 âm tiết thật — bản gốc chỉ bắt được cột "Khổ 1", bỏ sót cột "Khổ 2 (cùng nhạc)" (63 âm tiết) và đoạn hội tụ "Lời (chung 2 khổ)" cuối bài (48 âm tiết), do file này có cấu trúc bảng đặc biệt (2 khổ song song rồi hội tụ thành 1 dòng — xem mục cấu trúc trong chính file ký âm). Đã tính lại đầy đủ 181 âm tiết cho bài này. Chi tiết cách phát hiện và sửa nằm ở file Process.
Vì cả hai thay đổi trên làm tăng mẫu số (tổng âm tiết/bigram toàn kho), mọi con số PMI trong bài này (kể cả hai ví dụ gốc "vòng tay"/"dung nhan"/"huy hoàng") đều xê dịch nhẹ so với bản trước — xem mục 5.
1. Tổng quan
- Tổng số âm tiết lời ca đã trích: 3.952 (trước: 3.661)
- Tổng số cặp âm tiết liền kề (bigram) hình thành: 3.923 (trước: 3.636)
- Số cặp khác nhau: 2.878 (trước: 2.712), trong đó phần lớn (khoảng 80%) chỉ xuất hiện đúng 1 lần — dấu hiệu cho thấy Lê Uyên Phương không lặp lại cụm từ máy móc, trừ những cụm mang chức năng "từ đôi cố định" thật sự, vốn sẽ nổi lên rõ trong bảng PMI dưới đây.
2. Các "từ đôi" nổi bật nhất theo PMI (đã lọc còn 58 cặp, xuất hiện ≥2 lần)
Bảng dưới xếp theo độ "dính" (PMI) giảm dần, chỉ giữ những cặp thực sự là từ láy hoặc từ ghép (đã loại các cụm ngữ pháp thuần túy như "em ơi", "một lần", "có ai", "bao nhiêu", các cụm là điệp khúc/tên bài/hình ảnh riêng của một bài lặp lại — như "ngồi xuống đây", "viên đá", "cầm chắc", "dang đôi", "chia phôi", "thềm ga", "phố trưa" — và các cụm hô ngữ/vocalise như "ô hay", "la la"). Bảng này dài hơn bản trước (40→58 cặp) — không phải vì tiêu chuẩn lọc nới lỏng, mà vì kho ngữ liệu đã lớn hơn thật (thêm bài 21 + sửa lỗi đếm thiếu ở "Lời Gọi Chân Mây", xem mục 0), nên có thêm bằng chứng thống kê cho nhiều cặp mới. Cột "Nghĩa" là định nghĩa từ điển thông thường, không trích từ bài hát nào. Các dòng đánh dấu (mới) là những cặp không có trong bảng gốc.
| Từ đôi | Loại | Nghĩa (từ điển) | Số lần | PMI |
|---|---|---|---|---|
| sum vầy | Hán-Nôm ghép | họp mặt đông đủ | 2 | 10.96 |
| kinh kỳ | Hán-Việt | kinh đô, chốn phồn hoa | 2 | 10.96 |
| bối rối | từ láy | lúng túng, không biết xử trí | 2 | 10.96 |
| tê tái | từ láy | đau nhói, tê buốt trong lòng | 2 | 10.96 |
| vuốt ve | từ láy | vuốt nhẹ, âu yếm | 2 | 10.96 |
| mênh mông | từ láy | rộng lớn không bờ bến | 2 | 10.96 |
| rộn ràng | từ láy | náo nức, tưng bừng | 2 | 10.96 |
| đậm đà (mới) | từ láy | sâu sắc, nồng nàn | 2 | 10.96 |
| vũng lầy | từ ghép thuần Việt | chỗ đất sụt, bùn lầy | 2 | 10.96 |
| ngao ngán | từ láy | chán nản, ngán ngẩm | 2 | 10.96 |
| kỷ niệm | Hán-Việt | điều còn nhớ lại từ quá khứ | 3 | 10.37 |
| ê chề | từ láy | nhục nhã, mỏi mệt ê ẩm | 3 | 10.37 |
| đơn côi | Hán-Việt/bán Hán | lẻ loi, không nơi nương tựa | 2 | 10.37 |
| đắm đuối | từ láy | say mê hết mình | 2 | 10.37 |
| lẻ loi (mới) | từ láy | cô đơn, một mình | 2 | 10.37 |
| đắng cay | từ ghép thuần Việt | khổ sở, chua xót | 2 | 10.37 |
| ngọt ngào | từ láy | dịu dàng, êm ái | 2 | 10.37 |
| cô liêu | Hán-Việt | vắng vẻ, hiu quạnh | 2 | 10.37 |
| ngỡ ngàng | từ láy | bỡ ngỡ, sững sờ | 3 | 9.96 |
| vấn vương | từ láy | vướng bận, khó dứt | 2 | 9.96 |
| lạnh lùng | từ láy | thờ ơ, lạnh nhạt | 2 | 9.96 |
| dương trần | Hán-Việt | cõi trần gian, cõi sống | 2 | 9.79 |
| tương lai | Hán-Việt | thời gian sắp tới | 4 | 9.64 |
| lo âu | từ ghép Hán-Nôm | lo lắng, bất an | 3 | 9.64 |
| giã từ | từ ghép Hán-Nôm | chia tay, từ biệt | 2 | 9.64 |
| vắng tanh | từ láy mức độ | vắng hoàn toàn | 3 | 9.37 |
| rã rời | từ láy | mệt mỏi rã rượi | 3 | 9.37 |
| thủy chung | Hán-Việt | trước sau như một | 2 | 9.37 |
| phôi pha | từ láy | phai nhạt dần | 2 | 9.37 |
| điên cuồng | từ ghép Nôm-Hán | mất lý trí, quá độ | 2 | 9.37 |
| da thịt | từ ghép thuần Việt | thân thể con người | 2 | 9.37 |
| nghèo nàn (mới) | từ láy | thiếu thốn, đơn điệu | 2 | 9.37 |
| mịt mờ | từ láy | mờ tối, không rõ | 2 | 9.37 |
| thời gian | Hán-Việt | khoảng thời gian trôi qua | 7 | 9.15 |
| vời vợi | từ láy | xa xăm, cao vợi | 2 | 9.15 |
| trái tim (mới) | từ ghép thuần Việt | quả tim, biểu tượng tình cảm | 2 | 9.15 |
| mối duyên (mới) | từ ghép Hán-Nôm | duyên phận, mối tình | 2 | 9.05 |
| niềm tin | từ ghép | sự tin tưởng | 3 | 8.90 |
| thì thầm | từ láy | nói nhỏ, rỉ tai | 2 | 8.79 |
| gót chân | từ ghép thuần Việt | phần sau bàn chân | 2 | 8.79 |
| thơ ngây | từ ghép thuần Việt | ngây thơ, trong trắng | 5 | 8.70 |
| nụ cười | từ ghép thuần Việt | hình ảnh miệng cười | 4 | 8.64 |
| giọt nước | từ ghép thuần Việt | đơn vị nhỏ chất lỏng | 2 | 8.64 |
| âm thầm | từ ghép Hán-Nôm | lặng lẽ, không phô bày | 5 | 8.53 |
| vai gầy | từ ghép thuần Việt | vai gầy guộc | 2 | 8.37 |
| đê mê | từ láy/Hán-Nôm | say sưa, ngất ngây | 2 | 8.37 |
| mong manh (mới) | từ láy | yếu ớt, dễ vỡ | 2 | 8.26 |
| chia lìa (mới) | từ ghép Hán-Nôm đồng nghĩa | chia cắt, xa cách | 3 | 8.22 |
| nồng nàn (mới — từ bài 21) | từ láy | đậm đà, tha thiết | 4 | 8.20 |
| tháng năm (mới) | từ ghép thuần Việt | năm tháng, thời gian | 2 | 8.15 |
| mưa bão (mới) | từ ghép thuần Việt | mưa to gió lớn | 2 | 8.15 |
| thanh xuân (mới) | Hán-Việt | tuổi trẻ | 2 | 8.15 |
| dòng nước (mới) | từ ghép thuần Việt | dòng chảy của nước | 3 | 7.83 |
| ngời sáng (mới) | từ ghép thuần Việt | sáng rực rỡ | 2 | 7.83 |
| giấc mơ | từ ghép thuần Việt | sự mơ mộng lúc ngủ | 5 | 7.79 |
| dài lâu (mới) | từ ghép thuần Việt | lâu dài, bền vững | 2 | 7.79 |
| khung trời (mới) | từ ghép thuần Việt | bầu trời, không gian | 3 | 7.71 |
| thiết tha | từ láy | tha thiết, nồng nhiệt | 11 | 7.70 |
Vài cặp lệch khỏi mẫu chuẩn, cần dò lại (†): ngón suông, lai mịt, với trái, sô có, đầu phận, dài phút xuất hiện trong dữ liệu thô với PMI cao nhưng nhiều khả năng là mảnh vỡ do bảng ký âm ngắt câu giữa hai ô (ví dụ "lai" cuối ô này + "mịt" đầu ô sau, vốn thuộc hai cụm khác nhau như "tương lai" và "mịt mờ" bị nối nhầm) chứ không phải từ ghép thật. Đợt này phát hiện thêm một trường hợp tương tự: "ù ù" (Nỗi Buồn Dâng Hiến, "…mưa nắng sớm chiều ù ù…") — chưa rõ đây là láy âm thanh (kiểu vần vè) hay chỉ là cách ngân/luyến giọng ghi lại thành hai âm "ù", nên cũng xếp vào diện cần dò lại thay vì đưa vào bảng chính. Riêng cụm "la la"/"la là"/"là la" (Bên Hồ Than Thở, PMI cao nhưng đều bị loại khỏi bảng) là vocalise — hát nốt không lời kiểu "la la…" — không phải từ vựng, nên xếp khác hẳn diện "cần dò lại": đây là điều chắc chắn, không phải điều còn nghi ngờ.
3. Những "từ đôi" lặp lại nhiều nhất bất kể PMI (tần suất thô, ≥5 lần)
Nhóm này cho thấy những cụm từ ghép/láy Lê Uyên Phương dùng đi dùng lại xuyên suốt 21 bài — tức không chỉ là từ ghép có thật, mà còn là từ vựng ruột của ông:
| Từ đôi | Loại | Số lần |
|---|---|---|
| thiết tha | từ láy | 11 |
| xót xa | từ láy | 9 |
| mãi mãi | từ láy toàn phần | 7 |
| bàn tay | từ ghép thuần Việt | 7 |
| thời gian | Hán-Việt | 7 |
| thương đau | từ ghép đồng nghĩa | 7 |
| ái ân | Hán-Việt | 6 |
| mùa xuân | từ ghép thuần Việt | 6 |
| nước mắt | từ ghép thuần Việt | 6 |
| mong chờ | từ ghép đồng nghĩa | 5 |
| giấc mơ | từ ghép thuần Việt | 5 |
| thơ ngây | từ ghép thuần Việt | 5 |
| âm thầm | từ ghép Hán-Nôm | 5 |
| đôi tay | bán ghép (số từ + DT) | 5 |
| đớn đau | gần-láy | 5 |
| yêu thương (mới) | từ láy/ghép đồng nghĩa | 5 |
4. "Từ đôi" đặc trưng riêng theo từng bài
Cũng dùng cách tính tỷ trọng-so-với-nền như bài word-usage trước, nhưng áp cho cặp âm tiết: mỗi bài, những cặp nào có tỷ trọng trong bài cao vượt hẳn mức nền toàn tập (xuất hiện ≥2 lần trong bài đó). Cột này hiện nhiều cụm là cụm ngữ pháp/điệp khúc riêng của bài (không phải từ ghép cố định trong từ điển) — điều đó tự nó là một phát hiện: Lê Uyên Phương hay xây bài trên một cụm-khóa lặp lại nhiều lần (kiểu điệp từ, đã thấy ở "Hãy Ngồi Xuống Đây" hay "Đá Xanh" khi phân tích ký âm), chứ không chỉ nghiêng về từ ghép có sẵn trong từ điển. Hai dòng cuối bảng là bài mới/bài đã sửa của đợt này.
| Bài hát | Cặp âm tiết đặc trưng (số lần) |
|---|---|
| Bài Ca Hạnh Ngộ | như khi (2), một khi (2), khi trao (2), rồi như (4) |
| Bên Hồ Than Thở | sum vầy (2), nơi nầy (3), yêu trong (3) |
| Buồn Đến Bao Giờ | đến bao (4), thương đến (2), buồn ơi (2) |
| Chiều Phi Trường | dương trần (2), ngày hôm (2), xin hãy (2) |
| Cho Lần Cuối | cầm chắc (2), không còn (2), thấy nhau (2) |
| Còn Nắng Trên Đồi | chiều nào (6), chiều nầy (6), dang đôi (4), tay ôm (4) |
| Dạ Khúc Cho Tình Nhân | sao trời (2), mưa bão (2), yêu nhau (2) |
| Đá Xanh | viên đá (5), như viên (4), sầu sầu (3) |
| Đêm Chợ Phiên Mùa Đông | phôi pha (2), trong bóng (2), bóng đêm (2) |
| Đưa Người Tuyệt Vọng | áo trắng (2), tìm đâu (2), cuộc tình (2) |
| Hãy Ngồi Xuống Đây | hãy ngồi (13), ngồi xuống (13), xuống đây (13) |
| Hết Rồi Những Ngày Vui | màu tang (2), mây chiều (3), em ơi (3) |
| Không Nhìn Nhau Lần Cuối | thôi đành (4), xa nhau (3), đành giã (2), giã từ (2) |
| Kỷ Niệm Trong Chiều | chiều chiều (2), xa vời (2) |
| Lời Gọi Chân Mây (đã sửa — nay tính đủ khổ 1+2) | xin em (6), xin anh (4), yêu đương (3), em ơi / anh ơi (điệp mở mỗi câu) |
| Một Dạ Hồi Buồn | hai đứa (2), áo xanh (2), đèn xanh (2) |
| Một Ngày Vui Mùa Đông | ô hay (4), sao mà (4), thềm ga (2) |
| Ngồi Lại Trên Đồi | vẫn còn (4), xa rồi (4), còn như (2) |
| Nỗi Buồn Dâng Hiến | buồn vì (4), tương lai (4), xưa ấy (2) |
| Tình Khúc Cho Em (mới) | nồng nàn (4), thương em (4), yêu em (4) |
| Vũng Lầy Của Chúng Ta | còn vùi (4), xuống phố (2), phố trưa (2), cơn say (2) |
5. Hai ví dụ đúng như người yêu cầu nêu ra
- "vòng tay" — xuất hiện 2 lần trong toàn kho, cả hai lần "vòng" đều đi liền "tay" (PMI = 7,37, trước là 7,26 — xê dịch nhẹ vì mẫu số toàn kho tăng, không phải vì tần suất đổi) — dù "tay" là một trong những từ phổ biến nhất toàn tập (24 lần, không đổi — "vòng tay" không xuất hiện ở bài mới hay ở phần vừa sửa của "Lời Gọi Chân Mây"), "vòng" chỉ xuất hiện đúng 2 lần và luôn ở dạng "vòng tay" — một minh chứng rõ cho từ ghép thuần Việt (từng chữ có nghĩa riêng nhưng ghép lại mang nghĩa cụ thể hơn: "cái ôm bằng hai tay").
- "dung nhan" và "huy hoàng" — mỗi cặp chỉ xuất hiện đúng 1 lần trong toàn kho 21 bài (PMI dung nhan ≈ 11,96, huy hoàng ≈ 10,96 — cả hai vẫn rất cao dù mẫu số tăng, vì "dung", "nhan", "huy" đều vẫn chỉ xuất hiện đúng 1 lần mỗi âm mỗi tiếng trong toàn kho 21 bài). Cả hai là từ ghép Hán-Việt cổ điển: từng âm tiết riêng ("dung", "nhan", "huy", "hoàng") gần như không dùng độc lập trong tiếng Việt hiện đại — đúng loại "từ đôi vô nghĩa khi tách rời" mà câu hỏi ban đầu nêu ra.
- Riêng "hoàng" thì không còn đúng tuyệt đối nữa kể từ khi thêm bài 21: "hoàng" nay xuất hiện 2 lần trong toàn kho — 1 lần trong "huy hoàng" (Buồn Đến Bao Giờ), 1 lần trong "bàng hoàng" (Tình Khúc Cho Em: "…dù tháng năm buồn vui bàng hoàng…", một từ láy khác hẳn nghĩa, "sững sờ, choáng váng"). Đây là minh hoạ đẹp cho giới hạn thống kê đã nêu ở mục 6 file Process cũ: với mẫu càng nhỏ, một từ càng dễ trông như "chỉ đi kèm một đối tác duy nhất" — thêm dữ liệu (dù chỉ 1 bài) đã đủ để phá vỡ điều đó cho "hoàng", dù chưa phá vỡ cho "dung"/"nhan"/"huy". Chi tiết cách tính PMI cho các cặp này (kể cả khi tần suất chỉ bằng 1) nằm trong file Process.
6. Nhận xét
- Trong 58 "từ đôi" ở bảng mục 2, khoảng 25 cặp (43%) là từ láy (bối rối, ngọt ngào, mênh mông, rộn ràng, đắm đuối, lạnh lùng, rã rời, mịt mờ, thì thầm, thiết tha, mong manh, nồng nàn, nghèo nàn, lẻ loi…), khoảng 16 cặp (28%) là Hán-Việt hoặc Hán-Nôm ghép (kỷ niệm, tương lai, thời gian, thủy chung, âm thầm, cô liêu, dương trần, mối duyên, chia lìa, thanh xuân…), và 17 cặp (29%) là từ ghép thuần Việt hai âm tiết đều có nghĩa riêng (da thịt, vũng lầy, gót chân, giọt nước, trái tim, dòng nước, khung trời, tháng năm, mưa bão, dài lâu, ngời sáng…). So với bản trước (54% / 38% / 8%), tỷ trọng từ láy giảm và tỷ trọng từ ghép thuần Việt tăng rõ — không phải vì Lê Uyên Phương "đổi phong cách" (kho ngữ liệu chỉ đổi thêm 1/21 bài), mà vì mẫu lớn hơn cho PMI đủ cao để lộ diện nhiều từ ghép thuần Việt tần suất thấp hơn (2 lần) mà mẫu 20 bài trước chưa đủ "chạm ngưỡng" xếp hạng. Đây là một minh hoạ khác cho giới hạn đã nêu ở mục 5: tỷ lệ phần trăm ở bảng loại từ nhạy với cỡ mẫu, nên nên đọc là "bức tranh hiện tại của kho dữ liệu đang có", không phải hằng số phong cách tuyệt đối của tác giả.
- Mảng Hán-Việt (kỷ niệm, tương lai, thời gian, thủy chung, cô liêu, dương trần, ái ân…) cho thấy Lê Uyên Phương pha trộn khá đều giữa khẩu ngữ đời thường và từ vựng "văn chương/trí thức" — phù hợp với hồ sơ một nhạc sĩ xuất thân giáo sư đại học, không thuần là nhạc sĩ viết theo bản năng dân gian.
- Mục 4 (từ đôi đặc trưng riêng bài) cho thấy phần lớn "từ đôi" nổi bật nhất trong một bài cụ thể không phải từ ghép có sẵn trong từ điển mà là cụm-khóa do chính bài đó tạo ra bằng điệp lại (chiều nào/chiều nầy ở "Còn Nắng Trên Đồi", hãy ngồi/ngồi xuống/xuống đây ở bài cùng tên, xin em/xin anh ở "Lời Gọi Chân Mây") — một kỹ thuật tu từ khác hẳn từ ghép có sẵn, đáng để phân biệt khi phân tích văn bản Lê Uyên Phương: từ ghép có sẵn (kho từ vựng chung của tiếng Việt) và điệp cụm tự tạo (dấu ấn tác giả) là hai hiện tượng khác nhau nhưng dễ gộp nhầm nếu chỉ nhìn số liệu thô.
- "Tình Khúc Cho Em" đóng góp một quan sát riêng đáng chú ý: cụm "nồng nàn" xuất hiện 4 lần chỉ trong một bài — cao hơn hẳn mức "đặc trưng riêng bài" (mục 4) thông thường (2–4 lần) — vì bài này xây trên cấu trúc đối xứng "Xin cho yêu em nồng nàn" (mở đoạn 2) → "Cho tôi yêu em nồng nàn" (kết bài), mỗi câu tự lặp lại 2 lần liên tiếp (đã ghi trong ký âm). Đây là một trường hợp mà điệp-cụm-tự-tạo (mục 4) và từ-ghép-có-sẵn-trong-từ-điển (mục 2) trùng nhau: "nồng nàn" vừa là một từ láy thật trong tiếng Việt, vừa tình cờ là chính cụm-khóa mà bài này lặp lại nhiều nhất — khác với "hãy ngồi xuống đây" hay "viên đá", vốn là cụm/danh từ riêng của bài chứ không phải từ láy/ghép tự thân.
Lê Uyên Phương — "Từ đôi": Ghi chép quy trình (Process)
1. Yêu cầu gốc
Sau bài thống kê từ đơn-âm-tiết (_LeUyenPhuong_WordUsage_Analysis.md), người yêu cầu muốn một cách nhìn khác: tìm những cặp hai âm tiết trong lời ca chỉ có nghĩa khi đứng chung, vô nghĩa (hoặc nghĩa khác hẳn) khi tách riêng — nêu ví dụ "vòng tay", "dung nhan", "huy hoàng". Yêu cầu gồm 4 file: bài phân tích kết quả + bài ghi lại cách làm (chính file này), mỗi bài có bản .md và .html.
2. Vì sao đếm từ đơn không đủ
Bài word-usage trước đếm từng âm tiết rời, nên "vòng" và "tay" chỉ hiện ra như hai dòng riêng trong bảng tần suất — không có gì cho biết chúng thường đứng cạnh nhau. Muốn bắt được hiện tượng "từ đôi", phải đếm cặp âm tiết liền kề theo đúng thứ tự xuất hiện trong câu hát (bigram), rồi đo xem cặp đó có "dính" với nhau hơn mức ngẫu nhiên hay không.
3. Bước 1 — dựng "stream" token có thứ tự cho từng bài
Khác với bài trước (chỉ cần gộp mọi ô "Lời" thành một túi từ không quan tâm thứ tự), bigram bắt buộc phải giữ đúng thứ tự — và phải cẩn thận không nối bigram giữa hai đoạn không liền nhau về nghĩa.
Phát hiện quan trọng khi rà lại cấu trúc bảng: hầu hết file *_KyAm.md có một cột duy nhất tên "Lời" (một dòng lời ca nối tiếp qua các ô), nhưng ít nhất một file (DaXanh_KyAm.md) có cấu trúc khác — ba cột song song "Khổ 1" / "Khổ 2" / "Khổ 3" trong cùng một bảng, tức ba lời khác nhau hát trên cùng một khung nhạc (biến tấu lời qua ba lần lặp giai điệu), không phải một lời nối tiếp. Nếu gộp cả ba cột thành một chuỗi theo thứ tự đọc trái-sang-phải từng hàng, sẽ tạo ra các bigram giả (chữ cuối "Khổ 1" nối bừa với chữ đầu "Khổ 2") — đây chính là loại lỗi mà mục 5 bài Analysis gắn dấu † nghi ngờ.
Cách xử lý: khi đọc header của mỗi bảng, quét cột nào tên "Lời" (gộp chung thành một stream tên loi, nối tiếp qua các bảng kế nhau trong cùng file — vì đó là lời ca thật sự nối trang) và cột nào khớp mẫu "Khổ N" (mỗi số N giữ một stream riêng: kho1, kho2, kho3…). Bigram chỉ được tạo trong nội bộ một stream, không bao giờ bắc cầu giữa kho1 và kho2, v.v.
4. Bước 2 — tạo bigram
Với mỗi stream (danh sách âm tiết theo đúng thứ tự), bigram là mọi cặp (token[i], token[i+1]). Làm việc này cho cả 21 bài rồi gộp lại toàn kho (số liệu dưới đây là bản đã cập nhật 2026-07-27 — xem mục 7 để biết vì sao khác bản gốc):
- Tổng âm tiết (unigram): 3.952 (bản gốc, 20 bài, thiếu sót: 3.661)
- Tổng cặp liền kề (bigram): 3.923 (= tổng âm tiết trừ đi số "đường nối bị cắt" ở ranh giới các stream — mỗi stream có n âm tiết thì chỉ cho n−1 bigram, nên tổng bigram luôn nhỏ hơn tổng unigram một chút)
- Số cặp khác nhau: 2.878 (bản gốc: 2.712)
5. Bước 3 — công thức PMI, tính tay hai ví dụ mẫu
PMI (pointwise mutual information) đo độ "dính" giữa hai từ so với xác suất chúng đứng cạnh nhau nếu hoàn toàn ngẫu nhiên, độc lập với nhau:
``` PMI(w1, w2) = log2( P(w1, w2) / ( P(w1) × P(w2) ) )
trong đó: P(w1, w2) = số lần cặp (w1,w2) xuất hiện liền kề / tổng số bigram P(w1) = số lần w1 xuất hiện / tổng số unigram P(w2) = số lần w2 xuất hiện / tổng số unigram ```
PMI = 0 nghĩa là hai từ hoàn toàn độc lập (đứng cạnh nhau đúng bằng mức ngẫu nhiên dự đoán); PMI càng dương, hai từ càng "cố ý" đi cùng nhau hơn mức ngẫu nhiên — dấu hiệu của một từ ghép/từ láy thật sự.
Ví dụ 1 — "vòng tay" (đúng ví dụ người yêu cầu nêu; số liệu bản cập nhật 2026-07-27, 21 bài):
- Cặp "vòng tay" xuất hiện 2 lần; "vòng" xuất hiện tổng cộng 2 lần trong toàn kho (nghĩa là 100% số lần "vòng" xuất hiện, nó luôn đi cùng "tay"); "tay" xuất hiện 24 lần (không đổi so với bản gốc — "tay" không xuất hiện ở bài 21 hay ở phần vừa sửa của "Lời Gọi Chân Mây").
- P(vòng,tay) = 2/3923 = 0,000510
- P(vòng) = 2/3952 = 0,000506 · P(tay) = 24/3952 = 0,006073
- P(vòng)×P(tay) = 0,00000307
- tỉ số = 0,000510 / 0,00000307 ≈ 165,9
- PMI = log2(165,9) ≈ 7,37 (bản gốc, 20 bài: 7,26 — xê dịch nhẹ chỉ vì mẫu số toàn kho tăng, tần suất "vòng"/"tay"/"vòng tay" không đổi)
Ví dụ 2 — "dung nhan" và "huy hoàng" (hai ví dụ Hán-Việt người yêu cầu nêu thêm): cả hai cặp chỉ xuất hiện đúng 1 lần trong toàn kho. "dung", "nhan", "huy" vẫn mỗi âm chỉ xuất hiện đúng 1 lần trong 21 bài — nhưng "hoàng" thì không còn đúng như vậy nữa: bài 21 ("Tình Khúc Cho Em") có thêm "bàng hoàng" ("…dù tháng năm buồn vui bàng hoàng…"), nên "hoàng" nay xuất hiện 2 lần toàn kho (1 trong "huy hoàng", 1 trong "bàng hoàng" — hai từ khác nghĩa hoàn toàn). Tính lại:
- P(dung,nhan) = 1/3923 = 0,000255 · P(dung) = P(nhan) = 1/3952 = 0,000253 → P(dung)×P(nhan) = 0,0000000640 → tỉ số ≈ 3.982 → PMI = log2(3.982) ≈ 11,96 (bản gốc: 11,85)
- P(huy,hoàng) = 1/3923 = 0,000255 · P(huy) = 1/3952 = 0,000253 · P(hoàng) = 2/3952 = 0,000506 → P(huy)×P(hoàng) = 0,000000128 → tỉ số ≈ 1.991 → PMI = log2(1.991) ≈ 10,96 (bản gốc: 11,85 — giảm rõ hơn "dung nhan" vì mẫu số P(hoàng) tăng gấp đôi trong khi tần suất cặp không đổi)
PMI của hai cặp này vẫn cao hơn hẳn "vòng tay" — nhưng đó là vì mẫu quá nhỏ (chỉ 1 lần quan sát): PMI có xu hướng "thổi phồng" các cặp hiếm, và ví dụ "huy hoàng"/"hoàng" ở trên cho thấy rõ hệ quả thực tế của điều đó — chỉ cần thêm 1 bài vào kho ngữ liệu là đủ để giảm PMI của "huy hoàng" gần 1 điểm, vì giả định ngầm "hoàng chỉ từng đi với huy" không còn đúng 100% nữa. Vì vậy bảng xếp hạng chính ở bài Analysis (mục 2–3) chỉ giữ những cặp xuất hiện ≥2 lần, để tránh nhiễu thống kê; hai ví dụ "dung nhan"/"huy hoàng" được nêu riêng ở mục 5 bài Analysis như minh họa khái niệm, có ghi rõ giới hạn mẫu nhỏ.
6. Bước 4 — lọc nhiễu và loại cụm ngữ pháp
Sau khi xếp hạng theo PMI, nhiều cặp lọt vào top nhưng không phải từ ghép/từ láy thật mà là:
- Cụm hô ngữ/ngữ pháp ("em ơi", "một lần", "cho nhau") — có nghĩa rõ khi tách riêng từng chữ, chỉ là cấu trúc câu thông thường, không phải "từ đôi vô nghĩa khi tách rời" theo đúng tinh thần câu hỏi ban đầu.
- Điệp khúc/tên bài lặp lại nhiều lần ("hãy ngồi", "ngồi xuống", "xuống đây" — cả ba đều PMI cao vì đúng là tên bài "Hãy Ngồi Xuống Đây" được lặp nguyên cụm trong lời) — đây là hiện tượng tu từ (điệp ngữ) khác với từ ghép có sẵn trong từ điển, nên được tách thành một quan sát riêng ở mục 6 bài Analysis thay vì trộn chung vào bảng "từ đôi".
- Mảnh vỡ do ranh giới ô bảng ký âm — như "lai mịt" (nhiều khả năng là phần đuôi "tương lai" + phần đầu "mịt mờ" bị ghép nhầm khi hai cụm nằm sát nhau trong cùng ô, hoặc ở ranh giới hai ô kế tiếp), "ngón suông", "sô có", "đầu phận", "dài phút", "với trái" — các cặp này bị gắn dấu † trong bảng Analysis thay vì đưa vào danh sách "từ đôi" chính thức, vì không đủ tin cậy để khẳng định là từ ghép có thật.
Việc phân loại 3 nhóm trên làm thủ công, dựa vào việc đọc lại từng cặp và kiến thức tiếng Việt của người viết — không phải bước tự động trong script. Đây là giới hạn cần nêu rõ: PMI chỉ cho biết cặp nào "dính" bất thường về mặt thống kê, không tự phân biệt được "từ ghép có sẵn trong từ điển" và "điệp ngữ tự tạo của bài hát" hay "lỗi ranh giới dữ liệu" — ba nguyên nhân này đều tạo ra tín hiệu PMI cao như nhau.
7. Bước 5 — gán nhãn loại từ (từ láy / Hán-Việt / thuần Việt)
Với 58 cặp còn lại sau khi lọc (mục 6, bản 2026-07-27 — bản gốc 20 bài là 39 cặp), gán nhãn loại bằng kiến thức ngôn ngữ thông thường (không phải tra từ điển tự động):
- Từ láy — hai âm tiết láy âm/láy vần với nhau (bối rối, ngọt ngào, mênh mông, rộn ràng, đắm đuối, lạnh lùng, rã rời, mịt mờ, thì thầm, vời vợi…).
- Hán-Việt / Hán-Nôm ghép — ít nhất một âm tiết là từ gốc Hán, hiếm hoặc không dùng độc lập trong khẩu ngữ hiện đại (kỷ niệm, tương lai, thời gian, thủy chung, cô liêu, dương trần, ái ân, đơn côi…).
- Từ ghép thuần Việt — hai âm tiết đều là từ Việt có nghĩa riêng, ghép lại mang nghĩa cụ thể hơn tổng hai nghĩa rời (vũng lầy, đắng cay, da thịt, gót chân, giọt nước, vòng tay, bàn tay…).
Ranh giới giữa ba nhóm không tuyệt đối (nhiều từ là Hán-Nôm hỗn hợp, ví dụ "âm thầm": "âm" gốc Hán, "thầm" thuần Việt) — nhãn trong bảng Analysis chọn theo cách gọi phổ biến nhất trong sách ngữ pháp tiếng Việt, không phải phân loại học thuật chặt chẽ.
8. Bước 6 — "từ đôi đặc trưng theo từng bài"
Tái dùng đúng công thức log-ratio đã dùng cho "từ đặc trưng theo bài" ở bài word-usage trước (_LeUyenPhuong_WordUsage_Analysis.md, mục 5), nhưng áp cho bigram thay vì unigram:
`` score(w1,w2 | bài X) = ( tần suất (w1,w2) trong bài X / tổng bigram bài X ) ÷ ( tần suất (w1,w2) toàn kho / tổng bigram toàn kho ) ``
Chỉ giữ cặp xuất hiện ≥2 lần trong bài đó, lấy 6 cặp điểm cao nhất mỗi bài. Kết quả (mục 4 bài Analysis) cho thấy phần lớn cặp "đặc trưng theo bài" là cụm điệp ngữ tự tạo (chiều nào/chiều nầy, hãy ngồi/ngồi xuống), không phải từ ghép từ điển — đúng như dự đoán ở mục 6 trên.
9. Công cụ & khả năng tái lập
Toàn bộ xử lý bằng script Python (đọc file .md, dùng regex tách bảng markdown và cột "Lời"/"Khổ N", tokenize bằng regex chữ cái + dấu tiếng Việt, đếm bằng collections.Counter, tính PMI bằng math.log2) — chạy ngoài thư mục dự án (trong scratchpad phiên làm việc), chỉ ghi lại kết quả đếm (số liệu bigram/PMI) vào 4 file cuối cùng, không lưu lại nguyên văn lời bài hát nào ở bất kỳ bước trung gian nào. Script có thể chạy lại bất cứ lúc nào nếu kho *_KyAm.md được cập nhật/sửa lỗi, cho kết quả nhất quán vì hoàn toàn dựa trên phép đếm, không có bước ngẫu nhiên.
10. Giới hạn
- Đây là ký âm đọc kiểu "quick way" (xem
_LeUyenPhuong_KyAm_Process.md), lời ca có độ tin cậy cao nhưng không phải bản đối chiếu từng chữ với ấn bản gốc — vài âm tiết hiếm/lạ có thể bị đọc sai (lỗi OCR-bằng-mắt), ảnh hưởng nhẹ đến các cặp tần suất thấp (n=1 hoặc 2). - Mẫu 21 bài, ~3.950 âm tiết là nhỏ theo chuẩn thống kê ngôn ngữ học — các con số PMI ở mục 5 bài Analysis nên đọc như "gợi ý đáng chú ý", không phải kết luận chắc chắn về tần suất dùng từ thật của Lê Uyên Phương trên toàn bộ sự nghiệp sáng tác (chỉ 21/hơn 70 bài đã biết).
- Gán nhãn loại từ (mục 7) làm thủ công, có thể có bất đồng quan điểm ngôn ngữ học ở một vài trường hợp biên (Hán-Nôm hỗn hợp).
11. Đợt cập nhật 2026-07-27 — bổ sung bài 21 + sửa lỗi đếm thiếu
Lý do: người yêu cầu chỉ ra bài Analysis thiếu "Tình Khúc Cho Em" (bài thứ 21), dù file TinhKhucChoEm_KyAm.md đã ký âm xong từ trước (lời ca/hợp âm tin cậy cao, chỉ cao độ mới cần bản KyAmChiTiet riêng). Việc "chỉ cộng thêm 1 bài" tưởng đơn giản nhưng đòi hỏi tính lại từ đầu, vì file gốc không lưu lại bảng đếm unigram/bigram đầy đủ của 20 bài cũ (chỉ lưu kết quả đã lọc, theo đúng nguyên tắc ở mục 9) — không có cách nào "cộng thêm" một bài vào một tổng đã có mà không dựng lại toàn bộ pipeline.
Quy trình lần này:
- Viết lại script Python (
parse_lup.py+stats_lup.py, chạy trong scratchpad phiên làm việc) dựng stream cho cả 20 file gốc vàTinhKhucChoEm_KyAm.md, theo đúng quy tắc ở mục 3 (cột "Lời" nối tiếp qua bảng, cột "Khổ N" tách stream riêng), cộng thêm bước làm sạch ô: bỏ mọi văn bản trong ngoặc đơn(...)(chú thích/ghi chú ký âm, ví dụ "(hết bài)", "(lặp câu…)", "(Tacet….)") và mọi dấu**/†/⚠trước khi tách âm tiết bằng regex chữ-cái-có-dấu. - Kiểm chứng script bằng cách đối chiếu ngược với các con số đã công bố trong bản gốc: số âm tiết/bài ở
_LeUyenPhuong_WordUsage_Analysis.mdmục 2, và ba số unigram "tay"=24, "vòng"=2, "dung"=1, "nhan"=1, "huy"=1 nêu trong mục 5 (bản trước khi sửa) của chính file này. Script khớp chính xác với 19/20 bài và cả 5 số unigram nêu trên — cho thấy phương pháp tokenize/gộp stream nhất quán với lần làm gốc. - Bài duy nhất không khớp là "Lời Gọi Chân Mây": WordUsage công bố 70 âm tiết, script tính ra 181. Đọc lại file ký âm mới lộ nguyên nhân: bài này có cấu trúc bảng đặc biệt — 2 bảng đầu dùng cột song song "Khổ 1"/"Khổ 2 (cùng nhạc)" (hai lời hát trên cùng một khuông nhạc, giống kiểu Đá Xanh nhưng chỉ 2 khổ thay vì 3), rồi bảng thứ ba hội tụ thành một cột "Lời (chung 2 khổ)" duy nhất cho đoạn kết. Đối chiếu với cách "Đá Xanh" (3 cột Khổ song song) và "Bên Hồ Than Thở" (trộn cột "Lời" + "Khổ 1"/"Khổ 2") đều được cộng đủ tất cả các cột trong bản gốc (khớp số liệu công bố), kết luận hợp lý nhất là: bản đếm gốc của riêng "Lời Gọi Chân Mây" chỉ bắt được cột "Khổ 1" (= đúng 70 âm tiết), bỏ sót cột "Khổ 2" (63 âm tiết) và bảng hội tụ "Lời (chung 2 khổ)" (48 âm tiết) — nhiều khả năng do cấu trúc 3-bảng-2-kiểu-cột của riêng file này (khác mọi file khác trong tập) khiến bước quét cột ở lần làm gốc dừng lại sớm.
- Vì đây là lỗi ảnh hưởng đến cả hai file đã công bố trước đó (
_LeUyenPhuong_WordUsage_Analysis.mdvà chính file_LeUyenPhuong_ TuGhep_Analysis.md), và việc sửa sẽ làm thay đổi các số liệu người yêu cầu đã xem qua trước đây, đã hỏi lại người yêu cầu trước khi sửa (thay vì tự ý sửa hoặc tự ý bỏ qua) — người yêu cầu chọn sửa đầy đủ ngay trong đợt này._LeUyenPhuong_WordUsage_Analysis.mdchưa được sửa (nằm ngoài yêu cầu ban đầu — chỉ nêu ở đây để người yêu cầu biết và quyết định sau nếu muốn). - Sau khi có bộ đếm đúng cho 21 bài, dựng lại toàn bộ mục 1–6 của bài Analysis: tổng quan (mục 1), bảng PMI lọc (mục 2 — từ 40 lên 58 cặp, chủ yếu do phần bổ sung của "Lời Gọi Chân Mây" và "Tình Khúc Cho Em" cùng đẩy nhiều cặp từ ghép thật vượt ngưỡng PMI/tần suất), bảng tần suất thô (mục 3), bảng đặc trưng theo bài (mục 4 — thêm dòng "Tình Khúc Cho Em", sửa dòng "Lời Gọi Chân Mây"), và hai ví dụ mẫu (mục 5, xem mục 5 phía trên của chính file Process này).
Bài học quy trình: nguyên tắc "không lưu lại nguyên văn lời bài hát ở bước trung gian" (mục 9) tuy đúng cho việc bảo vệ bản quyền/không chép lại lời ca, nhưng có cái giá là không thể kiểm toán lại hay cộng thêm dữ liệu mới vào một kho thống kê cũ mà không dựng lại toàn bộ từ đầu. Việc script lần này khớp đúng 19/20 bài + 5 con số unigram tham chiếu là may mắn (phương pháp đủ xác định để tái lập), nhưng nếu không có sẵn các "điểm neo" công khai đó (mục 2 WordUsage, mục 5 TuGhep) thì sẽ không có cách nào phát hiện ra lỗi đếm thiếu ở "Lời Gọi Chân Mây".
