LIMA
Libre Multilingual Analyzer — C++ API
Loading...
Searching...
No Matches
gazeteerTransition.h
Go to the documentation of this file.
1// Copyright 2002-2018 CEA LIST
2// SPDX-FileCopyrightText: 2022 CEA LIST <gael.de-chalendar@cea.fr>
3//
4// SPDX-License-Identifier: MIT
5
6/************************************************************************
7 *
8 * @file gazeteerTransition.h
9 * @author Olivier Mesnard (olivier.mesnard@cea.fr)
10 * @date Thu August 04 2015
11 * copyright Copyright (C) 2002-2018 by CEA LIST
12 * Project Automaton
13 *
14 * @brief transitions that are surface form : belongs to a gazeteer
15 *
16 ***********************************************************************/
17
18#ifndef GAZETEERTRANSITION_H
19#define GAZETEERTRANSITION_H
20
21#include "AutomatonExport.h"
22#include "automatonCommon.h"
23#include "transitionUnit.h"
24#include <deque>
25#include "searchGraph.h"
26
27namespace Lima {
28namespace LinguisticProcessing {
29namespace Automaton {
30
32{
33 public:
35 GazeteerTransition(const std::vector<LimaString>& wordSet, const LimaString& alias, bool keep=true);
37 virtual ~GazeteerTransition();
38 GazeteerTransition& operator = (const GazeteerTransition&);
39
40 GazeteerTransition* clone() const override;
41 GazeteerTransition* create() const override;
42
43 std::string printValue() const override;
44 bool operator== (const TransitionUnit&) const override;
45
46 bool compare(const LinguisticAnalysisStructure::AnalysisGraph& graph,
47 const LinguisticGraphVertex& vertex,
48 AnalysisContent& analysis,
50 const LinguisticAnalysisStructure::MorphoSyntacticData* data) const override;
51
52 TypeTransition type() const override;
53 LimaString alias() const;
54 const std::set<LimaString>& wordSet() const;
55
56 bool matchPath(const LinguisticAnalysisStructure::AnalysisGraph& graph,
57 const LinguisticGraphVertex& vertex,
58 const LinguisticGraphVertex& limit,
59 const SearchGraph* searchGraph,
60 AnalysisContent& analysis,
62 std::deque<LinguisticGraphVertex>& vertices,
64
65 private:
66 bool checkMultiTerms( const LinguisticAnalysisStructure::AnalysisGraph& graph,
67 const LinguisticGraphVertex& position,
68 const LinguisticGraphVertex& limit,
69 const SearchGraph* searchGraph,
70 AnalysisContent& analysis,
71 const std::vector<std::vector<LimaString> >& additionalMultiTermList,
72 std::stack<std::deque<LinguisticGraphVertex>,std::vector<std::deque<LinguisticGraphVertex> > >& matches
73 ) const;
74
75 bool buildNextTermsList( const LimaString& firstSimpleTerm, std::vector<std::vector<LimaString> >& multiTermList ) const;
76 std::set<LimaString> m_wordSet;
77 LimaString m_alias;
78
79};
80
81
82/***********************************************************************/
83// inline access functions
84/***********************************************************************/
85inline const std::set<LimaString>& GazeteerTransition::wordSet() const { return m_wordSet; }
87
89 return new GazeteerTransition(*this); }
92inline LimaString GazeteerTransition::alias() const { return m_alias; }
93
94
95} // namespace end
96} // namespace end
97} // namespace end
98
99#endif
#define LIMA_AUTOMATON_EXPORT
LinguisticGraph::vertex_descriptor LinguisticGraphVertex
Holds all data that pass through the ProcessUnits Analysis data are shared pointers,...
An AnalysisData containing a LinguisticGraph with a language and an id.
NAUTITIA.
QString LimaString
Definition LimaString.h:33