From 3abfdaa254a593fa6eb82dc472ef9fbd05714516 Mon Sep 17 00:00:00 2001 From: Quentin Haenn <83473151+quentinhaenn@users.noreply.github.com> Date: Fri, 5 Jul 2024 20:27:30 +0200 Subject: [PATCH] Fix scipy '.A' alias being deprecated (#631) * Fix issue #628 with '.A' stuff on csr_matrix * Modifying requirements.txt for numpy and another .A --------- Co-authored-by: tqtg <tuantq.vnu@gmail.com> --- cornac/data/text.py | 6 ++++-- cornac/models/knn/recom_knn.py | 8 ++++---- requirements.txt | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/cornac/data/text.py b/cornac/data/text.py index bd0178bb..8545206c 100644 --- a/cornac/data/text.py +++ b/cornac/data/text.py @@ -951,7 +951,7 @@ class TextModality(FeatureModality): if binary: bow_mat.data.fill(1) - return bow_mat if keep_sparse else bow_mat.A + return bow_mat if keep_sparse else bow_mat.toarray() def batch_tfidf(self, batch_ids, keep_sparse=False): """Return matrix of TF-IDF features corresponding to provided batch_ids @@ -972,7 +972,8 @@ class TextModality(FeatureModality): """ tfidf_mat = self.tfidf_matrix[batch_ids] - return tfidf_mat if keep_sparse else tfidf_mat.A + return tfidf_mat if keep_sparse else tfidf_mat.toarray() + class ReviewModality(TextModality): """Review modality @@ -1034,6 +1035,7 @@ class ReviewModality(TextModality): Apply sublinear tf scaling, i.e. replace tf with 1 + log(tf). """ + def __init__(self, data: List[tuple] = None, group_by: str = None, diff --git a/cornac/models/knn/recom_knn.py b/cornac/models/knn/recom_knn.py index 5db7575b..9ba17214 100644 --- a/cornac/models/knn/recom_knn.py +++ b/cornac/models/knn/recom_knn.py @@ -239,7 +239,7 @@ class UserKNN(Recommender): if item_idx is not None: weighted_avg = compute_score_single( True, - self.sim_mat[user_idx].A.ravel(), + self.sim_mat[user_idx].toarray().ravel(), self.iu_mat.indptr[item_idx], self.iu_mat.indptr[item_idx + 1], self.iu_mat.indices, @@ -251,7 +251,7 @@ class UserKNN(Recommender): weighted_avg = np.zeros(self.num_items) compute_score( True, - self.sim_mat[user_idx].A.ravel(), + self.sim_mat[user_idx].toarray().ravel(), self.iu_mat.indptr, self.iu_mat.indices, self.iu_mat.data, @@ -412,7 +412,7 @@ class ItemKNN(Recommender): if item_idx is not None: weighted_avg = compute_score_single( False, - self.ui_mat[user_idx].A.ravel(), + self.ui_mat[user_idx].toarray().ravel(), self.sim_mat.indptr[item_idx], self.sim_mat.indptr[item_idx + 1], self.sim_mat.indices, @@ -424,7 +424,7 @@ class ItemKNN(Recommender): weighted_avg = np.zeros(self.num_items) compute_score( False, - self.ui_mat[user_idx].A.ravel(), + self.ui_mat[user_idx].toarray().ravel(), self.sim_mat.indptr, self.sim_mat.indices, self.sim_mat.data, diff --git a/requirements.txt b/requirements.txt index de4ae4d0..8a01f803 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -numpy +numpy<2.0 scipy Cython tqdm -- GitLab