Trong chương này, chúng ta sẽ tìm hiểu về xử lý ngôn ngữ bằng Python.
Các tính năng sau làm cho Python khác với các ngôn ngữ khác -
Python được giải thích - chúng tôi không cần phải biên dịch chương trình Python của mình trước khi thực hiện nó vì trình thông dịch xử lý Python khi chạy. − We do not need to compile our Python program before executing it because the interpreter processes Python at runtime.
Tương tác - Chúng tôi có thể trực tiếp tương tác với trình thông dịch để viết các chương trình Python của chúng tôi. − We can directly interact with the interpreter to write our Python programs.
Định hướng đối tượng-Python có tính tự nhiên hướng đối tượng và nó làm cho ngôn ngữ này dễ dàng viết các chương trình vì với sự trợ giúp của kỹ thuật lập trình này, nó gói gọn mã trong các đối tượng. − Python is object-oriented in nature and it makes this language easier to write programs because with the help of this technique of programming it encapsulates code within objects.
Người mới bắt đầu có thể dễ dàng học - Python còn được gọi là ngôn ngữ mới bắt đầu vì nó rất dễ hiểu và nó hỗ trợ sự phát triển của một loạt các ứng dụng. − Python is also called beginner’s language because it is very easy to understand, and it supports the development of a wide range of applications.
Điều kiện tiên quyết
Phiên bản mới nhất của Python 3 được phát hành là Python 3.7.1 có sẵn cho Windows, Mac OS và hầu hết các hương vị của Linux OS.
Đối với Windows, chúng ta có thể truy cập liên kết www.python.org/doads/windows/ để tải xuống và cài đặt Python.
Đối với Mac OS, chúng ta có thể sử dụng liên kết www.python.org/doads/mac-osx/.
Trong trường hợp Linux, các hương vị khác nhau của Linux sử dụng các trình quản lý gói khác nhau để cài đặt các gói mới.
Ví dụ: để cài đặt Python 3 trên Ubuntu Linux, chúng ta có thể sử dụng lệnh sau từ Terminal -
$sudo apt-get install python3-minimal
Để nghiên cứu thêm về lập trình Python, hãy đọc Python 3 Hướng dẫn cơ bản - Python 3
Bắt đầu với NLTK
Chúng tôi sẽ sử dụng Thư viện Python NLTK [Bộ công cụ ngôn ngữ tự nhiên] để phân tích văn bản bằng ngôn ngữ tiếng Anh. Bộ công cụ ngôn ngữ tự nhiên [NLTK] là một tập hợp các thư viện Python được thiết kế đặc biệt để xác định và thẻ các phần của bài phát biểu được tìm thấy trong văn bản ngôn ngữ tự nhiên như tiếng Anh.
Cài đặt NLTK
Trước khi bắt đầu sử dụng NLTK, chúng tôi cần cài đặt nó. Với sự trợ giúp của lệnh sau, chúng tôi có thể cài đặt nó trong môi trường Python của chúng tôi -
pip install nltk
Nếu chúng ta đang sử dụng Anaconda, thì gói Conda cho NLTK có thể được xây dựng bằng cách sử dụng lệnh sau -
conda install -c anaconda nltk
Tải xuống dữ liệu NLTK
Sau khi cài đặt NLTK, một nhiệm vụ quan trọng khác là tải xuống các kho lưu trữ văn bản đặt trước của nó để có thể dễ dàng sử dụng. Tuy nhiên, trước đó, chúng tôi cần nhập NLTK theo cách chúng tôi nhập bất kỳ mô -đun Python nào khác. Lệnh sau sẽ giúp chúng tôi nhập NLTK -
import nltk
Bây giờ, tải xuống dữ liệu NLTK với sự trợ giúp của lệnh sau -
nltk.download[]
Sẽ mất một thời gian để cài đặt tất cả các gói NLTK có sẵn.
Các gói cần thiết khác
Một số gói Python khác như Gensim và Mẫu cũng rất cần thiết để phân tích văn bản cũng như xây dựng các ứng dụng xử lý ngôn ngữ tự nhiên bằng cách sử dụng NLTK. Các gói có thể được cài đặt như hình dưới đây -gensim and pattern are also very necessary for text analysis as well as building natural language processing applications by using NLTK. the packages can be installed as shown below −
GENSIM
Gensim là một thư viện mô hình ngữ nghĩa mạnh mẽ có thể được sử dụng cho nhiều ứng dụng. Chúng tôi có thể cài đặt nó bằng cách làm theo lệnh -
pip install gensim
họa tiết
Nó có thể được sử dụng để làm cho gói Gensim hoạt động đúng. Lệnh sau giúp cài đặt mẫu -gensim package work properly. The following command helps in installing pattern −
pip install pattern
Mã thông báo
Mã thông báo có thể được định nghĩa là quá trình phá vỡ văn bản đã cho, thành các đơn vị nhỏ hơn được gọi là mã thông báo. Từ, số hoặc dấu chấm câu có thể là mã thông báo. Nó cũng có thể được gọi là phân đoạn từ.
Thí dụ
Đầu vào - giường và ghế là các loại đồ nội thất. − Bed and chair are types of furniture.
Chúng tôi có các gói khác nhau để được cung cấp bởi NLTK. Chúng tôi có thể sử dụng các gói này dựa trên các yêu cầu của chúng tôi. Các gói và chi tiết cài đặt của chúng như sau -
Gói Sent_Tokenize
Gói này có thể được sử dụng để chia văn bản đầu vào thành các câu. Chúng tôi có thể nhập nó bằng cách sử dụng lệnh sau -
from nltk.tokenize import sent_tokenize
Gói Word_Tokenize
Gói này có thể được sử dụng để chia văn bản đầu vào thành các từ. Chúng tôi có thể nhập nó bằng cách sử dụng lệnh sau -
from nltk.tokenize import word_tokenize
Gói WordPunctTokenizer
Gói này có thể được sử dụng để chia văn bản đầu vào thành các từ và dấu chấm câu. Chúng tôi có thể nhập nó bằng cách sử dụng lệnh sau -
from nltk.tokenize import WordPuncttokenizer
Nhét đầy
Do lý do ngữ pháp, ngôn ngữ bao gồm rất nhiều biến thể. Biến thể theo nghĩa là ngôn ngữ, tiếng Anh cũng như các ngôn ngữ khác, có các hình thức khác nhau của một từ. Ví dụ, các từ như dân chủ, dân chủ và dân chủ hóa. Đối với các dự án học máy, điều rất quan trọng đối với các máy móc để hiểu rằng những từ khác nhau này, như trên, có cùng một hình thức cơ sở. Đó là lý do tại sao nó rất hữu ích để trích xuất các dạng cơ sở của các từ trong khi phân tích văn bản.democracy, democratic, and democratization. For machine learning projects, it is very important for machines to understand that these different words, like above, have the same base form. That is why it is very useful to extract the base forms of the words while analyzing the text.
STEMMING là một quá trình heuristic giúp trích xuất các dạng cơ sở của các từ bằng cách chặt đầu của chúng.
Các gói khác nhau cho thân cây được cung cấp bởi mô -đun NLTK như sau -
Gói Porterstemmer
Thuật toán Porter sườn được sử dụng bởi gói gốc này để trích xuất dạng cơ sở của các từ. Với sự trợ giúp của lệnh sau, chúng tôi có thể nhập gói này -
pip install nltk0
Ví dụ: ‘Viết, sẽ là đầu ra của từ‘ Viết được đưa ra làm đầu vào cho thân cây này.‘write’ would be the output of the word ‘writing’ given as the input to this stemmer.
Gói Lancasterstemmer
Thuật toán Lancaster sườn được sử dụng bởi gói gốc này để trích xuất dạng cơ sở của các từ. Với sự trợ giúp của lệnh sau, chúng tôi có thể nhập gói này -
pip install nltk1
Ví dụ, ‘writ, sẽ là đầu ra của từ‘ viết, được đưa ra làm đầu vào cho thân cây này.‘writ’ would be the output of the word ‘writing’ given as the input to this stemmer.
Gói Snowballstemmer
Thuật toán Snowball, được sử dụng bởi gói gốc này để trích xuất hình thức cơ sở của các từ. Với sự trợ giúp của lệnh sau, chúng tôi có thể nhập gói này -
pip install nltk2
Ví dụ: ‘Viết, sẽ là đầu ra của từ‘ Viết được đưa ra làm đầu vào cho thân cây này.‘write’ would be the output of the word ‘writing’ given as the input to this stemmer.
Lemmatization
Đó là một cách khác để trích xuất hình thức cơ sở của các từ, thường nhằm mục đích loại bỏ các kết thúc thay đổi bằng cách sử dụng phân tích từ vựng và hình thái. Sau khi hóa học, hình thức cơ sở của bất kỳ từ nào được gọi là Bổ đề.
Mô -đun NLTK cung cấp gói sau để làm cho lemmat hóa -
Gói WordNetLemMatizer
Gói này sẽ trích xuất dạng cơ sở của từ tùy thuộc vào việc nó được sử dụng làm danh từ hay làm động từ. Lệnh sau đây có thể được sử dụng để nhập gói này -
pip install nltk3
Đếm thẻ POS thẻ Chaving
Việc xác định các phần của lời nói [POS] và các cụm từ ngắn có thể được thực hiện với sự trợ giúp của chunking. Đây là một trong những quá trình quan trọng trong xử lý ngôn ngữ tự nhiên. Như chúng tôi biết về quá trình mã hóa để tạo ra các mã thông báo, việc theo dõi thực sự là thực hiện việc ghi nhãn của các mã thông báo đó. Nói cách khác, chúng ta có thể nói rằng chúng ta có thể có được cấu trúc của câu với sự trợ giúp của quá trình chunking.
Thí dụ
Trong ví dụ sau, chúng tôi sẽ triển khai cụm từ danh từ, một danh mục chunking sẽ tìm thấy các cụm từ danh từ trong câu, bằng cách sử dụng mô-đun NLTK Python.
Xem xét các bước sau đây để thực hiện chunking cụm danh từ-
Bước 1: Định nghĩa ngữ pháp chunk
Trong bước này, chúng ta cần xác định ngữ pháp để theo chunking. Nó sẽ bao gồm các quy tắc, mà chúng ta cần tuân theo.
Bước 2: Tạo trình phân tích cú pháp chunk
Tiếp theo, chúng ta cần tạo một trình phân tích cú pháp chunk. Nó sẽ phân tích ngữ pháp và đưa ra đầu ra.
Bước 3: Đầu ra
Trong bước này, chúng tôi sẽ có được đầu ra ở định dạng cây.
Chạy tập lệnh NLP
Bắt đầu bằng cách nhập gói NLTK -
import nltk
Bây giờ, chúng ta cần xác định câu.
Here,
DT là yếu tố quyết định
VBP là động từ
JJ là tính từ
Trong là giới từ
Nn là danh từ
pip install nltk5
Tiếp theo, ngữ pháp nên được đưa ra dưới dạng biểu thức chính quy.
pip install nltk6
Bây giờ, chúng ta cần xác định một trình phân tích cú pháp để phân tích ngữ pháp.
pip install nltk7
Bây giờ, trình phân tích cú pháp sẽ phân tích câu như sau -
pip install nltk8
Tiếp theo, đầu ra sẽ nằm trong biến như sau:-
pip install nltk9
Bây giờ, mã sau sẽ giúp bạn vẽ đầu ra của mình dưới dạng cây.
conda install -c anaconda nltk0