Cây cấu tử trong Python (NLTK)

Sep 27 2020

Tôi đã tìm thấy mã này ở đây :

# Import required libraries 
import nltk 
nltk.download('punkt') 
nltk.download('averaged_perceptron_tagger') 
from nltk import pos_tag, word_tokenize, RegexpParser 
   
# Example text 
sample_text = "The quick brown fox jumps over the lazy dog"
   
# Find all parts of speech in above sentence 
tagged = pos_tag(word_tokenize(sample_text)) 
   
#Extract all parts of speech from any text 
chunker = RegexpParser(""" 
                       NP: {<DT>?<JJ>*<NN>}    #To extract Noun Phrases 
                       P: {<IN>}               #To extract Prepositions 
                       V: {<V.*>}              #To extract Verbs 
                       PP: {<P> <NP>}          #To extract Prepostional Phrases 
                       VP: {<V> <NP|PP>*}      #To extarct Verb Phrases 
                       """) 
  
# Print all parts of speech in above sentence 
output = chunker.parse(tagged) 
print("After Extracting\n", output) 

Theo tôi hiểu, mã này định nghĩa PP, NP và VP ... Tôi nghi ngờ là các thẻ cú pháp đã được xác định ở đây . Không phải các thẻ đã soạn này được định nghĩa trong NLTK? Đó có phải là điểm? Hơn nữa, trong hàng cuối cùng của chunker {<V> <NP|PP>*}, nó có đang sử dụng NP: {<DT>?<JJ>*<NN>}và PP: {<P> <NP>}?

Trả lời

1 sophros Sep 28 2020 at 14:28

Trong ví dụ, bạn tìm thấy ý tưởng là sử dụng các tên thông thường cho các yếu tố cấu thành cú pháp của câu để tạo ra một chunker - một trình phân tích cú pháp có thể chia nhỏ các câu theo mức độ mong muốn của các phần khá thô. Cách tiếp cận đơn giản (istic?) Này được sử dụng ủng hộ phân tích cú pháp đầy đủ - yêu cầu chia nhỏ các cách phát âm xuống cấp độ từ và gắn nhãn từng từ với chức năng thích hợp trong câu.

Ngữ pháp được xác định trong tham số của RegexParsersẽ được chọn tùy ý tùy thuộc vào nhu cầu (và cấu trúc của các phát ngôn mà nó được áp dụng). Các quy tắc này có thể được lặp lại - chúng tương ứng với các quy tắc trong ngữ pháp chính thức của BNF . Quan sát của bạn sau đó là hợp lệ - quy tắc cuối cùng VPđề cập đến các quy tắc đã xác định trước đó.