72 std::map< LinguisticAnalysisStructure::Token*, uint64_t >& fullTokens,
73 std::vector< bool >& alreadyDumpedTokens,
74 const MediaId& language);
76 const std::map<Chaine,std::vector<uint64_t> >&
getChaines()
const {
return m_chaines;}
78 const std::map<uint64_t,Forme*>&
getFormesIndex()
const {
return m_formesIndex;}
79 const std::vector<Relation*>&
getRelations()
const {
return m_outRelations;}
80 const std::vector<Relation*>&
getInRelations()
const {
return m_inRelations;}
81 const std::map<uint64_t, Groupe>&
getGroupes()
const {
return m_groupes;}
82 const std::map< uint64_t, uint64_t >&
positionsFormsIds()
const {
return m_positionsFormsIds; };
96 std::map< LinguisticAnalysisStructure::Token*, uint64_t >& fullTokens,
97 std::vector< bool >& alreadyDumpedTokens,
103 std::map< LinguisticAnalysisStructure::Token*, uint64_t >& fullTokens,
118 const std::set<std::string>& relationsToFollow,
119 const std::string& groupType);
121 const std::set<std::string>& relationsToFollow,
122 const std::string& groupType,
125 void insertGroup(
const Groupe& groupe);
126 bool addToGroupIfIsInsideAGroup(
const Forme* forme);
128 template <
typename AnnotationType>
129 void splitCompoundAnalysisAnnotation(
135 std::map< LinguisticAnalysisStructure::Token*, uint64_t >& fullTokens,
136 std::vector< bool >& alreadyDumpedTokens,
137 const MediaId& language)
140 AnnotationType genAnnotVect = genAnnot.
value<AnnotationType>();
141 m_namedEntitiesVertices.insert(std::make_pair(forme.
id, forme));
142 m_posAnaMatching.insert(std::make_pair(forme.
id, v));
144 std::vector<uint64_t> genAnaVertices;
145 for(
auto genAnnotVectIt = genAnnotVect.vertices().begin(),
146 genAnnotVectIt_end = genAnnotVect.vertices().end();
147 genAnnotVectIt != genAnnotVectIt_end; genAnnotVectIt++)
149 Forme* anaForme =
extractVertex(*genAnnotVectIt, anaGraph,
false, fullTokens, alreadyDumpedTokens, language);
154 LDEBUG <<
"ConstituantAndRelationExtractor:: got analysis " << *genAnnotVectIt <<
", " << anaForme->
forme;
155 m_anaGraphVertices[*genAnnotVectIt] = anaForme;
156 genAnaVertices.push_back(*genAnnotVectIt);
159 m_seCompounds[v] = genAnaVertices;
162 std::map<Chaine,std::vector<uint64_t> > m_chaines;
163 std::map<uint64_t,uint64_t> m_vertexToFormeIds;
164 std::map<uint64_t,uint64_t> m_formeIdsToVertex;
166 std::map<uint64_t,Forme*> m_formesIndex;
167 std::map<uint64_t,Forme*> m_anaGraphVertices;
169 std::vector<Relation*> m_outRelations;
170 std::vector<Relation*> m_inRelations;
172 std::map<uint64_t,std::vector<uint64_t> > m_seCompounds;
173 std::map<uint64_t, Forme> m_namedEntitiesVertices;
174 std::map< uint64_t, std::pair< uint64_t, uint64_t > > m_compoundTenses;
176 std::map<uint64_t,uint64_t> m_posAnaMatching;
177 std::map<uint64_t,uint64_t> m_posAnnotMatching;
178 std::map<uint64_t,uint64_t> m_annotPosMatching;
180 std::map<uint64_t, Groupe> m_groupes;
181 std::map< uint64_t, uint64_t > m_positionsFormsIds;
182 std::set< uint64_t > m_inGroupFormsPositions;
void visitBoostGraph(const LinguisticGraphVertex &v, const LinguisticGraphVertex &end, const LinguisticGraph &anaGraph, const LinguisticGraph &posGraph, const Common::AnnotationGraphs::AnnotationData &annotationData, const SyntacticAnalysis::SyntacticData &syntacticData, std::map< LinguisticAnalysisStructure::Token *, uint64_t > &fullTokens, std::vector< bool > &alreadyDumpedTokens, const MediaId &language)