LIMA
Libre Multilingual Analyzer — C++ API
Loading...
Searching...
No Matches
MicrosForNormalization.cpp
Go to the documentation of this file.
1// Copyright 2002-2013 CEA LIST
2// SPDX-FileCopyrightText: 2022 CEA LIST <gael.de-chalendar@cea.fr>
3//
4// SPDX-License-Identifier: MIT
5
6/************************************************************************
7 *
8 * @file MicrosForNormalization.cpp
9 * @author Romaric Besancon (romaric.besancon@cea.fr)
10 * @date Tue Mar 13 2007
11 * copyright Copyright (C) 2007 by CEA LIST
12 *
13 ***********************************************************************/
14
21
23using namespace Lima::Common::PropertyCode;
24using namespace std;
25
26namespace Lima {
27namespace LinguisticProcessing {
28namespace SpecificEntities {
29
32
33//***********************************************************************
34// constructors and destructors
39
43
45init(GroupConfigurationStructure& unitConfiguration,
46 Manager* manager)
47
48{
49 MediaId language=manager->getInitializationParameters().language;
50 const PropertyManager& microManager = static_cast<const Common::MediaticData::LanguageData&>(Common::MediaticData::MediaticData::single().mediaData(language)).getPropertyCodeManager().getPropertyManager("MICRO");
51
52 try {
53 deque<string>& microGroups =
54 unitConfiguration.getListsValueAtKey("microGroups");
55
56 for (deque<string>::const_iterator
57 g=microGroups.begin(),g_end=microGroups.end();
58 g!=g_end; g++) {
59
60 deque<string>& microList =
61 unitConfiguration.getListsValueAtKey(*g);
62
63 for (deque<string>::const_iterator
64 m=microList.begin(),m_end=microList.end();
65 m!=m_end; m++) {
66
67 m_micros[*g].insert(microManager.getPropertyValue(*m));
68 }
69 }
70 }
71 catch (NoSuchList& ) {
73 LERROR << "missing list in 'MicrosForNormalization' group of language " << (int)language << " !";
75 }
76}
77
78const std::set<LinguisticCode>* MicrosForNormalization::
79getMicros(const std::string& list)
80{
81 map<string,set<LinguisticCode> >::const_iterator it=m_micros.find(list);
82 if (it==m_micros.end()) {
84 LIMA_EXCEPTION( "no list " << list.c_str()
85 << " for micros in named entities normalization");
86 }
87 return &((*it).second);
88}
89
90
91} // end namespace
92} // end namespace
93} // end namespace
#define LIMA_EXCEPTION(X)
This macro writes the message X to a previously configured error stream before throwing a LimaExcepti...
Definition LimaCommon.h:293
#define LERROR
Definition LimaCommon.h:161
#define SELOGINIT
#define MICROSFORNORMALIZATION_CLASSID
Defines a Factory to create Object of type Base.
Holds linguistic data for one language.
const MediaData & mediaData(MediaId media) const
Provide tools to manage a specific property.
LinguisticCode getPropertyValue(const std::string &symbolicValue) const
Get the coded property value from the symbolic value.
std::deque< std::string > & getListsValueAtKey(const std::string &key)
Manage initialization of InitializableObjects using configuration module and parameters.
const InitializationParameters & getInitializationParameters() const
get Initialization Parameters
Use this exception to signal an error in one of the configuration files.
Definition LimaCommon.h:345
const std::set< LinguisticCode > * getMicros(const std::string &group)
void init(Common::XMLConfigurationFiles::GroupConfigurationStructure &unitConfiguration, Manager *manager) override
static const MediaticData & single()
const singleton accessor
Definition Singleton.h:51
SimpleFactory< AbstractResource, MicrosForNormalization > MicrosForNormalizationFactory(MICROSFORNORMALIZATION_CLASSID)
NAUTITIA.
STL namespace.