def pad_sentece(self, windows_size): """ Padding the sentence with nonsence word so that the moving window method can be applied :param windows_size: :return: """ assert (windows_size+1)%2 == 0, "window size should be an odd number" padding_num = (windows_size - 1)/2 paddings = [get_padding_word()] * padding_num properties = [WordProperty()] * padding_num for property in properties: property.pos = PosTags.PADDING_POS_TAG self.__words = paddings + self.__words + paddings self.__word_properties = properties + self.__word_properties + properties for srl in self.__srl_structs: srl.pos_shift(padding_num) for ne in self.__nes: ne.pos_shift(padding_num) for chunk in self.__chunks: chunk.pos_shift(padding_num) for phrase in self.__phrases: phrase.pos_shift(padding_num)
def word_windows(self, windows_size): assert (windows_size+1)%2 == 0, "window size should be an odd number" padding_num = (windows_size - 1)/2 paddings = [get_padding_word()] * padding_num extended_words = paddings + self.__words + paddings return moving_window(extended_words, windows_size)