morfeusz.i
2.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
// XXX
// set module name with preprocessor
// because Mac OS X doesn't seem to recognize jniclassname option
#ifdef SWIGJAVA
%module MorfeuszWrapper
#else
%module morfeusz2
#endif
%feature("autodoc", "2");
%{
#include "Morfeusz.hpp"
#include "MorphInterpretation.hpp"
#include "exceptions.hpp"
#include "const.hpp"
%}
%include "std_vector.i"
%include "std_string.i"
#ifdef SWIGJAVA
%include "enums.swg"
/* Force the generated Java code to use the C enum values rather than making a JNI call */
%javaconst(1);
%pragma(java) jniclasscode=%{
static {
System.loadLibrary("jmorfeusz");
}
%}
#endif
%ignore MorphInterpretation::MorphInterpretation(
int startNode,
int endNode,
const std::string& orth,
const std::string& lemma,
int tagnum,
int namenum,
const Tagset& tagset,
const CharsetConverter& charsetConverter);
%ignore MorphInterpretation::createIgn(int startNode, const std::string& orth, const Tagset& tagset, const CharsetConverter& charsetConverter);
%ignore Tagset::Tagset(const unsigned char* fsaData);
%include "Morfeusz.hpp"
%include "MorphInterpretation.hpp"
%include "const.hpp"
%include "exceptions.hpp"
// instantiate vector of interpretations
namespace std {
// dirty hack so it will compile without no-arg constructor for MorphInterpretation
%ignore vector<MorphInterpretation>::vector(size_type);
%ignore vector<MorphInterpretation>::resize;
%template(InterpsVector) vector<MorphInterpretation>;
}
#ifdef SWIGPYTHON
%pythoncode %{
def analyze(self, text):
res = InterpsVector()
_morfeusz2.Morfeusz_analyze(self, text, res)
return list(res)
Morfeusz.analyze = analyze
def getOrth(self):
return _morfeusz2.MorphInterpretation_getOrth(self).decode('utf8')
def getLemma(self):
return _morfeusz2.MorphInterpretation_getLemma(self).decode('utf8')
def getTag(self):
return _morfeusz2.MorphInterpretation_getTag(self).decode('utf8')
def getName(self):
return _morfeusz2.MorphInterpretation_getName(self).decode('utf8')
MorphInterpretation.getOrth = getOrth
MorphInterpretation.getLemma = getLemma
MorphInterpretation.getTag = getTag
MorphInterpretation.getName = getName
%}
#endif