class_docstr: Code for reading current MovieLens data sets, including ML-20M, ML-Latest, and
  ML-Latest-Small.
  
  Parameters:
      path(str or pathlib.Path): Path to the directory containing the data set.
class_docstr_tok: ["Code","for","reading","current","MovieLens","data","sets",",","including","ML-20M",",","ML-Latest",",","and","ML-Latest-Small",".","Parameters",":","path","(","str","or","pathlib.Path",")",":","Path","to","the","directory","containing","the","data","set","."]
docstr: The tag application table, recording user-supplied tags for movies.
  
  
  >>> mlsmall = MovieLens('data/ml-latest-small')
  >>> mlsmall.tags
        user  ...   timestamp
  0       15  ...  1138537770
  1       15  ...  1193435061
  2       15  ...  1170560997
  3       15  ...  1170626366
  4       15  ...  1141391765
  ...
  [1296 rows x 4 columns]
docstr_tok: ["The","tag","application","table",",","recording","user-supplied","tags","for","movies",".",">",">",">","mlsmall","=","MovieLens","(","'data\/ml-latest-small","'",")",">",">",">","mlsmall.tags","user","...","timestamp","0","15","...","1138537770","1","15","...","1193435061","2","15","...","1170560997","3","15","...","1170626366","4","15","...","1141391765","...","[","1296","rows","x","4","columns","]"]
code: def tags(self):
      """
      The tag application table, recording user-supplied tags for movies.
  
  
      >>> mlsmall = MovieLens('data/ml-latest-small')
      >>> mlsmall.tags
            user  ...   timestamp
      0       15  ...  1138537770
      1       15  ...  1193435061
      2       15  ...  1170560997
      3       15  ...  1170626366
      4       15  ...  1141391765
      ...
      [1296 rows x 4 columns]
      """
  
      fn = self.path / "tags.csv"
      tags = pd.read_csv(
          fn,
          dtype={
              "movieId": np.int32,
              "userId": np.int32,
              "tag": object,
              "timestamp": np.int32,
          },
      )
      tags.rename(
          columns={"userId": "user", "movieId": "item"}, inplace=True
      )
      _log.debug(
          "loaded %s, takes %d bytes", fn, tags.memory_usage().sum()
      )
      return tags
  
imports: import os.path
  from pathlib import Path
  import logging
  import pandas
  import numpy
  from lenskit.util import cached
label_desc: Use image node_id 5 for calling the MovieLens obj's underlying member method code with example usage: obj.tags() and returns: tags