12/08/2018, 16:10

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ó ...

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.

Python 3.6.2 (default, Jul 17 2017, 16:44:45) 
[GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.42)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Ta tiến hành import book với lệnh "from nltk.book import *"

>>> from nltk.book import *
*** Introductory Examples for the NLTK Book ***
Loading text1, ..., text9 and sent1, ..., sent9
Type the name of the text or sentence to view it.
Type: 'texts()' or 'sents()' to list the materials.
text1: Moby Dick by Herman Melville 1851
text2: Sense and Sensibility by Jane Austen 1811
text3: The Book of Genesis
text4: Inaugural Address Corpus
text5: Chat Corpus
text6: Monty Python and the Holy Grail
text7: Wall Street Journal
text8: Personals Corpus
text9: The Man Who Was Thursday by G . K . Chesterton 1908

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

>>> text1
<Text: Moby Dick by Herman Melville 1851>
>>> text2
<Text: Sense and Sensibility by Jane Austen 1811>
>>> 

Phầ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.

>>> text1.concordance("monstrous")
Displaying 11 of 11 matches:
ong the former , one was of a most monstrous size . ... This came towards us , 
ON OF THE PSALMS . " Touching that monstrous bulk of the whale or ork we have r
ll over with a heathenish array of monstrous clubs and spears . Some were thick
d as you gazed , and wondered what monstrous cannibal and savage could ever hav
that has survived the flood ; most monstrous and most mountainous ! That Himmal
they might scout at Moby Dick as a monstrous fable , or still worse and more de
th of Radney .'" CHAPTER 55 Of the Monstrous Pictures of Whales . I shall ere l
ing Scenes . In connexion with the monstrous pictures of whales , I am strongly
ere to enter upon those still more monstrous stories of them which are to be fo
ght have been rummaged out of this monstrous cabinet there is no telling . But 
of Whale - Bones ; for Whales of a monstrous size are oftentimes cast up dead u

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.

>>> text1.similar("monstrous")
true contemptible christian abundant few part mean careful puzzled
mystifying passing curious loving wise doleful gamesome singular
delightfully perilous fearless

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.

>>> text2.similar("monstrous")
very so exceedingly heartily a as good great extremely remarkably
sweet vast amazingly

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             </div>
            
            <div class=

0