23namespace SpecificEntities
44 std::vector< LinguisticGraphVertex> m_vertices;
49 StringsPoolIndex m_string;
50 StringsPoolIndex m_normalizedString;
51 StringsPoolIndex m_normalizedForm;
57SpecificEntityAnnotationPrivate::SpecificEntityAnnotationPrivate(
58 const std::deque<LinguisticGraphVertex>& vertices,
67 m_vertices(vertices.begin(),vertices.end()),
68 m_head(vertices.front()),
71 m_normalizedString(sp[normalizedForm]),
72 m_normalizedForm(sp[normalizedForm]),
77 m_features.
addFeature(
"value", normalizedForm);
82SpecificEntityAnnotationPrivate::SpecificEntityAnnotationPrivate(
86 m_type(entity.getType()),
87 m_features(entity.features()),
88 m_string(sp[entity.getString()]),
89 m_normalizedString(sp[entity.getNormalizedString(sp)]),
91 m_position(entity.positionBegin()),
92 m_length(entity.length())
94 Automaton::EntityFeatures::const_iterator
97 m_normalizedForm=sp[boost::any_cast<const LimaString&>((*f).getValue())];
102 m_head = entity[0].m_elem.first;
109 m_vertices.reserve(entity.size());
111 Automaton::RecognizerMatch::const_iterator it, it_end;
112 it = entity.begin(); it_end = entity.end();
113 for (; it != it_end; it++)
115 if ( (*it).m_elem.second )
117 m_vertices.push_back((*it).m_elem.first);
123 const std::deque<LinguisticGraphVertex>& vertices,
189 return m_d->m_features;
194 m_d->m_features = features;
199 return m_d->m_string;
204 return m_d->m_normalizedString;
209 return m_d->m_normalizedForm;
214 return m_d->m_position;
219 return m_d->m_length;
224 return m_d->m_vertices;
229 os <<
"head:" << m_d->m_head <<
" type:" << m_d->m_type <<
" vertices=";
230 if (m_d->m_vertices.size() != 0)
232 os << m_d->m_vertices[0];
233 for (
const auto& v : m_d->m_vertices)
250 catch (
const boost::bad_any_cast& )
252 LERROR <<
"This annotation is not a SpecificEntityAnnotation ; nothing dumped";