Gắn thẻ POS với NLTK và Chunking trong NLP (VÍ DỤ)

Mục lục:

Anonim

Gắn thẻ POS

Gắn thẻ POS (Các phần của Gắn thẻ bằng giọng nói) là một quá trình để đánh dấu các từ ở định dạng văn bản cho một phần cụ thể của bài phát biểu dựa trên định nghĩa và ngữ cảnh của nó. Nó chịu trách nhiệm đọc văn bản bằng một ngôn ngữ và chỉ định một số mã thông báo cụ thể (Phần của Bài phát biểu) cho mỗi từ. Nó còn được gọi là gắn thẻ ngữ pháp.

Hãy cùng tìm hiểu với ví dụ về Phần nói của NLTK:

Đầu vào: Mọi thứ cho phép chúng tôi.

Đầu ra : [('Mọi thứ', NN), ('thành', TO), ('giấy phép', VB), ('chúng tôi', PRP)]

Các bước liên quan đến ví dụ gắn thẻ POS:

  • Mã hóa văn bản (word_tokenize)
  • áp dụng pos_tag cho bước trên là nltk.pos_tag (tokenize_text)

Ví dụ về thẻ POS NLTK như sau:

Viết tắt Ý nghĩa
CC phối hợp cùng
CD chữ số chính
DT người xác định
VÍ DỤ tồn tại ở đó
FW từ nước ngoài
TRONG giới từ / kết hợp phụ
JJ Thẻ POS NLTK này là một tính từ (lớn)
JJR tính từ, so sánh (lớn hơn)
JJS tính từ, so sánh nhất (lớn nhất)
LS thị trường niêm yết
MD modal (có thể, sẽ)
NN danh từ, số ít (mèo, cây)
NNS danh từ số nhiều (bàn làm việc)
NNP danh từ riêng, số ít (sarah)
NNPS danh từ riêng, số nhiều (người Ấn Độ hoặc người Mỹ)
PDT tiền định sẵn (tất cả, cả hai, một nửa)
POS kết thúc sở hữu (cha mẹ)
PRP đại từ nhân xưng (cô ấy, cô ấy, anh ấy, chính anh ấy)
PRP $ đại từ sở hữu (her, his, mine, my, our)
RB trạng từ (thỉnh thoảng, nhanh chóng)
RBR trạng từ, so sánh (lớn hơn)
RBS trạng từ, so sánh nhất (lớn nhất)
RP hạt (về)
ĐẾN điểm đánh dấu vô hạn (đến)
UH thán từ (tạm biệt)
VB động từ (hỏi)
VBG động từ gerund (đánh giá)
VBD thì quá khứ của động từ (đã cầu xin)
VBN động từ quá khứ phân từ (tái hợp)
VBP động từ, thì hiện tại không phải ngôi thứ 3 số ít (bọc)
VBZ động từ, thì hiện tại với ngôi thứ 3 số ít (căn cứ)
WDT wh-xác định (cái đó, cái gì)
WP wh- đại từ (ai)
WRB wh- trạng từ (như thế nào)

Danh sách thẻ NLTK POS ở trên chứa tất cả các Thẻ NLTK POS. Trình gắn thẻ NLTK POS được sử dụng để gán thông tin ngữ pháp của từng từ trong câu. Cài đặt, nhập và tải xuống tất cả các gói của POS NLTK đã hoàn tất.

Chunking trong NLP là gì?

Chunking trong NLP là một quá trình lấy các phần thông tin nhỏ và nhóm chúng thành các đơn vị lớn. Công dụng chính của Chunking là tạo các nhóm "cụm danh từ". Nó được sử dụng để thêm cấu trúc cho câu bằng cách gắn thẻ POS theo sau kết hợp với biểu thức chính quy. Nhóm từ được kết quả được gọi là "khối". Nó còn được gọi là phân tích cú pháp nông.

Trong phân tích cú pháp nông, có tối đa một cấp độ giữa rễ và lá trong khi phân tích cú pháp sâu bao gồm nhiều cấp độ. Phân tích cú pháp nông còn được gọi là phân tích cú pháp nhẹ hoặc phân tích cú pháp.

Quy tắc cho Chunking:

Không có quy tắc xác định trước, nhưng bạn có thể kết hợp chúng theo nhu cầu và yêu cầu.

Ví dụ, bạn cần gắn thẻ Danh từ, động từ (thì quá khứ), tính từ và dấu nối phối hợp khỏi câu. Bạn có thể sử dụng quy tắc như dưới đây

đoạn: {*** ?}

Bảng sau đây cho thấy ý nghĩa của các biểu tượng khác nhau:

