Skip to content
This repository was archived by the owner on Mar 9, 2023. It is now read-only.

Commit 3c8df53

Browse files
author
Sorami Hisamoto
authored
Add getters for latticenode attributes (#130)
1 parent 6276fa9 commit 3c8df53

File tree

3 files changed

+25
-12
lines changed

3 files changed

+25
-12
lines changed

sudachipy/lattice.pyx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,8 @@ cdef class Lattice:
130130
for r_node in r_nodes:
131131
surface = '(null)'
132132
pos = 'BOS/EOS'
133-
if r_node.is_defined:
133+
134+
if r_node.is_defined():
134135
wi = r_node.get_word_info()
135136
surface = wi.surface
136137
pos_id = wi.pos_id
@@ -139,12 +140,12 @@ cdef class Lattice:
139140
pos = ','.join(self.grammar.get_part_of_speech_string(pos_id))
140141

141142
costs = []
142-
for l_node in self.end_lists[r_node.begin]:
143-
cost = self.grammar.get_connect_cost(l_node.right_id, r_node.left_id)
143+
for l_node in self.end_lists[r_node.get_begin()]:
144+
cost = self.grammar.get_connect_cost(l_node.get_right_id(), r_node.get_left_id())
144145
costs.append(str(cost))
145146
index += 1
146147

147148
logger.info('%d: %d %d %s(%d) %s %d %d %d: %s' %
148149
(index, r_node.get_begin(), r_node.get_end(),
149-
surface, r_node.word_id, pos, r_node.left_id,
150-
r_node.right_id, r_node.cost, ' '.join(costs)))
150+
surface, r_node.get_word_id(), pos, r_node.get_left_id(),
151+
r_node.get_right_id(), r_node.get_path_cost(), ' '.join(costs)))

sudachipy/latticenode.pxd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ cdef class LatticeNode:
99
cdef bint is_connected_to_bos
1010
cdef object extra_word_info
1111
cdef object undefined_word_info
12-
cdef bint is_defined
12+
cdef bint _is_defined
1313
cdef object lexicon
1414
cdef int left_id
1515
cdef int right_id

sudachipy/latticenode.pyx

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ cdef class LatticeNode:
3333
self.is_connected_to_bos = False
3434
self.extra_word_info = None
3535

36-
self.is_defined = True
36+
self._is_defined = True
3737
if lexicon is left_id is right_id is cost is word_id is None:
38-
self.is_defined = False
38+
self._is_defined = False
3939
return
4040
self.lexicon = lexicon
4141
self.left_id = left_id
@@ -69,26 +69,38 @@ cdef class LatticeNode:
6969

7070
def set_oov(self):
7171
self._is_oov = True
72-
72+
73+
def is_defined(self):
74+
return self._is_defined
75+
76+
def set_defined(self):
77+
self._is_defined = True
78+
7379
def get_word_info(self) -> WordInfo:
74-
if not self.is_defined:
80+
if not self._is_defined:
7581
return UNK
7682
if self.extra_word_info:
7783
return self.extra_word_info
7884
return self.lexicon.get_word_info(self.word_id)
7985

8086
def set_word_info(self, word_info: WordInfo) -> None:
8187
self.extra_word_info = word_info
82-
self.is_defined = True
88+
self._is_defined = True
8389

8490
def get_path_cost(self) -> int:
8591
return self.cost
92+
93+
def get_left_id(self) -> int:
94+
return self.left_id
95+
96+
def get_right_id(self) -> int:
97+
return self.right_id
8698

8799
def get_word_id(self) -> int:
88100
return self.word_id
89101

90102
def get_dictionary_id(self) -> int:
91-
if not self.is_defined or self.extra_word_info:
103+
if not self._is_defined or self.extra_word_info:
92104
return -1
93105
return self.lexicon.get_dictionary_id(self.word_id) # self.word_id >> 28
94106

0 commit comments

Comments
 (0)