def test_tf_idf(self): pipeline = Pipeline( DataLoader(text_processor=self.text_processor, n_grams=3), TextEncoder(encode_type=SGDTestCase.EncodingAliases.TF_IDF), SGDClassifier(num_labels=3)) pipeline(train=SGDTestCase.INPUT_FILE, test=SGDTestCase.OUTPUT_FILE) pipeline.save(SGDTestCase.SAVED_PATH) _pipeline = Pipeline.load(SGDTestCase.SAVED_PATH) self.assertIsInstance(_pipeline, Pipeline) predict_results = _pipeline.predict([ 'hàng ok đầu tuýp có một số không vừa ốc siết. chỉ được một số đầu thôi ' '.cần nhất đầu tuýp 14 mà không có. không đạt yêu cầu của mình sử dụng', 'Son đẹpppp, mùi hương vali thơm nhưng hơi nồng, chất son mịn, màu lên ' 'chuẩn, đẹppppp' ]) self.assertIsInstance(predict_results, np.ndarray)
def test_one_hot_ft(self): pipeline = Pipeline( DataLoader(text_processor=self.text_processor, n_grams=1), TextEncoder(encode_type=LSTMTestCase.EncodingAliases.ONE_HOT), LSTMClassifier(num_labels=3, num_epochs=3, bidirectional=False, attention=True)) pipeline(train=LSTMTestCase.INPUT_FILE, test=LSTMTestCase.OUTPUT_FILE) pipeline.save(LSTMTestCase.SAVED_PATH) _pipeline = Pipeline.load(LSTMTestCase.SAVED_PATH) self.assertIsInstance(_pipeline, Pipeline) predict_results = _pipeline.predict([ 'hàng ok đầu tuýp có một số không vừa ốc siết. chỉ được một số đầu thôi ' '.cần nhất đầu tuýp 14 mà không có. không đạt yêu cầu của mình sử dụng', 'Son đẹpppp, mùi hương vali thơm nhưng hơi nồng, chất son mịn, màu lên ' 'chuẩn, đẹppppp' ]) self.assertIsInstance(predict_results, np.ndarray)
def test_one_hot(self): pipeline = Pipeline( DataLoader(text_processor=self.text_processor, n_grams=3), TextEncoder( encode_type=TransformerTestCase.EncodingAliases.ONE_HOT), TransformerClassifier( num_labels=3, language_model_shortcut=TransformerTestCase.LM_SHORTCUT)) pipeline(train=TransformerTestCase.INPUT_FILE, test=TransformerTestCase.OUTPUT_FILE) pipeline.save(TransformerTestCase.SAVED_PATH) _pipeline = Pipeline.load(TransformerTestCase.SAVED_PATH) self.assertIsInstance(_pipeline, Pipeline) predict_results = _pipeline.predict([ 'hàng ok đầu tuýp có một số không vừa ốc siết. chỉ được một số đầu thôi ' '.cần nhất đầu tuýp 14 mà không có. không đạt yêu cầu của mình sử dụng', 'Son đẹpppp, mùi hương vali thơm nhưng hơi nồng, chất son mịn, màu lên ' 'chuẩn, đẹppppp' ]) self.assertIsInstance(predict_results, np.ndarray)
if __name__ == '__main__': text_processor = TextProcessor( methods=['word_segmentation', 'remove_punctuation', 'lower']) pipeline = Pipeline( DataLoader(text_processor=text_processor, n_grams=2, max_length=100), TextEncoder(encode_type='word2vec', model_path='./pretrained/wiki.vi.model.bin.gz'), LSTMClassifier(num_labels=2, bidirectional=False, attention=True, device='cuda', hidden_layers=1)) train_results = pipeline(train='./data/dev.vi', test='./data/dev_test.vi', num_epochs=3, learning_rate=1e-3) print(train_results) predict_results = pipeline.predict([ 'hàng ok đầu tuýp có một số không vừa ốc siết. chỉ được một số đầu thôi .cần ' 'nhất đầu tuýp 14 mà không có. không đạt yêu cầu của mình sử dụng', 'Son đẹpppp, mùi hương vali thơm nhưng hơi nồng, chất son mịn, màu lên chuẩn, ' 'đẹppppp', 'Son rất đẹp màu xinh lắm' ]) print(predict_results) print(f'Decoded results: {pipeline.decode_polarity(predict_results)}') pipeline.save(f'./weights/lstm.sentivi')
from sentivi import Pipeline from sentivi.data import DataLoader, TextEncoder from sentivi.classifier import TextCNNClassifier from sentivi.text_processor import TextProcessor if __name__ == '__main__': text_processor = TextProcessor(methods=['word_segmentation', 'remove_punctuation', 'lower']) pipeline = Pipeline(DataLoader(text_processor=text_processor, n_grams=2), TextEncoder(encode_type='tf-idf', model_path='./pretrained/wiki.vi.model.bin.gz'), TextCNNClassifier(num_labels=3)) train_results = pipeline(train='./data/dev.vi', test='./data/dev_test.vi', num_epochs=3) print(train_results) predict_results = pipeline.predict(['hàng ok đầu tuýp có một số không vừa ốc siết. chỉ được một số đầu thôi .cần ' 'nhất đầu tuýp 14 mà không có. không đạt yêu cầu của mình sử dụng', 'Son đẹpppp, mùi hương vali thơm nhưng hơi nồng, chất son mịn, màu lên chuẩn, ' 'đẹppppp', 'Son rất đẹp màu xinh lắm']) print(predict_results) print(f'Decoded results: {pipeline.decode_polarity(predict_results)}') pipeline.save('./weights/text_cnn.sentivi')
from sentivi import Pipeline from sentivi.data import DataLoader, TextEncoder from sentivi.classifier import MLPClassifier from sentivi.text_processor import TextProcessor if __name__ == '__main__': text_processor = TextProcessor( methods=['word_segmentation', 'remove_punctuation', 'lower']) pipeline = Pipeline( DataLoader(text_processor=text_processor, n_grams=3), TextEncoder(encode_type='word2vec', model_path='./pretrained/wiki.vi.model.bin.gz'), MLPClassifier(num_labels=3, max_iter=10, verbose=True)) train_results = pipeline(train='./data/dev.vi', test='./data/dev_test.vi') print(train_results) predict_results = pipeline.predict([ 'hàng ok đầu tuýp có một số không vừa ốc siết. chỉ được một số đầu thôi .cần ' 'nhất đầu tuýp 14 mà không có. không đạt yêu cầu của mình sử dụng', 'Son đẹpppp, mùi hương vali thơm nhưng hơi nồng, chất son mịn, màu lên chuẩn, ' 'đẹppppp' ]) print(predict_results) print(f'Decoded results: {pipeline.decode_polarity(predict_results)}') pipeline.save(f'./weights/mlp.sentivi')
from sentivi import Pipeline from sentivi.data import DataLoader, TextEncoder from sentivi.classifier import SVMClassifier from sentivi.text_processor import TextProcessor if __name__ == '__main__': text_processor = TextProcessor( methods=['word_segmentation', 'remove_punctuation', 'lower']) pipeline = Pipeline(DataLoader(text_processor=text_processor, n_grams=3), TextEncoder(encode_type='one-hot'), SVMClassifier(num_labels=3)) train_results = pipeline(train='./data/dev.vi', test='./data/dev_test.vi') print(train_results) pipeline.save('./weights/pipeline.sentivi') _pipeline = Pipeline.load('./weights/pipeline.sentivi') predict_results = _pipeline.predict([ 'hàng ok đầu tuýp có một số không vừa ốc siết. chỉ được một số đầu thôi .cần ' 'nhất đầu tuýp 14 mà không có. không đạt yêu cầu của mình sử dụng', 'Son đẹpppp, mùi hương vali thơm nhưng hơi nồng, chất son mịn, màu lên chuẩn, ' 'đẹppppp' ]) print(predict_results) print(f'Decoded results: {_pipeline.decode_polarity(predict_results)}')