code: def get_movielens_item_metadata(use_item_ids):
      """
      Build a matrix of genre features (no_items, no_features).
  
      If use_item_ids is True, per-item features will also be used.
      """
  
      features = {}
      genre_set = set()
  
      for line in _get_movie_raw_metadata():
          if not line:
              continue
  
          splt = line.split("|")
          item_id = int(splt[0])
  
          genres = [
              idx
              for idx, val in zip(range(len(splt[5:])), splt[5:])
              if int(val) > 0
          ]
  
          if use_item_ids:
              # Add item-specific features too
              genres.append(item_id)
  
          for genre_id in genres:
              genre_set.add(genre_id)
  
          features[item_id] = genres
  
      mat = sp.lil_matrix(
          (len(features) + 1, len(genre_set)), dtype=np.int32
      )
  
      for item_id, genre_ids in features.items():
          for genre_id in genre_ids:
              mat[item_id, genre_id] = 1
  
      return mat
  
file_path: lightfm/examples/movielens/data.py
imports: import itertools
  import os
  import zipfile
  import numpy
  import requests
  import scipy.sparse
label_desc: Use image node_id 7 for calling a global function with example usage: get_movielens_item_metadata(use_item_ids) and returns: mat