Cài đặt NLTK và sử dụng nó để xử lý ngôn ngữ con người

theanh

Administrator
Nhân viên
NLTK là viết tắt của "Natural Language Tool Kit". Đây là một mô-đun lập trình Python được sử dụng để dọn dẹp và xử lý dữ liệu ngôn ngữ của con người. Các công cụ tích hợp phong phú của nó giúp chúng ta dễ dàng xây dựng các ứng dụng trong lĩnh vực Xử lý ngôn ngữ tự nhiên (hay còn gọi là NLP).

Một tập hợp các từ có trong một ngôn ngữ cụ thể và NLTK cung cấp hơn 50 tập hợp khác nhau để làm việc và cung cấp các thư viện cốt lõi như gắn thẻ POS, gắn thẻ kết thúc lời nói, mã hóa, lý luận ngữ nghĩa, phân loại, v.v. Sau đây là mô tả ngắn gọn về 5 tính năng hoặc bước chính được sử dụng trong NLP, có thể dễ dàng thực hiện bằng NLTK:
  • Gắn thẻ kết thúc lời nói (gắn thẻ EOS): Điều này bao gồm việc chia nhỏ một văn bản thành một tập hợp các từ có nghĩa câu.
  • Phân chia thành các từ. Nó không chỉ hoạt động trên các khoảng trắng mà còn loại bỏ các từ dừng như (.,?,!, v.v.) và nó là một tập hợp, nghĩa là các từ trùng lặp sẽ bị loại bỏ.
  • Gắn thẻ từ loại (gắn thẻ POS): Gắn thẻ từ để chỉ ra loại từ đó là gì. Các thẻ được mã hóa. cho danh từ, động từ ở thì quá khứ, v.v., vì vậy mỗi từ sẽ có một thẻ.
  • Phân chia thành từng nhóm: Quá trình nhóm các từ có thẻ tương tự. Kết quả của việc phân chia thành từng nhóm sẽ là một cấu trúc giống như cây.
  • Trích xuất: Sau khi dữ liệu được phân chia thành từng nhóm, chúng ta chỉ có thể trích xuất danh từ hoặc chỉ động từ, v.v. để đáp ứng nhu cầu.
Bây giờ, điều này có vẻ rất thú vị nhưng đây có phải là mô-đun tốt nhất có thể sử dụng không? Câu trả lời cho câu hỏi đó phụ thuộc vào nhiệm vụ trong tầm tay. Nhìn chung, NLTK chậm nhưng rất chính xác. Có những module khác như PsyKit, nhanh hơn nhưng phải đánh đổi về độ chính xác. Vì vậy, đối với các ứng dụng mà độ chính xác quan trọng hơn thời gian, NLTK là lựa chọn đúng đắn. Bài đăng này cho thấy cách cài đặt và sử dụng NLTK bằng ví dụ.

2 Tải xuống và cài đặt NLTK​

NLTK có thể được cài đặt rất dễ dàng bằng trình cài đặt "pip". Trước khi cài đặt NLTK, chúng ta cũng phải cài đặt numpy. Sử dụng các lệnh sau:
Mã:
sudo pip install -U numpy 
sudo pip install -U nltk
Hình ảnh bên dưới cho thấy quá trình thực thi nltk. Xin lưu ý rằng việc cài đặt numpy cũng tương tự nhưng có thể mất nhiều thời gian hơn tùy thuộc vào bộ xử lý của hệ thống.



Sau khi hoàn tất, bạn có thể kiểm tra xem nó đã được cài đặt đúng chưa bằng cách sử dụng 2 lệnh trong hình ảnh sau và đảm bảo nó chạy mà không có lỗi.


3 Cài đặt dữ liệu NLTK​

Sau khi bạn đã xác nhận rằng nltk đã được cài đặt, chúng ta sẽ phải tải xuống và cài đặt dữ liệu NLTK. Dữ liệu Nltk bao gồm các tập hợp và tất cả các từ trong một ngôn ngữ cùng với nhiều cú pháp ngữ pháp, ngữ pháp đồ chơi, mô hình đã được đào tạo, v.v. Chúng giúp người dùng dễ dàng xử lý ngôn ngữ bằng cách áp dụng các hàm khác nhau. Xin lưu ý rằng việc cài đặt dữ liệu nltk là một quá trình dài, liên quan đến việc tải xuống hơn 1 GB dữ liệu. Để tải xuống dữ liệu nltk, trong một thiết bị đầu cuối, hãy nhập "python" để mở trình thông dịch python và nhập hai lệnh sau:
Mã:
>>> import nltk >>> nltk.download()
Một cửa sổ mới sẽ mở ra, hiển thị trình tải xuống nltk. cài đặt nó trong thư mục "usr/share/nltk_data". Sau khi hoàn tất, hãy kiểm tra xem nó đã được tải xuống chưa bằng cách nhập các lệnh và nhận đầu ra như trong hình bên dưới.


4 Ví dụ về việc sử dụng NLTK​

