Python - คำพ้องความหมายและคำตรงข้าม

คำพ้องความหมายและคำตรงข้ามมีให้เป็นส่วนหนึ่งของ wordnet ซึ่งเป็นฐานข้อมูลคำศัพท์สำหรับภาษาอังกฤษ สามารถใช้ได้เป็นส่วนหนึ่งของการเข้าถึง nltk corpora ใน wordnet คำพ้องความหมายคือคำที่แสดงถึงแนวคิดเดียวกันและใช้แทนกันได้ในหลายบริบทเพื่อให้ถูกจัดกลุ่มเป็นชุดที่ไม่เรียงลำดับ (synsets) เราใช้ synsets เหล่านี้เพื่อสร้างคำพ้องความหมายและคำตรงข้ามตามที่แสดงในโปรแกรมด้านล่าง

from nltk.corpus import wordnet
synonyms = []
for syn in wordnet.synsets("Soil"):
    for lm in syn.lemmas():
             synonyms.append(lm.name())
print (set(synonyms))

เมื่อเรารันโปรแกรมข้างต้นเราจะได้ผลลัพธ์ดังต่อไปนี้ -

set([grease', filth', dirt', begrime', soil', 
grime', land', bemire', dirty', grunge', 
stain', territory', colly', ground'])

เพื่อให้ได้คำตรงข้ามเราเพียงแค่ใช้ฟังก์ชันตรงข้าม

from nltk.corpus import wordnet
antonyms = []
for syn in wordnet.synsets("ahead"):
    for lm in syn.lemmas():
        if lm.antonyms():
            antonyms.append(lm.antonyms()[0].name())
print(set(antonyms))

เมื่อเรารันโปรแกรมข้างต้นเราจะได้ผลลัพธ์ดังต่อไปนี้ -

set([backward', back'])