示例#1
0
 def deserialize(self, stream: Stream, all0_: typing.List['Referent'],
                 sofa: 'SourceOfAnalysis') -> None:
     typ = SerializerHelper.deserialize_string(stream)
     cou = SerializerHelper.deserialize_int(stream)
     i = 0
     while i < cou:
         typ = SerializerHelper.deserialize_string(stream)
         c = SerializerHelper.deserialize_int(stream)
         id0_ = SerializerHelper.deserialize_int(stream)
         val = None
         if ((id0_ < 0) and all0_ is not None):
             id1 = (-id0_) - 1
             if (id1 < len(all0_)):
                 val = (all0_[id1])
         elif (id0_ > 0):
             stream.position = stream.position - (4)
             val = (SerializerHelper.deserialize_string(stream))
         self.add_slot(typ, val, False, c)
         i += 1
     cou = SerializerHelper.deserialize_int(stream)
     self.__m_occurrence = list()
     i = 0
     while i < cou:
         a = TextAnnotation._new2863(sofa, self)
         self.__m_occurrence.append(a)
         a.begin_char = SerializerHelper.deserialize_int(stream)
         a.end_char = SerializerHelper.deserialize_int(stream)
         attr = SerializerHelper.deserialize_int(stream)
         if (((attr & 1)) != 0):
             a.essential_for_occurence = True
         i += 1
 def __deserialize_item(self, stream: Stream) -> 'MorphBaseInfo':
     from pullenti.ner.core.internal.SerializerHelper import SerializerHelper
     ty = stream.readbyte()
     res = (MorphBaseInfo() if ty == 0 else MorphWordForm())
     res.class0_ = MorphClass._new53(
         SerializerHelper.deserialize_short(stream))
     res.case_ = MorphCase._new29(
         SerializerHelper.deserialize_short(stream))
     res.gender = Utils.valToEnum(
         SerializerHelper.deserialize_short(stream), MorphGender)
     res.number = Utils.valToEnum(
         SerializerHelper.deserialize_short(stream), MorphNumber)
     res.language = MorphLang._new56(
         SerializerHelper.deserialize_short(stream))
     if (ty == 0):
         return res
     wf = Utils.asObjectOrNull(res, MorphWordForm)
     wf.normal_case = SerializerHelper.deserialize_string(stream)
     wf.normal_full = SerializerHelper.deserialize_string(stream)
     wf.undef_coef = SerializerHelper.deserialize_short(stream)
     cou = SerializerHelper.deserialize_int(stream)
     i = 0
     while i < cou:
         if (wf.misc is None):
             wf.misc = MorphMiscInfo()
         wf.misc.attrs.append(SerializerHelper.deserialize_string(stream))
         i += 1
     return res
示例#3
0
 def deserialize(self, stream : io.IOBase) -> bool:
     vers = 0
     b = Utils.readByteIO(stream)
     if (b == (0xAA)): 
         b = (Utils.readByteIO(stream))
         vers = (b)
     else: 
         stream.seek(stream.tell() - (1), io.SEEK_SET)
     self.__m_sofa = SourceOfAnalysis(None)
     self.__m_sofa.deserialize(stream)
     self.base_language = MorphLang._new5(SerializerHelper.deserializeInt(stream))
     self.__m_entities = list()
     cou = SerializerHelper.deserializeInt(stream)
     i = 0
     while i < cou: 
         typ = SerializerHelper.deserializeString(stream)
         r = ProcessorService.createReferent(typ)
         if (r is None): 
             r = Referent("UNDEFINED")
         self.__m_entities.append(r)
         i += 1
     i = 0
     while i < cou: 
         self.__m_entities[i].deserialize(stream, self.__m_entities, self.__m_sofa)
         i += 1
     self.first_token = SerializerHelper.deserializeTokens(stream, self, vers)
     self.__createStatistics()
     return True
