Started to restore clusters based recommendation engine

This commit is contained in:
emeric
2020-02-15 15:52:39 +01:00
parent 7f05a1d4e6
commit d1bdaf6203
26 changed files with 326 additions and 177 deletions
@@ -32,6 +32,7 @@
#include "utils/Service.hpp"
#include "utils/StreamLogger.hpp"
#include "recommendation/IEngine.hpp"
#include "recommendation/IClassifier.hpp"
#include "recommendation/FeaturesClassifierCreator.hpp"
int main(int argc, char *argv[])
@@ -50,11 +51,9 @@ int main(int argc, char *argv[])
Database::Db db {ServiceProvider<IConfig>::get()->getPath("working-dir") / "lms.db"};
Database::Session session {db};
auto classifier {Recommendation::createFeaturesClassifier()};
std::cout << "Classifying tracks..." << std::endl;
// may be long...
classifier->classify();
std::cout << "Classifying tracks..." << std::endl;
auto classifier {Recommendation::createFeaturesClassifier()};
std::cout << "Classifying tracks DONE" << std::endl;
const std::vector<Database::IdType> trackIds = std::invoke([&]()
@@ -106,7 +105,7 @@ int main(int argc, char *argv[])
};
std::cout << "Processing release '" << releaseToString(releaseId) << "'" << std::endl;
for (Database::IdType similarReleaseId : classifier->getSimilarReleases({releaseId}, 3))
for (Database::IdType similarReleaseId : classifier->getSimilarReleases(session, {releaseId}, 3))
std::cout << "\t- Similar release '" << releaseToString(similarReleaseId) << "'" << std::endl;
}
@@ -128,7 +127,7 @@ int main(int argc, char *argv[])
};
std::cout << "Processing artist '" << artistToString(artistId) << "'" << std::endl;
for (Database::IdType similarArtistId : classifier->getSimilarArtists({artistId}, 3))
for (Database::IdType similarArtistId : classifier->getSimilarArtists(session, {artistId}, 3))
std::cout << "\t- Similar artist '" << artistToString(similarArtistId) << "'" << std::endl;
}