1
votes

scikit-surprise: python ne trouve pas le module même si pip le répertorie comme installé

J'essaye d'utiliser le module scikit-surprise pour construire un système de recommandation mais j'ai une erreur en le faisant compiler.

Je reçois l'erreur ImportError: Impossible d'importer le nom "Reader" erreur

Ma classe est la suivante

import pandas as pd
from surprise import Reader, Dataset

userReviewsFilePath ="UserReviewsFirst5000WithHeadings.csv"
ratings = pd.read_csv(userReviewsFilePath) # reading data in pandas df

ratings_dict = {'recipeID': list(ratings.recipeID),
                'rating': list(ratings.rating),
                'userID': list(ratings.userID)}
df = pd.DataFrame(ratings_dict)

reader = Reader(rating_scale=(1, 5))

data = Dataset.load_from_df(df[['recipeID', 'rating', 'userID']], reader)

pip show indique que la version 1.0. 6 est installé


1 commentaires

Avez-vous essayé d'installer / réinstaller correctement scikit-surprise? Si vous êtes un utilisateur de Windows, essayez: conda install -c conda-forge scikit-surprise , vous trouverez plus d'informations ici


3 Réponses :


0
votes

Je pense que c'est dans surprise.reader : https: //surprise.readthedocs.io/en/stable/reader.html

Votre code doit lire:

from surprise.reader import Reader
from surprise.dataset import Dataset

Modifier : J'ai vérifié à nouveau les instructions qui semblent contredire cela, et je donne votre code d'origine comme exemple correct. https://surprise.readthedocs.io/en/stable/getting_started. html # Getting-started

Alors peut-être qu'ils ajoutent leurs propres raccourcis? Quoi qu'il en soit, il semble que ce ne soit pas la bonne solution, désolé. (À moins que cela ne fonctionne, auquel cas leurs instructions pourraient être obsolètes.)

Edit 2: Ils font un alias, donc "from surprise import Reader" devrait effectivement fonctionner: https://github.com/NicolasHug/Surprise/blob/master/surprise/ init .py # L19


2 commentaires

Je l'ai changé en "à partir du lecteur d'importation surprise, ensemble de données" mais je reçois toujours l'erreur "ImportError: Impossible d'importer le nom" lecteur ""


J'ai apporté les modifications au code et j'ai reçu le ModuleNotFoundError: Aucun module nommé «surpris.reader»; 'surprise' n'est pas un paquet



-1
votes

Je pense que vous devez faire

de surprise.reader import Reader


0 commentaires

2
votes

Je pense que votre problème vient de l'installation ... J'ai installé "surprise" et passé votre code et cela a fonctionné:

which pip

out:

<class 'surprise.reader.Reader'>


8 commentaires

Avez-vous installé surprise ou scikit-surprise?


J'ai installé la surprise. Je vais vérifier avec scikit-surprise.


J'ai désinstallé puis réinstallé scikit-surprise et surprise par eux-mêmes, et l'erreur est toujours là. Il apparaît également lors de l'exécution du petit extrait de code que vous avez laissé en haut de votre commentaire


Avez-vous vérifié sur quelle version de python il est installé?


Je n'ai que le python 3.6.7 installé sur mon ordinateur


Je suis sur python 3.7.2. Essayez avec cette version. J'essaierai avec 3.6.7.


continuons cette discussion dans le chat


Salut @ArjunLotay, Avez-vous réussi à résoudre le problème? Je semble être confronté exactement au même problème.