示例#4
0
 def deserialize(self, stream: Stream) -> bool:
     vers = 0
     b = stream.readbyte()
     if (b == (0xAA)):
         b = (stream.readbyte())
         vers = (b)
     else:
         stream.position = stream.position - (1)
     self.__m_sofa = SourceOfAnalysis(None)
     self.__m_sofa.deserialize(stream)
     self.base_language = MorphLang._new56(
         SerializerHelper.deserialize_int(stream))
     self.__m_entities = list()
     cou = SerializerHelper.deserialize_int(stream)
     i = 0
     while i < cou:
         typ = SerializerHelper.deserialize_string(stream)
         r = ProcessorService.create_referent(typ)
         if (r is None):
             r = Referent("UNDEFINED")
         self.__m_entities.append(r)
         i += 1
     i = 0
     while i < cou:
         self.__m_entities[i].deserialize(stream, self.__m_entities,
                                          self.__m_sofa)
         i += 1
     self.first_token = SerializerHelper.deserialize_tokens(
         stream, self, vers)
     self.__create_statistics()
     return True
示例#5
0
 def deserialize(self, stream: io.IOBase, all0_: typing.List['Referent'],
                 sofa: 'SourceOfAnalysis') -> None:
     typ = SerializerHelper.deserializeString(stream)
     cou = SerializerHelper.deserializeInt(stream)
     i = 0
     while i < cou:
         typ = SerializerHelper.deserializeString(stream)
         c = SerializerHelper.deserializeInt(stream)
         id0_ = SerializerHelper.deserializeInt(stream)
         val = None
         if (id0_ < 0):
             val = (all0_[(-id0_) - 1])
         elif (id0_ > 0):
             stream.seek(stream.tell() - (4), io.SEEK_SET)
             val = (SerializerHelper.deserializeString(stream))
         self.addSlot(typ, val, False, c)
         i += 1
     cou = SerializerHelper.deserializeInt(stream)
     self.__m_occurrence = list()
     i = 0
     while i < cou:
         a = TextAnnotation._new2691(sofa, self)
         self.__m_occurrence.append(a)
         a.begin_char = SerializerHelper.deserializeInt(stream)
         a.end_char = SerializerHelper.deserializeInt(stream)
         attr = SerializerHelper.deserializeInt(stream)
         if (((attr & 1)) != 0):
             a.essential_for_occurence = True
         i += 1
示例#6
0
 def _serialize(self, stream: Stream) -> None:
     super()._serialize(stream)
     id0_ = 0
     if (self.referent is not None
             and (isinstance(self.referent.tag, int))):
         id0_ = (self.referent.tag)
     SerializerHelper.serialize_int(stream, id0_)
示例#7
0
 def _deserialize(self, stream: io.IOBase, kit_: 'AnalysisKit',
                  vers: int) -> None:
     from pullenti.ner.core.internal.SerializerHelper import SerializerHelper
     super()._deserialize(stream, kit_, vers)
     self.term = SerializerHelper.deserializeString(stream)
     self.lemma = SerializerHelper.deserializeString(stream)
     self.invariant_prefix_length = SerializerHelper.deserializeShort(
         stream)
     self.max_length = SerializerHelper.deserializeShort(stream)
示例#8
0
 def serialize(self, stream: Stream) -> None:
     """ Сериализовать весь словарь в поток
     
     Args:
         stream(Stream): поток для сериализации
     """
     SerializerHelper.serialize_string(stream, self.__m_specs)
     SerializerHelper.serialize_int(stream, len(self.items))
     for it in self.items:
         it._serialize(stream)
示例#9
0
 def _deserialize(self, stream: io.IOBase, kit_: 'AnalysisKit',
                  vers: int) -> None:
     from pullenti.ner.core.internal.SerializerHelper import SerializerHelper
     self.kit = kit_
     self.begin_char = SerializerHelper.deserializeInt(stream)
     self.end_char = SerializerHelper.deserializeInt(stream)
     self.__m_attrs = (SerializerHelper.deserializeInt(stream))
     self.chars = CharsInfo._new2656(
         SerializerHelper.deserializeInt(stream))
     self.__m_morph = MorphCollection()
     self.__m_morph._deserialize(stream)
