LIMA
Libre Multilingual Analyzer — C++ API
Loading...
Searching...
No Matches
WordFeatureExtractor.h
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
* @author Romaric Besancon (romaric.besancon@cea.fr)
8
* @date Mon Feb 7 2011
9
* copyright Copyright (C) 2011 by CEA LIST
10
* @brief accessors for various features of a word
11
***********************************************************************/
12
13
#ifndef WORDFEATUREEXTRACTOR_H
14
#define WORDFEATUREEXTRACTOR_H
15
16
#include "
AnalysisDumpersExport.h
"
17
#include "
linguisticProcessing/core/LinguisticAnalysisStructure/AnalysisGraph.h
"
18
#include "
linguisticProcessing/common/PropertyCode/PropertyAccessor.h
"
19
#include "
common/AbstractFactoryPattern/RegistrableFactory.h
"
20
21
namespace
Lima
{
22
namespace
LinguisticProcessing {
23
24
//----------------------------------------------------------------------
25
// Abstract feature extractor class
26
class
LIMA_ANALYSISDUMPERS_EXPORT
AbstractFeatureExtractor
27
{
28
public
:
29
AbstractFeatureExtractor
(MediaId language,
const
std::string& complement=
""
);
30
virtual
~AbstractFeatureExtractor
() {}
31
32
virtual
std::string
33
getValue
(
const
LinguisticAnalysisStructure::AnalysisGraph
* graph,
34
LinguisticGraphVertex
v,
AnalysisContent
&analysis)
const
=0;
35
const
std::string&
getName
() {
return
m_name; }
36
void
setName
(
const
std::string& name) { m_name=name; }
37
38
protected
:
39
MediaId
m_language
;
40
std::string
m_name
;
41
};
42
43
//----------------------------------------------------------------------
44
// Asbtract factory for abstract feature extractor
45
class
LIMA_ANALYSISDUMPERS_EXPORT
AbstractFeatureExtractorFactory
:
46
public
RegistrableFactory
<AbstractFeatureExtractorFactory>
47
{
48
public
:
49
AbstractFeatureExtractorFactory
(
const
std::string& factoryId);
50
virtual
AbstractFeatureExtractor
*
create
(MediaId language,
const
std::string& complement=
""
)=0;
51
private
:
52
};
53
54
//----------------------------------------------------------------------
55
// template for factories for actual instances of feature extractors
56
template
<
typename
FeatureExtractor>
57
class
LIMA_ANALYSISDUMPERS_EXPORT
FeatureExtractorFactory
:
58
public
AbstractFeatureExtractorFactory
59
{
60
public
:
61
FeatureExtractorFactory
(
const
std::string& factoryId):
62
AbstractFeatureExtractorFactory
(factoryId) {}
63
AbstractFeatureExtractor
*
create
(MediaId language,
const
std::string& complement=
""
)
override
{
64
AbstractFeatureExtractor
* newFeature=
new
FeatureExtractor(language,complement);
65
return
newFeature;
66
}
67
private
:
68
};
69
70
//----------------------------------------------------------------------
71
// a class for list of features
72
//----------------------------------------------------------------------
73
class
LIMA_ANALYSISDUMPERS_EXPORT
WordFeatures
:
public
std::vector<AbstractFeatureExtractor*> {
74
public
:
75
WordFeatures
();
76
WordFeatures
(MediaId language);
77
~WordFeatures
();
78
79
void
setLanguage
(MediaId language) { m_language=language; }
80
void
initialize(
const
std::deque<std::string>& featureNames);
81
private
:
82
MediaId m_language;
83
};
84
85
//----------------------------------------------------------------------
86
// instances of feature extractors
87
//----------------------------------------------------------------------
88
#define FeaturePosition_ID "position"
89
class
LIMA_ANALYSISDUMPERS_EXPORT
FeaturePosition
:
public
AbstractFeatureExtractor
{
90
public
:
91
FeaturePosition
(MediaId language,
const
std::string& complement=
""
);
92
~FeaturePosition
() {}
93
94
std::string
95
getValue(
const
LinguisticAnalysisStructure::AnalysisGraph
* graph,
96
LinguisticGraphVertex
v,
97
AnalysisContent
& )
const override
;
98
};
99
100
//----------------------------------------------------------------------
101
#define FeatureToken_ID "word"
102
class
LIMA_ANALYSISDUMPERS_EXPORT
FeatureToken
:
public
AbstractFeatureExtractor
{
103
public
:
104
FeatureToken
(MediaId language,
const
std::string& complement=
""
);
105
~FeatureToken
() {}
106
107
std::string
108
getValue(
const
LinguisticAnalysisStructure::AnalysisGraph
* graph,
109
LinguisticGraphVertex
v,
110
AnalysisContent
&
111
)
const override
;
112
};
113
114
//----------------------------------------------------------------------
115
// inflectedForm is different from word: word is the token in the text, inflectedForm is the inflected form in the dictionary
116
// (e.g. possible corrections on accents)
117
#define FeatureInflectedForm_ID "inflectedForm"
118
class
LIMA_ANALYSISDUMPERS_EXPORT
FeatureInflectedForm
:
public
AbstractFeatureExtractor
{
119
public
:
120
FeatureInflectedForm
(MediaId language,
const
std::string& complement=
""
);
121
~FeatureInflectedForm
() {}
122
123
std::string
124
getValue(
const
LinguisticAnalysisStructure::AnalysisGraph
* graph,
125
LinguisticGraphVertex
v,
126
AnalysisContent
&
127
)
const override
;
128
private
:
129
const
FsaStringsPool
* m_sp;
130
};
131
132
//----------------------------------------------------------------------
133
#define FeatureLemma_ID "lemma"
134
class
LIMA_ANALYSISDUMPERS_EXPORT
FeatureLemma
:
public
AbstractFeatureExtractor
{
135
public
:
136
FeatureLemma
(MediaId language,
const
std::string& complement=
""
);
137
~FeatureLemma
() {}
138
139
std::string
140
getValue(
const
LinguisticAnalysisStructure::AnalysisGraph
* graph,
141
LinguisticGraphVertex
v,
142
AnalysisContent
&
143
)
const override
;
144
private
:
145
const
FsaStringsPool
* m_sp;
146
};
147
148
//----------------------------------------------------------------------
149
#define FeatureProperty_ID "property"
150
class
LIMA_ANALYSISDUMPERS_EXPORT
FeatureProperty
:
public
AbstractFeatureExtractor
{
151
public
:
152
FeatureProperty
(MediaId language,
const
std::string& complement=
""
);
153
~FeatureProperty
() {}
154
155
std::string
156
getValue(
const
LinguisticAnalysisStructure::AnalysisGraph
* graph,
157
LinguisticGraphVertex
v,
158
AnalysisContent
&
159
)
const override
;
160
private
:
161
std::string m_propertyName;
162
const
Common::PropertyCode::PropertyAccessor
* m_propertyAccessor;
163
const
Common::PropertyCode::PropertyManager
* m_propertyManager;
164
};
165
166
//----------------------------------------------------------------------
167
#define FeatureTstatus_ID "tstatus"
168
class
LIMA_ANALYSISDUMPERS_EXPORT
FeatureTstatus
:
public
AbstractFeatureExtractor
{
169
public
:
170
FeatureTstatus
(MediaId language,
const
std::string& complement=
""
);
171
~FeatureTstatus
() {}
172
173
std::string
174
getValue(
const
LinguisticAnalysisStructure::AnalysisGraph
* graph,
175
LinguisticGraphVertex
v,
176
AnalysisContent
&
177
)
const override
;
178
};
179
180
//--------------------------------------------------------
181
#define FeatureSpecificEntity_ID "specificEntity"
182
class
LIMA_ANALYSISDUMPERS_EXPORT
FeatureSpecificEntity
:
public
AbstractFeatureExtractor
183
{
184
public
:
185
FeatureSpecificEntity
(MediaId language,
const
std::string& complement=
""
);
186
~FeatureSpecificEntity
() {}
187
188
std::string getValue(
const
LinguisticAnalysisStructure::AnalysisGraph
* graph,
189
LinguisticGraphVertex
v,
190
AnalysisContent
&)
const override
;
191
};
192
193
//--------------------------------------------------------
194
#define FeatureLemmaSpecificEntity_ID "lemmaSpecificEntity"
195
class
LIMA_ANALYSISDUMPERS_EXPORT
FeatureLemmaSpecificEntity
:
public
AbstractFeatureExtractor
196
{
197
public
:
198
FeatureLemmaSpecificEntity
(MediaId language,
const
std::string& complement=
""
);
199
~FeatureLemmaSpecificEntity
() {}
200
201
std::string getValue(
const
LinguisticAnalysisStructure::AnalysisGraph
* graph,
202
LinguisticGraphVertex
v,
203
AnalysisContent
&)
const override
;
204
};
205
206
//--------------------------------------------------------
207
#define FeatureStoredData_ID "storedData"
208
class
LIMA_ANALYSISDUMPERS_EXPORT
FeatureStoredData
:
public
AbstractFeatureExtractor
209
{
210
public
:
211
FeatureStoredData
(MediaId language,
const
std::string& complement=
""
);
212
~FeatureStoredData
() {}
213
214
std::string getValue(
const
LinguisticAnalysisStructure::AnalysisGraph
* graph,
215
LinguisticGraphVertex
v,
216
AnalysisContent
&)
const override
;
217
};
218
219
}
// end namespace
220
}
// end namespace
221
222
#endif
AnalysisDumpersExport.h
LIMA_ANALYSISDUMPERS_EXPORT
#define LIMA_ANALYSISDUMPERS_EXPORT
Definition
AnalysisDumpersExport.h:27
AnalysisGraph.h
LinguisticGraphVertex
LinguisticGraph::vertex_descriptor LinguisticGraphVertex
Definition
LinguisticGraph.h:100
PropertyAccessor.h
RegistrableFactory.h
Lima::AnalysisContent
Holds all data that pass through the ProcessUnits Analysis data are shared pointers,...
Definition
AnalysisContent.h:37
Lima::Common::PropertyCode::PropertyAccessor
Provide function to read write and check a property.
Definition
PropertyAccessor.h:31
Lima::Common::PropertyCode::PropertyManager
Provide tools to manage a specific property.
Definition
PropertyManager.h:34
Lima::FsaStringsPool
Definition
fsaStringsPool.h:32
Lima::LinguisticProcessing::AbstractFeatureExtractorFactory
Definition
WordFeatureExtractor.h:47
Lima::LinguisticProcessing::AbstractFeatureExtractorFactory::create
virtual AbstractFeatureExtractor * create(MediaId language, const std::string &complement="")=0
Lima::LinguisticProcessing::AbstractFeatureExtractor
Definition
WordFeatureExtractor.h:27
Lima::LinguisticProcessing::AbstractFeatureExtractor::setName
void setName(const std::string &name)
Definition
WordFeatureExtractor.h:36
Lima::LinguisticProcessing::AbstractFeatureExtractor::m_language
MediaId m_language
Definition
WordFeatureExtractor.h:39
Lima::LinguisticProcessing::AbstractFeatureExtractor::getValue
virtual std::string getValue(const LinguisticAnalysisStructure::AnalysisGraph *graph, LinguisticGraphVertex v, AnalysisContent &analysis) const =0
Lima::LinguisticProcessing::AbstractFeatureExtractor::m_name
std::string m_name
Definition
WordFeatureExtractor.h:40
Lima::LinguisticProcessing::AbstractFeatureExtractor::~AbstractFeatureExtractor
virtual ~AbstractFeatureExtractor()
Definition
WordFeatureExtractor.h:30
Lima::LinguisticProcessing::AbstractFeatureExtractor::getName
const std::string & getName()
Definition
WordFeatureExtractor.h:35
Lima::LinguisticProcessing::FeatureExtractorFactory
Definition
WordFeatureExtractor.h:59
Lima::LinguisticProcessing::FeatureExtractorFactory::create
AbstractFeatureExtractor * create(MediaId language, const std::string &complement="") override
Definition
WordFeatureExtractor.h:63
Lima::LinguisticProcessing::FeatureExtractorFactory::FeatureExtractorFactory
FeatureExtractorFactory(const std::string &factoryId)
Definition
WordFeatureExtractor.h:61
Lima::LinguisticProcessing::FeatureInflectedForm
Definition
WordFeatureExtractor.h:118
Lima::LinguisticProcessing::FeatureInflectedForm::~FeatureInflectedForm
~FeatureInflectedForm()
Definition
WordFeatureExtractor.h:121
Lima::LinguisticProcessing::FeatureLemmaSpecificEntity
Definition
WordFeatureExtractor.h:196
Lima::LinguisticProcessing::FeatureLemmaSpecificEntity::~FeatureLemmaSpecificEntity
~FeatureLemmaSpecificEntity()
Definition
WordFeatureExtractor.h:199
Lima::LinguisticProcessing::FeatureLemma
Definition
WordFeatureExtractor.h:134
Lima::LinguisticProcessing::FeatureLemma::~FeatureLemma
~FeatureLemma()
Definition
WordFeatureExtractor.h:137
Lima::LinguisticProcessing::FeaturePosition
Definition
WordFeatureExtractor.h:89
Lima::LinguisticProcessing::FeaturePosition::~FeaturePosition
~FeaturePosition()
Definition
WordFeatureExtractor.h:92
Lima::LinguisticProcessing::FeatureProperty
Definition
WordFeatureExtractor.h:150
Lima::LinguisticProcessing::FeatureProperty::~FeatureProperty
~FeatureProperty()
Definition
WordFeatureExtractor.h:153
Lima::LinguisticProcessing::FeatureSpecificEntity
Definition
WordFeatureExtractor.h:183
Lima::LinguisticProcessing::FeatureSpecificEntity::~FeatureSpecificEntity
~FeatureSpecificEntity()
Definition
WordFeatureExtractor.h:186
Lima::LinguisticProcessing::FeatureStoredData
Definition
WordFeatureExtractor.h:209
Lima::LinguisticProcessing::FeatureStoredData::~FeatureStoredData
~FeatureStoredData()
Definition
WordFeatureExtractor.h:212
Lima::LinguisticProcessing::FeatureToken
Definition
WordFeatureExtractor.h:102
Lima::LinguisticProcessing::FeatureToken::~FeatureToken
~FeatureToken()
Definition
WordFeatureExtractor.h:105
Lima::LinguisticProcessing::FeatureTstatus
Definition
WordFeatureExtractor.h:168
Lima::LinguisticProcessing::FeatureTstatus::~FeatureTstatus
~FeatureTstatus()
Definition
WordFeatureExtractor.h:171
Lima::LinguisticProcessing::LinguisticAnalysisStructure::AnalysisGraph
An AnalysisData containing a LinguisticGraph with a language and an id.
Definition
AnalysisGraph.h:47
Lima::LinguisticProcessing::WordFeatures
Definition
WordFeatureExtractor.h:73
Lima::LinguisticProcessing::WordFeatures::setLanguage
void setLanguage(MediaId language)
Definition
WordFeatureExtractor.h:79
Lima::RegistrableFactory
Defines a Factory that automatically register to a MainFactory singleton.
Definition
RegistrableFactory.h:32
Lima
NAUTITIA.
Definition
AmosePluginsManager.h:15
lima_linguisticprocessing
src
linguisticProcessing
core
AnalysisDumpers
WordFeatureExtractor.h
Generated by
1.9.8