Computer >> Máy Tính >  >> Lập trình >> Python

Cách lấy từ đồng nghĩa / trái nghĩa từ Mạng từ NLTK bằng Python

Mạng từ là một phần của Bộ công cụ ngôn ngữ tự nhiên của Python. Nó là một cơ sở dữ liệu từ lớn về Danh từ, Tính từ, Trạng từ và Động từ trong tiếng Anh. Chúng được nhóm lại thành một số từ đồng nghĩa nhận thức, được gọi là tập hợp mã .

Để sử dụng Wordnet, trước tiên chúng ta phải cài đặt mô-đun NLTK, sau đó tải xuống gói WordNet.

 $ sudo pip3 install nltk $ python3>>> import nltk>>> nltk.download ('wordnet') 

Trong mạng từ, có một số nhóm từ có nghĩa giống nhau.

Trong ví dụ đầu tiên, chúng ta sẽ xem cách wordnet trả về nghĩa và các chi tiết khác của một từ. Đôi khi, nếu một số ví dụ có sẵn, nó cũng có thể cung cấp điều đó.

Mã mẫu

 from nltk.corpus import wordnet #Import wordnet from the NLTKsynset =wordnet.synsets ("Travel") print ('Word and Type:' + synset [0] .name ()) print ('Từ đồng nghĩa của Travel là:'+ synset [0] .lemmas () [0] .name ()) print (' Ý nghĩa của từ:'+ synset [0] .definition ()) print (' Ví dụ về Travel:'+ str (synset [0] .examples ())) 

Đầu ra

 $ python3 322a.word_info.pyWord and Type:travel.n.01 Từ vựng của Travel là:du lịch Ý nghĩa của từ:hành động đi từ nơi này đến nơi khácVí dụ về Du lịch:['anh ấy rất thích bán hàng nhưng anh ấy ghét đi du lịch '] $ 

Trong ví dụ trước, chúng ta đang nhận được thông tin chi tiết về một số từ. Ở đây chúng ta sẽ xem cách wordnet có thể gửi các từ đồng nghĩa và trái nghĩa của một từ nhất định.

Mã mẫu

 import nltkfrom nltk.corpus import wordnet # Nhập wordnet từ NLTKsyn =list () ant =list () cho synset trong wordnet.synsets ("Tồi tệ hơn"):cho bổ đề trong synset.lemmas ():syn.append ( lemma.name ()) # thêm các từ đồng nghĩa nếu bổ đề.antonyms ():# Khi có các từ trái nghĩa, hãy thêm chúng vào danh sách ant.append (bổ đề.antonyms () [0] .name ()) print ('Từ đồng nghĩa:'+ str (syn)) print (' Từ trái nghĩa:'+ str (ant)) 

Đầu ra

> ',' hư hỏng ',' hư hỏng ',' tiếc nuối ',' xin lỗi ',' tồi tệ ',' tồi tệ ',' không thể thu thập được ',' tồi tệ ',' tồi tệ ',' tồi tệ ',' rủi ro ',' rủi ro cao “ tốt hơn ',' tốt hơn ',' tốt ',' không tiếc lời '] $

NLTK wordnet có một tính năng tuyệt vời khác, bằng cách sử dụng nó, chúng ta có thể kiểm tra xem hai từ có gần bằng nhau hay không. Nó sẽ trả về tỷ lệ tương tự từ một cặp từ.

Mã mẫu

 nhập nltkfrom nltk.corpus nhập wordnet # Nhập wordnet từ NLTKfirst_word =wordnet.synset ("Travel.v.01") second_word =wordnet.synset ("Walk.v.01") print ('Tương tự:' + str (first_word.wup_similarity (second_word))) first_word =wordnet.synset ("Good.n.01") second_word =wordnet.synset ("zebra.n.01") print ('Tương tự:' + str (first_word.wup_similarity (second_word))) 

Đầu ra

 $ python3 322c.compare.pySimilarity:0.6666666666666666Cimilarity:0.09090909090909091 $