Frog
mbma_mod.h
Go to the documentation of this file.
1 /* ex: set tabstop=8 expandtab: */
2 /*
3  Copyright (c) 2006 - 2020
4  CLST - Radboud University
5  ILK - Tilburg University
6 
7  This file is part of frog:
8 
9  A Tagger-Lemmatizer-Morphological-Analyzer-Dependency-Parser for
10  several languages
11 
12  frog is free software; you can redistribute it and/or modify
13  it under the terms of the GNU General Public License as published by
14  the Free Software Foundation; either version 3 of the License, or
15  (at your option) any later version.
16 
17  frog is distributed in the hope that it will be useful,
18  but WITHOUT ANY WARRANTY; without even the implied warranty of
19  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  GNU General Public License for more details.
21 
22  You should have received a copy of the GNU General Public License
23  along with this program. If not, see <http://www.gnu.org/licenses/>.
24 
25  For questions and suggestions, see:
26  https://github.com/LanguageMachines/frog/issues
27  or send mail to:
28  lamasoftware (at ) science.ru.nl
29 
30 */
31 
32 #ifndef MBMA_MOD_H
33 #define MBMA_MOD_H
34 
35 #include <map>
36 #include <vector>
37 #include <list>
38 #include <unicode/translit.h>
39 #include "ticcutils/LogStream.h"
40 #include "ticcutils/Unicode.h"
41 #include "ticcutils/Configuration.h"
42 #include "libfolia/folia.h"
43 #include "frog/FrogData.h"
44 #include "frog/clex.h"
45 #include "frog/mbma_rule.h"
46 #include "frog/mbma_brackets.h"
47 
48 class MBMAana;
49 namespace Timbl{
50  class TimblAPI;
51 }
52 
53 class Mbma {
54  public:
55  explicit Mbma( TiCC::LogStream *, TiCC::LogStream * =0 );
56  ~Mbma();
57  bool init( const TiCC::Configuration& );
58  void add_provenance( folia::Document&, folia::processor * ) const;
59  void Classify( frog_record& );
60  void Classify( const icu::UnicodeString& );
61  void filterHeadTag( const std::string& );
62  void filterSubTags( const std::vector<std::string>& );
63  void assign_compounds();
64  std::vector<std::string> getResult() const;
65  std::vector<std::pair<std::string,std::string>> getResults( ) const;
66  std::vector<std::pair<std::string,std::string>> getPrettyResults( ) const;
67  void setDeepMorph( bool b ){ doDeepMorph = b; };
68  void clearAnalysis();
69  Rule* matchRule( const std::vector<std::string>&, const icu::UnicodeString& );
70  std::vector<Rule*> execute( const icu::UnicodeString& ,
71  const std::vector<std::string>& );
72  std::string version() const { return _version; };
73  void add_morphemes( const std::vector<folia::Word*>&,
74  const frog_data& fd ) const;
75  static std::map<std::string,std::string> TAGconv;
76  static std::string mbma_tagset;
77  static std::string pos_tagset;
78  static std::string clex_tagset;
79  private:
80  void cleanUp();
81  bool readsettings( const std::string&, const std::string& );
82  void fillMaps();
83  void init_cgn( const std::string&, const std::string& );
84  void getResult( frog_record&, const icu::UnicodeString&, const std::string& ) const;
85  std::vector<std::string> make_instances( const icu::UnicodeString& word );
86  void call_server( const std::vector<std::string>&,
87  std::vector<std::string>& );
88  CLEX::Type getFinalTag( const std::list<BaseBracket*>& );
89  int debugFlag;
90  void store_morphemes( frog_record&, const std::vector<std::string>& ) const;
91  void store_brackets( frog_record&,
92  const std::string&,
93  const std::string&,
94  bool=false ) const;
95  void addBracketMorph( folia::Word *,
96  const std::string&,
97  const BaseBracket * ) const;
98  void store_brackets( frog_record&,
99  const std::string&,
100  const BracketNest * ) const;
101  std::string MTreeFilename;
102  Timbl::TimblAPI *MTree;
103  std::vector<Rule*> analysis;
104  std::string _version;
105  std::string textclass;
106  TiCC::LogStream *errLog;
107  TiCC::LogStream *dbgLog;
108  TiCC::UniFilter *filter;
109  std::string _host;
110  std::string _port;
111  std::string _base;
112  bool filter_diac;
113  bool doDeepMorph;
114 };
115 
116 #endif
Timbl
Definition: mbma_mod.h:49
mbma_brackets.h
Mbma::TAGconv
static std::map< std::string, std::string > TAGconv
Definition: mbma_mod.h:75
frog_data
a datastructure to hold all frogged information of one Sentence
Definition: FrogData.h:76
Mbma::filterHeadTag
void filterHeadTag(const std::string &)
Definition: mbma_mod.cxx:524
Mbma::setDeepMorph
void setDeepMorph(bool b)
Definition: mbma_mod.h:67
Mbma::assign_compounds
void assign_compounds()
Definition: mbma_mod.cxx:761
Rule
Definition: mbma_rule.h:69
Mbma::~Mbma
~Mbma()
Definition: mbma_mod.cxx:88
Mbma::execute
std::vector< Rule * > execute(const icu::UnicodeString &, const std::vector< std::string > &)
Definition: mbma_mod.cxx:447
Mbma::filterSubTags
void filterSubTags(const std::vector< std::string > &)
Definition: mbma_mod.cxx:608
Mbma
Definition: mbma_mod.h:53
Mbma::getPrettyResults
std::vector< std::pair< std::string, std::string > > getPrettyResults() const
Definition: mbma_mod.cxx:1128
Mbma::getResult
std::vector< std::string > getResult() const
Definition: mbma_mod.cxx:1100
Mbma::Classify
void Classify(frog_record &)
Definition: mbma_mod.cxx:932
Mbma::Mbma
Mbma(TiCC::LogStream *, TiCC::LogStream *=0)
Definition: mbma_mod.cxx:62
Mbma::getResults
std::vector< std::pair< std::string, std::string > > getResults() const
Definition: mbma_mod.cxx:1112
BaseBracket
Definition: mbma_brackets.h:74
clex.h
mbma_rule.h
frog_record
a simple datastructure to hold all frogged information of one word
Definition: FrogData.h:47
CLEX::Type
Type
all possible CELEX tags and action properties
Definition: clex.h:41
Mbma::clex_tagset
static std::string clex_tagset
Definition: mbma_mod.h:78
Mbma::init
bool init(const TiCC::Configuration &)
Definition: mbma_mod.cxx:159
Mbma::matchRule
Rule * matchRule(const std::vector< std::string > &, const icu::UnicodeString &)
Definition: mbma_mod.cxx:413
Mbma::add_provenance
void add_provenance(folia::Document &, folia::processor *) const
Definition: mbma_mod.cxx:768
BracketNest
Definition: mbma_brackets.h:161
Mbma::add_morphemes
void add_morphemes(const std::vector< folia::Word * > &, const frog_data &fd) const
Definition: mbma_mod.cxx:1144
FrogData.h
Mbma::clearAnalysis
void clearAnalysis()
Definition: mbma_mod.cxx:406
Mbma::pos_tagset
static std::string pos_tagset
Definition: mbma_mod.h:77
Mbma::mbma_tagset
static std::string mbma_tagset
Definition: mbma_mod.h:76
Mbma::version
std::string version() const
Definition: mbma_mod.h:72