Bây giờ chúng ta có thể thử một số ví dụ về các tác vụ NLP được thực hiện bằng NLTK. 5 quy trình phát hiện EOS, Tokenization, gắn thẻ POS, Chunking và trích xuất được trình bày ở đây:

4.1 Phát hiện EOS​

Việc gắn thẻ kết thúc lời nói sẽ chia văn bản thành một tập hợp các câu có nghĩa. Chúng tôi làm như vậy vì các bước tiếp theo sẽ thực hiện trên từng câu riêng lẻ. Dưới đây là một ví dụ và đầu ra của phát hiện EOS.
Mã:
>>> import nltk>>> text = "Mrs. Hudson đã pha một tách trà. Cô ấy là một người phụ nữ tuyệt vời.">>> sentences = nltk.tokenize.sent_tokenize(text)>>> sentences['Mrs. Hudson đã pha một tách trà.', 'Cô ấy là một người phụ nữ tuyệt vời.']>>>
Có thể thấy cách sử dụng ngữ liệu của nltk ở trên. Nó biết rằng "Mrs." không phải là một câu mà là một từ viết tắt. Do đó, nó được bao gồm như một phần của câu chứ không phải là một câu riêng lẻ.

4.2 Tokenization​

Bước này hoạt động trên các câu riêng lẻ, chia chúng thành các token. do đó, chúng ta có một danh sách các danh sách chứa token. Ví dụ bên dưới là phần tiếp theo của bước trước.
Mã:
>>> tokens = [nltk.tokenize.word_tokenize(s) cho s trong câu]>>> tokens[['Mrs.', 'Hudson', 'made', 'a', 'cup', 'of', 'tea', '.'], ['She', 'is', 'a', 'wonderful', 'woman', '.']]>>>
Ở đây chúng ta có thể thấy rằng các token không chỉ bao gồm các từ mà còn bao gồm cả phần cuối câu. Điều quan trọng cần lưu ý là Tokenization không chỉ chia câu thành các từ mà còn có khả năng chia câu thành các token trong đó khoảng trắng không phải là ký tự để phân tách các từ.

4.3 Gắn thẻ POS​

POS có nghĩa là pat-of-speech và trong bước này, thông tin POS được gán cho từng token trong danh sách token. Mỗi thông tin POS này biểu thị loại lời nói đó là gì. Ví dụ: thẻ 'VBD' biểu thị động từ ở thì quá khứ đơn và 'JJ' biểu thị tính từ. Bước này giúp chúng ta sắp xếp hoặc sắp xếp các từ trong bước tiếp theo. Một ví dụ được đưa ra bên dưới.
Mã:
>>> PosTokens = [nltk.pos_tag(e) for e in tokens]>>> PosToken[[('Mrs.', 'NNP'), ('Hudson', 'NNP'), ('made', 'VBD'), ('a', 'DT'), ('cup', 'NN'), ('of', 'IN'), ('tea', 'NN'),('.', '.')], [('She', 'PRP'), ('is', 'VBZ'), ('a', 'DT'), ('wonderful', 'JJ'), ('woman', 'NN'), ('.', '.')]]>>>

4.4 Phân đoạn và trích xuất​

Phân đoạn là quá trình lắp ráp các mã thông báo phức tạp dựa trên các thẻ. Nltk cũng cho phép định nghĩa ngữ pháp tùy chỉnh để phân đoạn. Mặt khác, trích xuất đề cập đến quá trình duyệt qua các khối hiện có và gắn thẻ chúng dưới dạng các thực thể được đặt tên, chẳng hạn như người, tổ chức, địa điểm, v.v. một ví dụ:
Mã:
>>> chunks = nltk.ne_chunk_sents(PosTokens)>>> cho mỗi khối trong các khối:... in mỗi khối...(S Mrs./NNP (PERSON Hudson/NNP) made/VBD a/DT cup/NN of/IN tea/NN ./.)(S She/PRP is/VBZ a/DT wonderful/JJ woman/NN ./.)>>>
Chúng ta có thể thấy ở trên rằng Bà Hudson đã được công nhận là một người. Tất cả thông tin này được lưu trữ dưới dạng một cây.

5 Kết luận​

Từ mẫu được đưa ra ở trên, chúng ta có thể thấy chúng ta có thể xử lý dữ liệu dễ dàng như thế nào. Sau khi áp dụng 5 bước này, chúng ta có thể tiếp tục và áp dụng nhiều thuật toán khác nhau để xử lý/xếp hạng dữ liệu và trích xuất thông tin hữu ích từ dữ liệu đó. Một ví dụ về cách sử dụng này là "Tóm tắt văn bản tự động". Tóm lại, Nltk là một công cụ mạnh mẽ, chính xác nhưng chậm hơn một chút so với các công cụ khác. Nó có thể được sử dụng cho các ứng dụng ưu tiên độ chính xác.

6 Official Link​

Để biết thông tin chi tiết về cách sử dụng hàng trăm tác vụ và chức năng của nltk cùng với cách sử dụng, hãy truy cập trang web chính thức của họ: http://www.nltk.org/genindex.html
 
Back
Bên trên