18namespace LinguisticProcessing
21namespace MorphologicAnalysis
26 uint64_t positionOffset,
33 m_positionOffset(positionOffset),
36 m_charChart(charChart),
42 m_currentElement.
type=type;
44 std::vector<unsigned char> mapping;
46 m_unmarkToTextMapping.resize(desacc.size()+1);
48 for (std::vector<unsigned char>::const_iterator it=mapping.begin();
52 m_unmarkToTextMapping[*it]=i;
54 m_unmarkToTextMapping.back()=m_srcStr.size();
59 for (std::vector<unsigned char>::iterator it=m_positionMapping.begin();
60 it!=m_positionMapping.end();
63 *it = m_unmarkToTextMapping[*it];
65 m_positionMapping.push_back(m_unmarkToTextMapping.back());
77 const LimaString& accentedForm=(*m_stringsPool)[form];
80 LDEBUG <<
"AccentedConcatenatedDataHandler::foundAccentedForm" << accentedForm;
83 for (std::vector<unsigned char>::iterator it=m_positionMapping.begin();
84 it!=m_positionMapping.end();
87 if (*it < m_unmarkToTextMapping.size())
89 *it = m_unmarkToTextMapping[*it];
92 m_positionMapping.push_back(m_unmarkToTextMapping.back());
104 m_currentElement.
lemma=lemma;
113 m_concatVertices.push_back(std::vector<LinguisticGraphVertex>());
123 std::vector<LinguisticGraphVertex>& concatenated=m_concatVertices.back();
124 if (concatenated.size()>0)
126 add_edge(concatenated.back(),componentVertex,*m_graph);
128 concatenated.push_back(componentVertex);
130 m_currentToken=
new Token(
132 (*m_stringsPool)[form],
133 m_positionOffset+m_positionMapping[position],
134 m_positionMapping[position + length] - m_positionMapping[position],
136 put(
vertex_token,*m_graph,componentVertex,m_currentToken);
138 put(
vertex_data,*m_graph,componentVertex,m_currentData);
157 m_currentData->push_back(m_currentElement);
LinguisticGraph::vertex_descriptor LinguisticGraphVertex
boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS, LinguisticVertexProperties > LinguisticGraph
Property to identify the chains in the graph.
LimaString unmarkWithMapping(const LimaString &str, std::vector< unsigned char > &mapping) const
Holds morphosyntactic informations.
holds surface data of a token
virtual void foundConcatenated() override
virtual void endComponent() override
virtual void foundProperties(LinguisticCode lings) override
virtual void endAccentedForm() override
virtual void endLingInfos() override
AccentedConcatenatedDataHandler(LinguisticGraph *outputGraph, const LimaString &sourceStr, uint64_t positionOffset, const LinguisticAnalysisStructure::TStatus &status, LinguisticAnalysisStructure::MorphoSyntacticType type, const FsaStringsPool *sp, FlatTokenizer::CharChart *charChart)
virtual void foundComponent(uint64_t position, uint64_t length, StringsPoolIndex form) override
virtual void foundAccentedForm(StringsPoolIndex form) override
virtual void endConcatenated() override
virtual void foundLingInfos(StringsPoolIndex lemma, StringsPoolIndex norm) override
virtual ~AccentedConcatenatedDataHandler()
StringsPoolIndex inflectedForm
StringsPoolIndex normalizedForm
LinguisticCode properties