Python - Lọc các từ trùng lặp

Nhiều khi, chúng ta có nhu cầu phân tích văn bản chỉ để tìm các từ duy nhất có trong tệp. Vì vậy, chúng ta cần loại bỏ những từ trùng lặp khỏi văn bản. Điều này đạt được bằng cách sử dụng từ mã hóa và thiết lập các chức năng có sẵn trong nltk.

Mà không cần bảo quản đơn hàng

Trong ví dụ dưới đây, đầu tiên chúng ta mã hóa câu thành các từ. Sau đó, chúng tôi áp dụng hàm set () để tạo ra một tập hợp các phần tử duy nhất không có thứ tự. Kết quả có các từ duy nhất không được sắp xếp theo thứ tự.

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

Khi chúng tôi chạy chương trình trên, chúng tôi nhận được kết quả sau:

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

Duy trì Đơn hàng

Để có các từ sau khi loại bỏ các từ trùng lặp nhưng vẫn bảo toàn trật tự của các từ trong câu, chúng ta đọc các từ đó và thêm nó vào danh sách bằng cách nối nó.

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

Khi chúng tôi chạy chương trình trên, chúng tôi nhận được kết quả sau:

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