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é
3 Réponses :
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
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
Je pense que vous devez faire
de surprise.reader import Reader
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'>
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.
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