Xử lý ngôn ngữ tự nhiên với python p3
Trong phần này, tôi sẽ hướng dẫn bạn một số thao tác xử lý cơ bản khi sử dụng Python và NLTK để xử lý ngôn ngữ tự nhiên. Chúng ta sẽ sử dụng một package mà NLTK cung cấp sẵn đó là Book. Book chứa Text của các cuốn sách mẫu dành cho việc xử lý ngôn ngữ. Để sử dụng được Book, chúng ta cần import nó vào trong mã Python của chúng ta. Ở hướng dẫn này, tôi sẽ sử dụng Python interpreter để chạy. Các bạn có thể làm tương tự và chạy với Python file. Show
1. Import NLTK Book
Ta tiến hành import book với lệnh "from nltk.book import *"
Kết quả là ta đã có Text của 9 cuốn sách, được gán vào các biến tương ứng từ text1 -> text9. Ta thử xem nội dung các biến thế nào
2. Tìm kiếm TextPhần này sẽ nói về một số kỹ thuật tìm kiếm Text trong quá trình xử lý và phân tích ngôn ngữ. Ví dụ như tìm, đếm, so sánh... Tìm text ở trong đoạn văn bản.Ví dụ chúng ta muốn tìm từ "monstrous" trong văn bản được lưu trong biến text1, ta sử dụng hàm concordance(). Hàm trên sẽ được gọi trực tiếp từ biến text1 theo cơ chế tự động của Python.
Kết quả là chúng ta thấy từ "monstrous" được xuất hiện 11 lần trong văn bản. Tìm các từ xuất hiện trong ngữ cảnh tương tự.Nếu các bạn để ý kết quả trên, sẽ thấy từ "monstrous" sẽ đi đi cùng với ngữ cảnh như "the .... pictures" hay "the ... size". Bây giờ chúng ta cũng muốn tìm các từ mà chúng cũng được sử dụng trong các ngữ cảnh tương tự với từ "monstrous". Để làm được điều đó, chúng ta sẽ sử dụng hàm similar(), cách sử dụng tương tự hàm concordance() phía trên.
Kết quả là ta có 1 list các từ có ngữ cảnh tương tự với từ "monstrous". Bây giờ ta cùng thử với text2.
Nếu xem xét về khía cạnh ngôn ngữ thì từ "monstrous" được sử dụng rất khác biệt về ý nghĩa. Với tác giả của đoạn text2, từ "monstrous" mang ý nghĩa tích cực hơn dựa vào ý nghĩa của các tính từ cùng ngữ cảnh như good, great, very, amazingly... Có vẻ như con quái vật trong cuốn sách thứ 2 khá là Cute và tốt bụng 3. Đếm số lượng từ trong văn bản.Đếm tất cả lượng từ trong đoạn văn.Ta sử dụng hàm len() của Python để đếm số từ trong đoạn văn ở biến text3.
Kết quả là ta có 44.764 từ trong văn bản trên, bao gồm cả các dấu chấm câu. Ở đây ta sẽ tìm hiểu khái niệm đầu tiên của NLP đó là Token. Như vậy, mỗi một từ hay 1 dấu chấm câu sẽ được gọi là 1 "token". Cụ thể hơn về Token
Đếm số lượng từ sử dụng trong văn bản.Tức là ta đếm số từ được sử dụng, ví dụ trong văn bản sửa dụng từ "such" 100 lần, thì trường hợp này cũng chỉ tính là 1 từ mà thôi. Ta thực hiện bằng cách sử dụng hàm len() và hàm set() lồng nhau.
Như vậy cả thảy có 2789 từ được sử dụng. Không tới 3000 từ tiếng Anh trong cuốn sách số 3 này. Như vậy nếu bạn học đủ 3000 từ thông dụng của tiếng Anh là đọc sách tiếng Anh ngon rồi nhỉ? OK. Giờ muốn biết xem những từ đó là từ gì, và sắp xếp chúng theo thứ tự, ta vẫn dùng hàm set() và bao bên ngoài là hàm sorted() để sắp xếp chúng theo thứ tự A-Z.
Có rất nhiều từ và tôi chỉ Copy một vài từ đầu vào bài này thôi. Bạn có thể chạy lệnh tương tự để thấy toàn bộ từ được sử dụng trong văn bản. Đếm số lần xuất hiện của 1 từ trong văn bản.Cái này thì dễ rồi, bạn sử dụng hàm count() để làm việc này. Ví dụ tôi muốn tìm từ "lol" trong đoạn văn bản số 5.
Như vậy từ "lol" xuất hiện tới 704 lần trong văn bản thứ 5. Tính tỉ lệ phần trăm của 1 từ trong văn bản.Cái này thì phép toán lớp 1 rồi. Nào ta cùng tính số phần trăm của từ "lol" trong văn bản số 5 nhé.
Như vậy là từ này chiếm gần 1.6% trong văn bản 5. Một ứng dụng của việc tính phần trăm nay là thống kê xem tên của ai đó, sự việc gì đó hoặc từ nào đó xuất hiện trong các tài liệu, bài báo, văn bản hay các Status trên Mạng xã hội. DEHA AI Lab - Công ty cổ phần DEHA Việt Nam. |