Welcome to mirror list, hosted at ThFree Co, Russian Federation.

opentable_scoring.cpp « generator - github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 9c27a5c22be2d1c3d46d7084451ee2a74bd5336c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include "generator/sponsored_scoring.hpp"

#include "generator/opentable_dataset.hpp"
#include "generator/feature_builder.hpp"

using namespace feature;

namespace
{
// Calculated with tools/python/booking_hotels_quality.py.
double constexpr kOptimalThreshold = 0.312887;
}  // namespace

namespace generator
{
namespace sponsored_scoring
{
template <>
double MatchStats<OpentableRestaurant>::GetMatchingScore() const
{
  // TODO(mgsergio): Use tuner to get optimal function.
  return m_linearNormDistanceScore * m_nameSimilarityScore;
}

template <>
bool MatchStats<OpentableRestaurant>::IsMatched() const
{
  return GetMatchingScore() > kOptimalThreshold;
}

template <>
MatchStats<OpentableRestaurant> Match(OpentableRestaurant const & r, FeatureBuilder const & fb)
{
  MatchStats<OpentableRestaurant> score;

  auto const fbCenter = mercator::ToLatLon(fb.GetKeyPoint());
  auto const distance = ms::DistanceOnEarth(fbCenter, r.m_latLon);
  score.m_linearNormDistanceScore =
      impl::GetLinearNormDistanceScore(distance, OpentableDataset::kDistanceLimitInMeters);

  score.m_nameSimilarityScore =
      impl::GetNameSimilarityScore(r.m_name, fb.GetName(StringUtf8Multilang::kDefaultCode));

  return score;
}
}  // namespace sponsored_scoring
}  // namespace generator