Tên ký hiệu Sự miêu tả
. Bất kỳ ký tự nào ngoại trừ dòng mới
* Khớp với 0 hoặc nhiều lần lặp lại
? Khớp với 0 hoặc 1 lần lặp lại

Bây giờ, hãy để chúng tôi viết mã để hiểu quy tắc tốt hơn

from nltk import pos_tagfrom nltk import RegexpParsertext ="learn php from guru99 and make study easy".split()print("After Split:",text)tokens_tag = pos_tag(text)print("After Token:",tokens_tag)patterns= """mychunk:{***?}"""chunker = RegexpParser(patterns)print("After Regex:",chunker)output = chunker.parse(tokens_tag)print("After Chunking",output)

Đầu ra

After Split: ['learn', 'php', 'from', 'guru99', 'and', 'make', 'study', 'easy']After Token: [('learn', 'JJ'), ('php', 'NN'), ('from', 'IN'), ('guru99', 'NN'), ('and', 'CC'), ('make', 'VB'), ('study', 'NN'), ('easy', 'JJ')]After Regex: chunk.RegexpParser with 1 stages:RegexpChunkParser with 1 rules:***?'>After Chunking (S(mychunk learn/JJ)(mychunk php/NN)from/IN(mychunk guru99/NN and/CC)make/VB(mychunk study/NN easy/JJ))

Kết luận từ ví dụ Python về gắn thẻ Part of Speech ở trên: "make" là một động từ không có trong quy tắc, vì vậy nó không được gắn thẻ là mychunk

Trường hợp sử dụng của Chunking

Chunking được sử dụng để phát hiện thực thể. Thực thể là một phần của câu mà máy nhận giá trị cho bất kỳ ý định nào

Example:Temperature of New York.Here Temperature is the intention and New York is an entity.

Nói cách khác, phân khúc được sử dụng để chọn các tập con của mã thông báo. Vui lòng làm theo đoạn mã dưới đây để hiểu cách phân khúc được sử dụng để chọn mã thông báo. Trong ví dụ này, bạn sẽ thấy biểu đồ tương ứng với một đoạn của cụm danh từ. Chúng tôi sẽ viết mã và vẽ biểu đồ để hiểu rõ hơn.

Mã để chứng minh trường hợp sử dụng

import nltktext = "learn php from guru99"tokens = nltk.word_tokenize(text)print(tokens)tag = nltk.pos_tag(tokens)print(tag)grammar = "NP: {
?*}"cp =nltk.RegexpParser(grammar)result = cp.parse(tag)print(result)result.draw() # It will draw the pattern graphically which can be seen in Noun Phrase chunking

Đầu ra :

['learn', 'php', 'from', 'guru99'] -- These are the tokens[('learn', 'JJ'), ('php', 'NN'), ('from', 'IN'), ('guru99', 'NN')] -- These are the pos_tag(S (NP learn/JJ php/NN) from/IN (NP guru99/NN)) -- Noun Phrase Chunking

Đồ thị

Biểu đồ phân khúc cụm từ danh từ

Từ biểu đồ, chúng ta có thể kết luận rằng "learning" và "guru99" là hai mã thông báo khác nhau nhưng được phân loại là Cụm danh từ trong khi mã thông báo "from" không thuộc Cụm từ danh từ.

Chunking được sử dụng để phân loại các mã thông báo khác nhau thành cùng một đoạn. Kết quả sẽ phụ thuộc vào ngữ pháp đã được chọn. Hơn nữa Chunking NLTK được sử dụng để gắn thẻ các mẫu và khám phá kho ngữ liệu văn bản.

Tóm lược

  • Gắn thẻ POS trong NLTK là một quy trình để đánh dấu các từ ở định dạng văn bản cho một phần cụ thể của bài phát biểu dựa trên định nghĩa và ngữ cảnh của nó.
  • Một số ví dụ gắn thẻ POS NLTK là: CC, CD, EX, JJ, MD, NNP, PDT, PRP $, TO, v.v.
  • Trình gắn thẻ POS được sử dụng để gán thông tin ngữ pháp của từng từ trong câu. Quá trình cài đặt, nhập và tải xuống tất cả các gói phần gắn thẻ Part of Speech với NLTK đã hoàn tất.
  • Chunking trong NLP là một quá trình lấy các mẩu thông tin nhỏ và nhóm chúng thành các đơn vị lớn.
  • Không có quy tắc xác định trước, nhưng bạn có thể kết hợp chúng theo nhu cầu và yêu cầu.
  • Chunking được sử dụng để phát hiện thực thể. Thực thể là một phần của câu mà máy nhận giá trị cho bất kỳ ý định nào
  • Chunking được sử dụng để phân loại các mã thông báo khác nhau thành cùng một đoạn.