class SyntaxAnalysis: def __init__(self): self.__tokenizer = SinhalaTokenizer() self.__tagger = POSTagger() self.__stemming = Stemming() def pos_tagger(self, sentence): # tokenization tokens = [self.__tokenizer.tokenize(f'{ss}.') for ss in self.__tokenizer.split_sentences(sentence)] # Stemming stems = [] for token in tokens[0]: stems.append(self.__stemming.find_root(token)) # POS Tagging pos_tags = self.__tagger.predict([stems]) return pos_tags
word_next = sent[i + 1] features.update({ f'+1:word': word_next, '+1:word.isdigit()': word_next.isdigit(), }) else: features['EOS'] = True return features if __name__ == '__main__': from sinling import SinhalaTokenizer tokenizer = SinhalaTokenizer() document = 'මනුෂ්යයා අවුරුදු ලක්ෂ ගණනක සිට වෛරස් වසංගත නිසා එළිපිටම පීඩා විඳි සත්වයෙකි. ' \ 'ඇතැම් වෛරස් රෝග වලට වැක්සීන හෙවත් එන්නත් ද වෛරස් නාශක ඖෂධ ද තිබුනද සියලූ වෛරස් ' \ 'සම්බන්ධයෙන් ඒ න්යාය වැඩ කරන්නේ නැත. වසූරිය වෛරසය මිනිසා විසින් මිහිමතින් තුරන් කර තිබේ.' tokenized_sentences = [ tokenizer.tokenize(f'{ss}.') for ss in tokenizer.split_sentences(document) ] tagger = POSTagger() pos_tags = tagger.predict(tokenized_sentences) for sent in pos_tags: print(sent)