Giá trị mặc định cho min_df và max_df là 1 và 1,0, tương ứng. Những mặc định này thực sự không làm gì cả.
Điều đó đang được nói, tôi tin rằng câu trả lời hiện được chấp nhận bởi câu trả lời @Ffisegydd là không hoàn toàn chính xác.
Ví dụ, chạy này bằng cách sử dụng giá trị mặc định, để thấy rằng khi min_df=1
và max_df=1.0
, sau đó
1) tất cả các thẻ xuất hiện trong ít nhất một tài liệu được sử dụng (ví dụ, tất cả các thẻ!)
2) tất cả các thẻ xuất hiện trong tất cả các tài liệu được sử dụng (chúng tôi sẽ kiểm tra với một ứng cử viên: ở khắp mọi nơi).
cv = CountVectorizer(min_df=1, max_df=1.0, lowercase=True)
# here is just a simple list of 3 documents.
corpus = ['one two three everywhere', 'four five six everywhere', 'seven eight nine everywhere']
# below we call fit_transform on the corpus and get the feature names.
X = cv.fit_transform(corpus)
vocab = cv.get_feature_names()
print vocab
print X.toarray()
print cv.stop_words_
Chúng tôi nhận được:
[u'eight', u'everywhere', u'five', u'four', u'nine', u'one', u'seven', u'six', u'three', u'two']
[[0 1 0 0 0 1 0 0 1 1]
[0 1 1 1 0 0 0 1 0 0]
[1 1 0 0 1 0 1 0 0 0]]
set([])
Tất cả các thẻ đang lưu giữ. Không có từ dừng.
Làm rối tung thêm các đối số sẽ làm rõ các cấu hình khác.
Để biết niềm vui và thông tin chi tiết, tôi cũng khuyên bạn nên chơi xung quanh với stop_words = 'english'
và thấy điều đó, đặc biệt, tất cả các từ ngoại trừ 'bảy' đều bị xóa! Bao gồm cả 'ở khắp mọi nơi'.
Điều này gây nhầm lẫn. Tài liệu cho 'min_df' nói 'bỏ qua các cụm từ có tần suất tài liệu ** thấp hơn ** so với ngưỡng đã cho.' Vì vậy, tần suất nghiêm ngặt thấp hơn giá trị mặc định của 1 sẽ có nghĩa là bỏ qua các cụm từ không bao giờ xuất hiện (!) Nhưng giữ các cụm từ xuất hiện một lần. –
@MonicaHeddneck là chính xác. Câu trả lời này giải thích sai ý nghĩa chính xác của 'min_df' và' max_df'. Tôi đã thêm một câu trả lời giải thích chính xác cách các tham số này được diễn giải bởi CountVectorizer. –