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
Exemple #2
0
            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)