code: def get_movielens_100k(min_positive_score=4, negative_value=0):
      movielens_100k_dict = datasets.fetch_movielens(
          indicator_features=True, genre_features=True
      )
  
      def flip_ratings(ratings_matrix):
          ratings_matrix.data = np.array(
              [
                  1 if rating >= min_positive_score else negative_value
                  for rating in ratings_matrix.data
              ]
          )
          return ratings_matrix
  
      test_interactions = flip_ratings(movielens_100k_dict["test"])
      train_interactions = flip_ratings(movielens_100k_dict["train"])
  
      # Create indicator features for all users
      num_users = train_interactions.shape[0]
      user_features = sp.identity(num_users)
  
      # Movie titles
      titles = movielens_100k_dict["item_labels"]
  
      return (
          train_interactions,
          test_interactions,
          user_features,
          movielens_100k_dict["item_features"],
          titles,
      )
  
imports: from io import BytesIO
  import os
  import requests
  from zipfile import ZipFile
  import numpy
  import scipy.sparse
  from sklearn.base import TransformerMixin
  from sklearn.feature_extraction.text import CountVectorizer
  from sklearn.pipeline import Pipeline, FeatureUnion
  from sklearn.preprocessing import LabelBinarizer
  from lightfm import datasets
label_desc: Use image node_id 5 for calling a global function with example usage: get_movielens_100k(min_positive_score, negative_value) and returns: train_interactions,  test_interactions,  user_features,  movielens_100k_dict,  titles, ratings_matrix