7

Tôi đã đọc về TfidfVectorizer implementation của scikit-học, tôi đừng hiểu cứu xem lỗi gì đầu ra của phương pháp này, ví dụ:TikidfVectorizer có nghĩa là gì?

new_docs = ['He watches basketball and baseball', 'Julie likes to play basketball', 'Jane loves to play baseball'] 
new_term_freq_matrix = tfidf_vectorizer.transform(new_docs) 
print tfidf_vectorizer.vocabulary_ 
print new_term_freq_matrix.todense() 

đầu ra:

{u'me': 8, u'basketball': 1, u'julie': 4, u'baseball': 0, u'likes': 5, u'loves': 7, u'jane': 3, u'linda': 6, u'more': 9, u'than': 10, u'he': 2} 
[[ 0.57735027 0.57735027 0.57735027 0.   0.   0.   0. 
    0.   0.   0.   0.  ] 
[ 0.   0.68091856 0.   0.   0.51785612 0.51785612 
    0.   0.   0.   0.   0.  ] 
[ 0.62276601 0.   0.   0.62276601 0.   0.   0. 
    0.4736296 0.   0.   0.  ]] 

là gì (? ví dụ: u'me ': 8):

{u'me': 8, u'basketball': 1, u'julie': 4, u'baseball': 0, u'likes': 5, u'loves': 7, u'jane': 3, u'linda': 6, u'more': 9, u'than': 10, u'he': 2} 

là này một ma trận hay chỉ là một vector ?, tôi không thể hiểu được cứu xem lỗi gì nói với tôi kết quả:

[[ 0.57735027 0.57735027 0.57735027 0.   0.   0.   0. 
    0.   0.   0.   0.  ] 
[ 0.   0.68091856 0.   0.   0.51785612 0.51785612 
    0.   0.   0.   0.   0.  ] 
[ 0.62276601 0.   0.   0.62276601 0.   0.   0. 
    0.4736296 0.   0.   0.  ]] 

Ai có thể giải thích cho tôi chi tiết hơn về các đầu ra này không?

Cảm ơn!

Trả lời

7

TfidfVectorizer - Chuyển văn bản thành vectơ nổi bật có thể được sử dụng làm đầu vào cho bộ ước tính.

vocabulary_ Là từ điển chuyển đổi từng mã thông báo (từ) thành chỉ mục tính năng trong ma trận, mỗi mã thông báo duy nhất sẽ có chỉ mục tính năng.

là gì? (Ví dụ .: u'me ': 8)

Nó nói với bạn rằng token 'tôi' được biểu diễn dưới dạng tính năng số 8 trong ma trận đầu ra.

đây có phải là ma trận hay chỉ là vectơ?

Mỗi câu là một vectơ, các câu bạn đã nhập là ma trận có 3 vectơ. Trong mỗi vectơ các số (trọng số) đại diện cho các điểm tf-idf. Ví dụ: 'julie': 4 -> Cho bạn biết rằng trong mỗi câu 'Julie' xuất hiện, bạn sẽ có trọng số khác không (tf-idf). Như bạn có thể nhìn thấy trong vector 2'nd:

[0. 0,68091856 0. 0. 0,51785612 0,51785612 0. 0. 0. 0. 0.]

Yếu tố 5'th ghi 0,51785612 - các điểm tf-idf cho 'Julie'. Để biết thêm thông tin về điểm số Tf-Idf đã đọc tại đây: http://en.wikipedia.org/wiki/Tf%E2%80%93idf

+0

thông số u ở đầu ra là gì? Sử dụng một bản tải về mới của Anaconda/Scikit và nó không hiển thị. Bây giờ nó không được hiển thị trong đầu ra? – BluePython

+0

FYI - đó là sự khác biệt giữa unicode hay không (được chỉ định trên các phiên bản trước Python 3). – BluePython

0

Vì vậy, tf-idf tạo tập hợp từ vựng riêng của mình từ toàn bộ bộ tài liệu. Được nhìn thấy trong dòng đầu tiên của đầu ra. (để hiểu rõ hơn, tôi đã sắp xếp nó)

{u'baseball': 0, u'basketball': 1, u'he': 2, u'jane': 3, u'julie': 4, u'likes': 5, u'linda': 6, u'loves': 7, u'me': 8, u'more': 9, u'than': 10, } 

Và khi tài liệu được phân tích cú pháp để lấy mã tf-idf. Tài liệu:

Ông xem bóng rổ và bóng chày

và sản lượng của nó,

[0,57735027 0,57735027 0,57735027 0. 0. 0. 0. 0. 0. 0. 0.]

tương đương với,

[bóng chày bóng rổ ông jane julie thích linda yêu cháu hơn]

Kể từ tài liệu của chúng tôi chỉ có những lời này: bóng chày, bóng rổ, anh, từ tạo từ vựng. Đầu ra vectơ tài liệu có các giá trị của tf-idf chỉ cho ba từ này và trong cùng một vị trí từ vựng được sắp xếp.

tf-idf được sử dụng để phân loại tài liệu, xếp hạng trong công cụ tìm kiếm. tf: tần số kỳ hạn (số từ có trong tài liệu từ từ vựng của chính nó), idf: tần số tài liệu nghịch đảo (tầm quan trọng của từ đối với mỗi tài liệu).