Added some more tools
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
|
||||
add_subdirectory(metadata)
|
||||
add_subdirectory(recommendation-features)
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
|
||||
add_executable(lms-recommendation-features
|
||||
LmsRecommendationFeatures.cpp
|
||||
)
|
||||
|
||||
target_link_libraries(lms-recommendation-features PRIVATE
|
||||
lmsdatabase
|
||||
lmsrecommendation
|
||||
)
|
||||
|
||||
+11
-12
@@ -28,17 +28,16 @@
|
||||
#include "database/Release.hpp"
|
||||
#include "database/Session.hpp"
|
||||
#include "database/Track.hpp"
|
||||
#include "utils/Config.hpp"
|
||||
#include "utils/IConfig.hpp"
|
||||
#include "utils/Service.hpp"
|
||||
#include "utils/StreamLogger.hpp"
|
||||
#include "similarity/features/SimilarityFeaturesSearcher.hpp"
|
||||
#include "recommendation/IEngine.hpp"
|
||||
#include "recommendation/FeaturesClassifierCreator.hpp"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
try
|
||||
{
|
||||
using namespace Similarity;
|
||||
|
||||
// log to stdout
|
||||
ServiceProvider<Logger>::create<StreamLogger>(std::cout);
|
||||
|
||||
@@ -46,16 +45,16 @@ int main(int argc, char *argv[])
|
||||
if (argc >= 2)
|
||||
configFilePath = std::string(argv[1], 0, 256);
|
||||
|
||||
ServiceProvider<Config>::create(configFilePath);
|
||||
ServiceProvider<IConfig>::assign(createConfig(configFilePath));
|
||||
|
||||
Database::Db db {ServiceProvider<Config>::get()->getPath("working-dir") / "lms.db"};
|
||||
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...
|
||||
struct FeaturesSearcher::TrainSettings trainSettings;
|
||||
trainSettings.featureSettingsMap = FeaturesSearcher::getDefaultTrainFeatureSettings();
|
||||
FeaturesSearcher searcher {session, trainSettings};
|
||||
classifier->classify();
|
||||
std::cout << "Classifying tracks DONE" << std::endl;
|
||||
|
||||
const std::vector<Database::IdType> trackIds = std::invoke([&]()
|
||||
@@ -85,7 +84,7 @@ int main(int argc, char *argv[])
|
||||
};
|
||||
|
||||
std::cout << "Processing track '" << trackToString(trackId) << std::endl;
|
||||
for (Database::IdType similarTrackId : searcher.getSimilarTracks({trackId}, 3))
|
||||
for (Database::IdType similarTrackId : classifier->getSimilarTracks(session, {trackId}, 3))
|
||||
std::cout << "\t- Similar track '" << trackToString(similarTrackId) << std::endl;
|
||||
}
|
||||
|
||||
@@ -107,7 +106,7 @@ int main(int argc, char *argv[])
|
||||
};
|
||||
|
||||
std::cout << "Processing release '" << releaseToString(releaseId) << "'" << std::endl;
|
||||
for (Database::IdType similarReleaseId : searcher.getSimilarReleases({releaseId}, 3))
|
||||
for (Database::IdType similarReleaseId : classifier->getSimilarReleases({releaseId}, 3))
|
||||
std::cout << "\t- Similar release '" << releaseToString(similarReleaseId) << "'" << std::endl;
|
||||
}
|
||||
|
||||
@@ -129,7 +128,7 @@ int main(int argc, char *argv[])
|
||||
};
|
||||
|
||||
std::cout << "Processing artist '" << artistToString(artistId) << "'" << std::endl;
|
||||
for (Database::IdType similarArtistId : searcher.getSimilarArtists({artistId}, 3))
|
||||
for (Database::IdType similarArtistId : classifier->getSimilarArtists({artistId}, 3))
|
||||
std::cout << "\t- Similar artist '" << artistToString(similarArtistId) << "'" << std::endl;
|
||||
}
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
noinst_PROGRAMS = lms-similarity-parameters
|
||||
|
||||
lms_similarity_parameters_SOURCES = \
|
||||
$(srcdir)/LmsSimilarityParameters.cpp \
|
||||
$(top_srcdir)/src/database/Artist.cpp \
|
||||
$(top_srcdir)/src/database/Cluster.cpp \
|
||||
$(top_srcdir)/src/database/Db.cpp \
|
||||
$(top_srcdir)/src/database/TrackFeatures.cpp \
|
||||
$(top_srcdir)/src/database/TrackList.cpp \
|
||||
$(top_srcdir)/src/database/Release.cpp \
|
||||
$(top_srcdir)/src/database/ScanSettings.cpp \
|
||||
$(top_srcdir)/src/database/Session.cpp \
|
||||
$(top_srcdir)/src/database/SessionPool.cpp \
|
||||
$(top_srcdir)/src/database/SqlQuery.cpp \
|
||||
$(top_srcdir)/src/database/Track.cpp \
|
||||
$(top_srcdir)/src/database/User.cpp \
|
||||
$(top_srcdir)/src/similarity/features/som/DataNormalizer.cpp \
|
||||
$(top_srcdir)/src/similarity/features/som/Network.cpp \
|
||||
$(top_srcdir)/src/similarity/features/SimilarityFeaturesCache.cpp \
|
||||
$(top_srcdir)/src/similarity/features/SimilarityFeaturesSearcher.cpp \
|
||||
$(top_srcdir)/src/similarity/features/SimilarityFeaturesDefs.cpp \
|
||||
$(top_srcdir)/src/utils/Config.cpp \
|
||||
$(top_srcdir)/src/utils/Logger.cpp \
|
||||
$(top_srcdir)/src/utils/Random.cpp \
|
||||
$(top_srcdir)/src/utils/StreamLogger.cpp \
|
||||
$(top_srcdir)/src/utils/String.cpp
|
||||
|
||||
lms_similarity_parameters_CXXFLAGS=-std=c++17 -I$(top_srcdir)/src -D_REENTRANT
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
noinst_PROGRAMS = lms-similarity
|
||||
|
||||
lms_similarity_SOURCES = \
|
||||
$(srcdir)/LmsSimilarity.cpp \
|
||||
$(top_srcdir)/src/database/Artist.cpp \
|
||||
$(top_srcdir)/src/database/Cluster.cpp \
|
||||
$(top_srcdir)/src/database/Db.cpp \
|
||||
$(top_srcdir)/src/database/TrackFeatures.cpp \
|
||||
$(top_srcdir)/src/database/TrackList.cpp \
|
||||
$(top_srcdir)/src/database/Release.cpp \
|
||||
$(top_srcdir)/src/database/ScanSettings.cpp \
|
||||
$(top_srcdir)/src/database/Session.cpp \
|
||||
$(top_srcdir)/src/database/SqlQuery.cpp \
|
||||
$(top_srcdir)/src/database/Track.cpp \
|
||||
$(top_srcdir)/src/database/User.cpp \
|
||||
$(top_srcdir)/src/similarity/features/som/DataNormalizer.cpp \
|
||||
$(top_srcdir)/src/similarity/features/som/Network.cpp \
|
||||
$(top_srcdir)/src/similarity/features/SimilarityFeaturesCache.cpp \
|
||||
$(top_srcdir)/src/similarity/features/SimilarityFeaturesSearcher.cpp \
|
||||
$(top_srcdir)/src/similarity/features/SimilarityFeaturesDefs.cpp \
|
||||
$(top_srcdir)/src/utils/Config.cpp \
|
||||
$(top_srcdir)/src/utils/Logger.cpp \
|
||||
$(top_srcdir)/src/utils/StreamLogger.cpp \
|
||||
$(top_srcdir)/src/utils/String.cpp
|
||||
|
||||
lms_similarity_CXXFLAGS=-std=c++17 -I$(top_srcdir)/src -D_REENTRANT
|
||||
|
||||
Reference in New Issue
Block a user