Skip to content

Latest commit

 

History

History
136 lines (135 loc) · 4.18 KB

File metadata and controls

136 lines (135 loc) · 4.18 KB

SparseMatrixRecommender work plan

Introduction

  • This org-mode file has a work plan list and a unit test list that correspond (and hopefully reflect) the development of the Python package SparseMatrixRecommender.

Work plan [33%] [3/9]

Object structure

  • [X] Sparse matrices
    • A dictionary of SSparseMatrix objects.
  • [X] Recommender matrix
  • [X] Tag type weights
  • [X] Pipeline value

Core functionalities [66%] [4/6]

Getters [100%] [4/4]

  • [X] Sparse matrices
  • [X] Recommender matrix
  • [X] Tag type weights
  • [X] Pipeline value

Setters [100%] [4/4]

  • [X] Sparse matrices
  • [X] Recommender matrix
  • [X] Tag type weights
  • [X] Pipeline value

Check inputs [100%] [2/2]

  • [X] Verify dictionary of tags
  • [X] Verify dictionary of items

Sub-matrix retrieval

  • [X] By accessing object’s dictionary of matrices
  • [C] By taking (main-)matrix columns

Recommend by profile [75%] [3/4]

  • The first non-trivial operation to make
  • [X] List profile
  • [X] Dictionary profile
  • [ ] SSparseMatrix profile
  • [X] Normalization of results

Recommend by history [75%] [3/4]

  • [X] List history
  • [X] Dictionary history
  • [ ] SSparseMatrix history
  • [X] Normalization of results

Creation functions [100%] [3/3]

Main pipeline creation functions [100%] [3/3]

  • [X] From matrices
  • [X] From data frame in long form
  • [X] From data frame in wide form

Cross tabulation [100%] [3/3]

  • Cross tabulation of data frames into SSparseMatrix objects.
  • [X] Two columns
  • [X] Three columns
  • [X] Dictionary of SSparseMatrix objects
    • For specs that have
      • index
      • list of columns (tag types)
      • values

Categorization of numerical values

  • [X] Specified breaks
  • [X] Quantiles

LSI functions [75%] [3/4]

Global LSI functions [75%] [3/4]

  • [X] IDF
  • [X] GF-IDF
  • [X] Column sum
  • [ ] Entropy

Local LSI functions [100%] [4/4]

  • [X] Binary
  • [X] Log
  • [X] Frequency
  • [X] Row sum

Normalizer LSI functions [100%] [3/3]

  • [X] Cosine
  • [X] Row sum
  • [X] Abs max

LSI functions application

  • [X] Global weights calculation function (separate)
  • [X] Main sequence of steps

Representation [66%] [4/6]

  • [X] __str__
  • [X] __repr__
  • [X] To dictionary form
  • [X] From dictionary form
  • [ ] to_wl stub

Second wave functions [20%] [1/5]

  • [X] Classify by profile
    • [X] Program
    • [X] Test
  • [X] Filter matrix
  • [X] Retrieve by profile with search engine specs
    • I.e. having the specs: should, must, must_not
  • [ ] Average row per segment
  • [ ] Top-K statistics facilitation

Third wave functions (extra) [100%] [1/1]

  • [X] Metadata recommender derivation / conversion
    • [X] Using matrix multiplication
    • [C] Using queries over the long form representation of the recommender matrix

Recommender algebra [0%] [0/5]

  • [X] Remove tag types
  • [ ] Row binding with a matrix
  • [X] Column binding with a matrix
  • [X] Join across with another recommender
    • Concatenate horizontally
    • (Column binding)
  • [ ] Join with another recommender
    • Stack vertically
    • (Row binding)

Composite design pattern application [%] [/]

Composite of recommenders

  • [ ] Composite class
  • [ ] Composite operation

Chain of responsibility recommender

  • [ ] Composite class
  • [ ] Composite operation

Combined SMR and LSA objects

  • [ ] Composite class
  • [ ] Composite operation

Unit tests [83%] [5/6]

  • The unit tests (so far) are made with small matrices in order to make easier visual verification (by humans.)

Basic functionalities [100%] [3/3]

  • [X] Creation
  • [X] Recommend by profile
  • [X] Recommend by history

Creation

Representation

Classification by profile

Metadata recommender creation

Recommender algebra

Documentation [%50] [1/3]

Usage messages

  • Usage message for each method.

Diagrams

  • [X] SMR workflows diagram (reused)
  • [X] SMR pipeline diagram for the Python class.

First version

Advanced use cases