Python - กรองคำที่ซ้ำกัน

หลายครั้งเราจำเป็นต้องวิเคราะห์ข้อความสำหรับคำเฉพาะที่มีอยู่ในไฟล์เท่านั้น ดังนั้นเราจำเป็นต้องกำจัดคำที่ซ้ำกันออกจากข้อความ สิ่งนี้ทำได้โดยใช้คำว่า tokenization และตั้งค่าฟังก์ชันที่มีอยู่ใน nltk

โดยไม่รักษาคำสั่ง

ในตัวอย่างด้านล่างเราจะโทเค็นประโยคเป็นคำก่อน จากนั้นเราจะใช้ฟังก์ชัน set () ซึ่งสร้างคอลเล็กชันองค์ประกอบที่ไม่ซ้ำกันแบบไม่เรียงลำดับ ผลลัพธ์มีคำที่ไม่ซ้ำกันซึ่งไม่ได้เรียงลำดับ

import nltk
word_data = "The Sky is blue also the ocean is blue also Rainbow has a blue colour." 
# First Word tokenization
nltk_tokens = nltk.word_tokenize(word_data)
# Applying Set
no_order = list(set(nltk_tokens))
print no_order

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

['blue', 'Rainbow', 'is', 'Sky', 'colour', 'ocean', 'also', 'a', '.', 'The', 'has', 'the']

การรักษาการสั่งซื้อ

ในการรับคำหลังจากลบคำที่ซ้ำกัน แต่ยังคงรักษาลำดับของคำในประโยคเราอ่านคำและเพิ่มลงในรายการโดยการต่อท้าย

import nltk
word_data = "The Sky is blue also the ocean is blue also Rainbow has a blue colour." 
# First Word tokenization
nltk_tokens = nltk.word_tokenize(word_data)
ordered_tokens = set()
result = []
for word in nltk_tokens:
    if word not in ordered_tokens:
        ordered_tokens.add(word)
        result.append(word)
     
print result

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

['The', 'Sky', 'is', 'blue', 'also', 'the', 'ocean', 'Rainbow', 'has', 'a', 'colour', '.']