示例#10
0
 def _deserialize(self, stream: Stream, kit_: 'AnalysisKit',
                  vers: int) -> None:
     from pullenti.ner.core.internal.SerializerHelper import SerializerHelper
     super()._deserialize(stream, kit_, vers)
     if (vers == 0):
         buf = Utils.newArrayOfBytes(8, 0)
         stream.read(buf, 0, 8)
         lo = int.from_bytes(buf[0:0 + 8], byteorder="little")
         self.value = str(lo)
     else:
         self.value = SerializerHelper.deserialize_string(stream)
     self.typ = (Utils.valToEnum(SerializerHelper.deserialize_int(stream),
                                 NumberSpellingType))
示例#11
0
 def _serialize(self, stream: io.IOBase) -> None:
     from pullenti.ner.core.internal.SerializerHelper import SerializerHelper
     super()._serialize(stream)
     SerializerHelper.serializeString(stream, self.term)
     SerializerHelper.serializeString(stream, self.lemma)
     SerializerHelper.serializeShort(stream, self.invariant_prefix_length)
     SerializerHelper.serializeShort(stream, self.max_length)
示例#12
0
 def deserialize(self, stream: Stream) -> None:
     """ Восстановить словарь из потока
     
     Args:
         stream(Stream): поток для десериализации
     """
     self.__m_specs = SerializerHelper.deserialize_string(stream)
     self.__init()
     cou = SerializerHelper.deserialize_int(stream)
     while cou > 0:
         it = ExtOntologyItem()
         it._deserialize(stream)
         self.items.append(it)
         cou -= 1
     self.__init_hash()
示例#13
0
 def _deserialize(self, stream: Stream) -> None:
     self.ext_id = (SerializerHelper.deserialize_string(stream))
     self.__m_caption = SerializerHelper.deserialize_string(stream)
     cou = SerializerHelper.deserialize_int(stream)
     if (cou > 0):
         self._refs = list()
         while cou > 0:
             typ = SerializerHelper.deserialize_string(stream)
             r = ProcessorService.create_referent(typ)
             r.deserialize(stream, self._refs, None)
             self._refs.append(r)
             cou -= 1
     self.type_name = SerializerHelper.deserialize_string(stream)
     self.referent = ProcessorService.create_referent(self.type_name)
     self.referent.deserialize(stream, self._refs, None)
示例#14
0
 def _serialize(self, stream: Stream) -> None:
     from pullenti.ner.core.internal.SerializerHelper import SerializerHelper
     super()._serialize(stream)
     SerializerHelper.serialize_string(stream, self.term)
     SerializerHelper.serialize_string(stream, self.lemma)
     SerializerHelper.serialize_short(
         stream, self.invariant_prefix_length_of_morph_vars)
     SerializerHelper.serialize_short(stream, self.max_length_of_morph_vars)
示例#15
0
 def _serialize(self, stream: io.IOBase) -> None:
     from pullenti.ner.core.internal.SerializerHelper import SerializerHelper
     SerializerHelper.serializeInt(stream, self.begin_char)
     SerializerHelper.serializeInt(stream, self.end_char)
     SerializerHelper.serializeInt(stream, self.__m_attrs)
     SerializerHelper.serializeInt(stream, self.chars.value)
     if (self.__m_morph is None):
         self.__m_morph = MorphCollection()
     self.__m_morph._serialize(stream)
