Tôi đang tìm kiếm một mô-đun trong sklearn cho phép bạn lấy được ma trận đồng thời từ từ. Tôi có thể nhận được ma trận thuật ngữ tài liệu nhưng không chắc chắn làm thế nào để đi về việc có được một ma trận word-word của sự xuất hiện đồng thời.ma trận xuất hiện từ đồng nghĩa
Trả lời
Bạn có thể sử dụng tham số ngram_range
trong ví dụ CountVectorizer
hoặc TfidfVectorizer
Code:
bigram_vectorizer = CountVectorizer(ngram_range=(2, 2)) # by saying 2,2 you are telling you only want pairs of 2 words
Trong trường hợp bạn muốn một cách rõ ràng nói trước với các đồng lần xuất hiện của từ bạn muốn để đếm, sử dụng vocabulary
param, tức là: vocabulary = {'awesome unicorns':0, 'batman forever':1}
Tự giải thích và sẵn sàng sử dụng mã với các từ đồng nghĩa được xác định trước. Trong trường hợp này chúng tôi đang theo dõi cho đồng xuất hiện của awesome unicorns
và batman forever
:
from sklearn.feature_extraction.text import CountVectorizer
import numpy as np
samples = ['awesome unicorns are awesome','batman forever and ever','I love batman forever']
bigram_vectorizer = CountVectorizer(ngram_range=(1, 2), vocabulary = {'awesome unicorns':0, 'batman forever':1})
co_occurrences = bigram_vectorizer.fit_transform(samples)
print 'Printing sparse matrix:', co_occurrences
print 'Printing dense matrix (cols are vocabulary keys 0-> "awesome unicorns", 1-> "batman forever")', co_occurrences.todense()
sum_occ = np.sum(co_occurrences.todense(),axis=0)
print 'Sum of word-word occurrences:', sum_occ
print 'Pretty printig of co_occurrences count:', zip(bigram_vectorizer.get_feature_names(),np.array(sum_occ)[0].tolist())
đầu ra cuối cùng là ('awesome unicorns', 1), ('batman forever', 2)
, tương ứng một cách chính xác để samples
dữ liệu cung cấp của chúng tôi.
Đây là giải pháp mẫu của tôi bằng cách sử dụng CountVectorizer
khi tìm hiểu. Và đề cập đến điều này post, bạn chỉ có thể sử dụng phép nhân ma trận để có được ma trận co-occurrence word-word.
from sklearn.feature_extraction.text import CountVectorizer
docs = ['this this this book',
'this cat good',
'cat good shit']
count_model = CountVectorizer(ngram_range=(1,1)) # default unigram model
X = count_model.fit_transform(docs)
Xc = (X.T * X) # this is co-occurrence matrix in sparse csr format
Xc.setdiag(0) # sometimes you want to fill same word cooccurence to 0
print(Xc.todense()) # print out matrix in dense format
Bạn cũng có thể tham khảo từ điển các từ trong count_model
,
count_model.vocabulary_
Hoặc, nếu bạn muốn bình thường hóa bởi thành phần đường chéo (gọi để trả lời ở bài trước).
import scipy.sparse as sp
Xc = (X.T * X)
g = sp.diags(1./Xc.diagonal())
Xc_norm = g * XC# normalized co-occurence matrix
- 1. Ma trận xuất trong r
- 2. Trích xuất biến đổi và ma trận xoay từ homography?
- 3. Cách trích xuất Google Từ đồng nghĩa
- 4. Tính ma trận chuyển đổi 2D từ ma trận 2D ban đầu và kết quả
- 5. Trích xuất giá trị cột ma trận theo tên cột ma trận
- 6. Tạo một ma trận kề ma trận
- 7. Phép nhân ma trận chuỗi ma trận
- 8. Lấy ma trận ModelView hiện tại
- 9. Ma trận của Ma trận trong Perl
- 10. Xây dựng ma trận đồng thời trong gấu trúc trăn
- 11. Hiện vật cấu hình ma trận Jenkins
- 12. Tạo ma trận đường chéo thưa từ hàng của ma trận thưa thớt
- 13. Ma trận biến đổi ma trận bù đắp
- 14. Ma trận chiếu ma trận trong Xna/OpenGL - 3D
- 15. Ma trận ** 2 có nghĩa là gì trong python/numpy?
- 16. Định hình lại ma trận 3d thành ma trận 2d
- 17. ma trận cơ bản khác nhau từ các ma trận chiếu cùng
- 18. Khối ma trận đường chéo từ cột
- 19. Cách tính góc từ ma trận xoay
- 20. Tính góc từ ma trận biến đổi
- 21. ma trận dịch ma trận không dịch vector
- 22. mâu thuẫn với phép toán ma trận giữa GLSL và GLM hoặc có ma trận ma trận "xấu"
- 23. chuyển đổi giữa ma trận OpenCV và ma trận int
- 24. Thuật toán đếm số lần xuất hiện của ma trận bên trong một lớn hơn
- 25. Tại sao "..." xuất hiện trong câu trả lời của tôi về ma trận trong Prolog
- 26. Làm cách nào để truy xuất cột ma trận và tên hàng theo giá trị chỉ mục ma trận?
- 27. Tạo ma trận co-occurrence
- 28. Cách đúng để trích xuất Bản dịch từ Ma trận cơ bản qua SVD
- 29. Đảo ngược ma trận lớn
- 30. Vận chuyển Ma trận thưa thớt từ Python sang R
Bạn có thể thêm một số dữ liệu và nỗ lực của bạn để giải quyết vấn đề không? – Cleb