Đếm tần suất từ trong phụ đề phim để chọn từ cần học
Học từ vựng qua phim hiệu quả nhất khi học đúng những từ phim đó dùng nhiều. Bài này dựng một bộ đếm tần suất từ đơn giản từ file phụ đề tiếng Anh, đủ để tạo danh sách từ cần học trước khi xem một bộ phim.
Bước 1: lấy câu thoại từ file SRT
File SRT gồm các khối: số thứ tự, dòng thời gian, rồi một hoặc vài dòng thoại, các khối cách nhau bằng một dòng trống.
function cauThoai(srt) {
return srt.trim().split(/\r?\n\r?\n/).map(khoi => khoi.split(/\r?\n/).slice(2).join(' '));
}
Bước 2: tách từ và bỏ từ chức năng
const STOP = new Set(['the', 'a', 'an', 'to', 'of', 'and', 'i', 'you', 'it', 'is', 'in']);
function tanSuat(cacCau) {
const dem = new Map();
for (const cau of cacCau) {
for (const tu of cau.toLowerCase().match(/[a-z']+/g) || []) {
if (STOP.has(tu)) continue;
dem.set(tu, (dem.get(tu) || 0) + 1);
}
}
return [...dem].sort((a, b) => b[1] - a[1]);
}
tanSuat(["I'll figure it out.", "Don't worry, we'll figure out a plan.", 'Worry less.']).slice(0, 3);
// [['figure', 2], ['out', 2], ['worry', 2]]
Danh sách từ chức năng ở đây để ngắn gọn. Thực tế nên dùng danh sách vài trăm từ thông dụng nhất mà người học đã biết.
Bước 3: gộp dạng từ
worry, worried, worries nên tính là một. Cách đơn giản là bảng chuyển dạng (lemma) cho các từ phổ biến. Cách đầy đủ hơn là dùng thư viện xử lý ngôn ngữ như compromise cho JavaScript.
Bước 4: giữ lại câu gốc
Từ đứng một mình khó nhớ. Lưu kèm câu thoại đầu tiên chứa từ đó, để thẻ ôn có ngữ cảnh: "figure out" đi với "I'll figure it out".
Mở rộng
- Cụm động từ như
figure out,give upcần đếm theo cặp từ liên tiếp (bigram). - So danh sách với trình độ CEFR của người học để chỉ hiện từ mới với họ.
Một ví dụ về học từ qua phim có phụ đề song ngữ theo từng câu, kèm lưu từ và lịch ôn, có trên Từ Vựng 123.
All rights reserved