示例#16
0
 def serialize(self, stream : io.IOBase) -> None:
     Utils.writeByteIO(stream, 0xAA)
     Utils.writeByteIO(stream, 1)
     self.__m_sofa.serialize(stream)
     SerializerHelper.serializeInt(stream, self.base_language.value)
     if (len(self.__m_entities) == 0): 
         for d in self.__m_datas.items(): 
             self.__m_entities.extend(d[1].referents)
     SerializerHelper.serializeInt(stream, len(self.__m_entities))
     i = 0
     while i < len(self.__m_entities): 
         self.__m_entities[i].tag = i + 1
         SerializerHelper.serializeString(stream, self.__m_entities[i].type_name)
         i += 1
     for e0_ in self.__m_entities: 
         e0_.serialize(stream)
     SerializerHelper.serializeTokens(stream, self.first_token, 0)
示例#17
0
 def serialize(self, stream: Stream) -> None:
     stream.writebyte(0xAA)
     stream.writebyte(1)
     self.__m_sofa.serialize(stream)
     SerializerHelper.serialize_int(stream, self.base_language.value)
     if (len(self.__m_entities) == 0):
         for d in self.__m_datas.items():
             self.__m_entities.extend(d[1].referents)
     SerializerHelper.serialize_int(stream, len(self.__m_entities))
     i = 0
     while i < len(self.__m_entities):
         self.__m_entities[i].tag = i + 1
         SerializerHelper.serialize_string(stream,
                                           self.__m_entities[i].type_name)
         i += 1
     for e0_ in self.__m_entities:
         e0_.serialize(stream)
     SerializerHelper.serialize_tokens(stream, self.first_token, 0)
示例#18
0
 def _deserialize(self, stream: Stream) -> None:
     from pullenti.ner.core.internal.SerializerHelper import SerializerHelper
     self.__m_class = MorphClass._new53(
         SerializerHelper.deserialize_short(stream))
     self.__m_case = MorphCase._new29(
         SerializerHelper.deserialize_short(stream))
     self.__m_gender = (Utils.valToEnum(
         SerializerHelper.deserialize_short(stream), MorphGender))
     self.__m_number = (Utils.valToEnum(
         SerializerHelper.deserialize_short(stream), MorphNumber))
     self.__m_voice = (Utils.valToEnum(
         SerializerHelper.deserialize_short(stream), MorphVoice))
     self.__m_language = MorphLang._new56(
         SerializerHelper.deserialize_short(stream))
     cou = SerializerHelper.deserialize_int(stream)
     self.__m_items = list()
     i = 0
     while i < cou:
         it = self.__deserialize_item(stream)
         if (it is not None):
             self.__m_items.append(it)
         i += 1
     self.__m_need_recalc = False
示例#19
0
 def deserialize(self, stream: Stream) -> None:
     self.text = SerializerHelper.deserialize_string(stream)
示例#20
0
 def _serialize(self, stream: Stream) -> None:
     SerializerHelper.serialize_string(
         stream, (None if self.ext_id is None else str(self.ext_id)))
     SerializerHelper.serialize_string(stream, self.__m_caption)
     if (self._refs is None):
         SerializerHelper.serialize_int(stream, 0)
     else:
         SerializerHelper.serialize_int(stream, len(self._refs))
         id0_ = 1
         for r in self._refs:
             r.tag = id0_
             id0_ += 1
         for r in self._refs:
             r.occurrence.clear()
             SerializerHelper.serialize_string(stream, r.type_name)
             r.serialize(stream)
     self.referent.occurrence.clear()
     SerializerHelper.serialize_string(stream, self.type_name)
     self.referent.serialize(stream)
示例#21
0
 def _deserialize(self, stream: Stream, kit_: 'AnalysisKit',
                  vers: int) -> None:
     super()._deserialize(stream, kit_, vers)
     id0_ = SerializerHelper.deserialize_int(stream)
     if (id0_ > 0):
         self.referent = kit_.entities[id0_ - 1]
示例#22
0
 def serialize(self, stream: io.IOBase) -> None:
     SerializerHelper.serializeString(stream, self.text)
