vChewing-macOS/Source/Engine/SimpleLM.cpp

65 lines
1.9 KiB
C++

//
// SimpleLM.cpp
//
// Copyright (c) 2011 Lukhnos D. Liu (http://lukhnos.org)
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the "Software"), to deal in the Software without
// restriction, including without limitation the rights to use,
// copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following
// conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
// OTHER DEALINGS IN THE SOFTWARE.
//
#include "SimpleLM.h"
namespace Formosa {
namespace Gramambular {
SimpleLM::SimpleLM()
{
}
void SimpleLM::add(const string &key, const string &value, double score)
{
Unigram u;
u.keyValue.key = key;
u.keyValue.value = value;
u.score = score;
m_db[key].push_back(u);
}
const vector<Bigram> SimpleLM::bigramsForKeys(const string &preceedingKey, const string& key)
{
return vector<Bigram>();
}
const vector<Unigram> SimpleLM::unigramsForKeys(const string &key)
{
map<string, vector<Unigram> >::const_iterator f = m_db.find(key);
return f == m_db.end() ? vector<Unigram>() : (*f).second;
}
bool SimpleLM::hasUnigramsForKey(const string& key)
{
map<string, vector<Unigram> >::const_iterator f = m_db.find(key);
return f != m_db.end();
}
}
}