MorphInterpretation.cpp
2.61 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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
/*
* File: MorphInterpretation.cpp
* Author: mlenart
*
* Created on November 14, 2013, 11:47 AM
*/
#include <string>
#include <sstream>
#include "MorphInterpretation.hpp"
#include "EncodedInterpretation.hpp"
using namespace std;
MorphInterpretation::MorphInterpretation(
int startNode,
int endNode,
const string& orth,
const string& lemma,
const string& homonymId,
int tagnum,
int namenum,
const Tagset& tagset,
const CharsetConverter& charsetConverter)
: startNode(startNode),
endNode(endNode),
orth(orth),
lemma(lemma),
homonymId(homonymId),
tagnum(tagnum),
namenum(namenum),
tag(tagset.getTag(tagnum, charsetConverter)),
name(tagset.getName(namenum, charsetConverter)) {
}
MorphInterpretation::MorphInterpretation(
int startNode,
const std::string& orth,
const Tagset& tagset,
const CharsetConverter& charsetConverter)
: startNode(startNode),
endNode(startNode + 1),
orth(orth),
lemma(orth),
homonymId(""),
tagnum(0),
namenum(0),
tag(tagset.getTag(0, charsetConverter)),
name(tagset.getName(0, charsetConverter)) {
}
MorphInterpretation MorphInterpretation::createIgn(int startNode, const std::string& orth, const Tagset& tagset, const CharsetConverter& charsetConverter) {
return MorphInterpretation(startNode, orth, tagset, charsetConverter);
}
int MorphInterpretation::getStartNode() const {
return this->startNode;
}
int MorphInterpretation::getEndNode() const {
return this->endNode;
}
const std::string& MorphInterpretation::getOrth() const {
return this->orth;
}
const std::string& MorphInterpretation::getLemma() const {
return this->lemma;
}
const std::string& MorphInterpretation::getHomonymId() const {
return this->homonymId;
}
int MorphInterpretation::getTagnum() const {
return this->tagnum;
}
int MorphInterpretation::getNamenum() const {
return this->namenum;
}
const std::string& MorphInterpretation::getTag() const {
return this->tag;
}
const std::string& MorphInterpretation::getName() const {
return this->name;
}
std::string MorphInterpretation::toString(bool includeNodeNumbers) const {
std::stringstream res;
if (includeNodeNumbers) {
res << startNode << "," << endNode << ",";
}
res << orth << ",";
res << lemma;
if (!this->homonymId.empty()) {
res << ":" << homonymId;
}
res << ",";
res << tag;
if (!name.empty()) {
res << "," << name;
}
return res.str();
}