示例#23
0
 def deserialize(self, stream: io.IOBase) -> None:
     self.text = SerializerHelper.deserializeString(stream)
示例#24
0
 def _serialize(self, stream: Stream) -> None:
     from pullenti.ner.core.internal.SerializerHelper import SerializerHelper
     SerializerHelper.serialize_short(stream, self.__m_class.value)
     SerializerHelper.serialize_short(stream, self.__m_case.value)
     SerializerHelper.serialize_short(stream, self.__m_gender)
     SerializerHelper.serialize_short(stream, self.__m_number)
     SerializerHelper.serialize_short(stream, self.__m_voice)
     SerializerHelper.serialize_short(stream, self.__m_language.value)
     if (self.__m_items is None):
         self.__m_items = list()
     SerializerHelper.serialize_int(stream, len(self.__m_items))
     for it in self.__m_items:
         self.__serialize_item(stream, it)
示例#25
0
 def _serialize(self, stream: Stream) -> None:
     from pullenti.ner.core.internal.SerializerHelper import SerializerHelper
     super()._serialize(stream)
     SerializerHelper.serialize_string(stream, self.__m_value)
     SerializerHelper.serialize_int(stream, self.typ)
示例#26
0
 def __serialize_item(self, stream: Stream, bi: 'MorphBaseInfo') -> None:
     from pullenti.ner.core.internal.SerializerHelper import SerializerHelper
     ty = 0
     if (isinstance(bi, MorphWordForm)):
         ty = (1)
     stream.writebyte(ty)
     SerializerHelper.serialize_short(stream, bi.class0_.value)
     SerializerHelper.serialize_short(stream, bi.case_.value)
     SerializerHelper.serialize_short(stream, bi.gender)
     SerializerHelper.serialize_short(stream, bi.number)
     SerializerHelper.serialize_short(stream, bi.language.value)
     wf = Utils.asObjectOrNull(bi, MorphWordForm)
     if (wf is None):
         return
     SerializerHelper.serialize_string(stream, wf.normal_case)
     SerializerHelper.serialize_string(stream, wf.normal_full)
     SerializerHelper.serialize_short(stream, wf.undef_coef)
     SerializerHelper.serialize_int(
         stream, (0 if wf.misc is None else len(wf.misc.attrs)))
     if (wf.misc is not None):
         for a in wf.misc.attrs:
             SerializerHelper.serialize_string(stream, a)
示例#27
0
 def serialize(self, stream: io.IOBase) -> None:
     SerializerHelper.serializeString(stream, self.type_name)
     SerializerHelper.serializeInt(stream, len(self.__m_slots))
     for s in self.__m_slots:
         SerializerHelper.serializeString(stream, s.type_name)
         SerializerHelper.serializeInt(stream, s.count)
         if ((isinstance(s.value, Referent)) and (isinstance(
             (s.value).tag, int))):
             SerializerHelper.serializeInt(stream, -((s.value).tag))
         elif (isinstance(s.value, str)):
             SerializerHelper.serializeString(
                 stream, Utils.asObjectOrNull(s.value, str))
         elif (s.value is None):
             SerializerHelper.serializeInt(stream, 0)
         else:
             SerializerHelper.serializeString(stream, str(s.value))
     if (self.__m_occurrence is None):
         SerializerHelper.serializeInt(stream, 0)
     else:
         SerializerHelper.serializeInt(stream, len(self.__m_occurrence))
         for o in self.__m_occurrence:
             SerializerHelper.serializeInt(stream, o.begin_char)
             SerializerHelper.serializeInt(stream, o.end_char)
             attr = 0
             if (o.essential_for_occurence):
                 attr = 1
             SerializerHelper.serializeInt(stream, attr)
示例#28
0
 def serialize(self, stream: Stream) -> None:
     SerializerHelper.serialize_string(stream, self.text)