Example #1
0
def main():
    parser = argparse.ArgumentParser(
        description='Train a MNB or SVM Sentiment Analyzer.')
    parser.add_argument('training_set',
                        metavar='Training set directory',
                        help='Training set directory.')
    parser.add_argument('test_set',
                        metavar='Test set directory',
                        help='Test set directory.')
    parser.add_argument('-a',
                        '--algorithm',
                        dest='algorithm',
                        default='MNB',
                        choices=['MNB', 'SVM'],
                        help='Algorithm.')
    parser.add_argument(
        '-v',
        '--vectorizer',
        dest='vectorizer',
        default='tf-idf',
        choices=['tf-idf', 'count'],
        help='Vectorizer (feature [count], or fractional [tf-idf] count).')
    parser.add_argument('-s',
                        '--size',
                        '--training_set_size',
                        dest='training_set_size',
                        type=int,
                        help='Training set size.')
    parser.add_argument('-ng',
                        '--ngram',
                        '--ngram_length',
                        dest='ngram_length',
                        default='unigram',
                        help='N-gram length.',
                        choices=['unigram', 'bigram', 'trigram'])
    parser.add_argument('-ne',
                        '--neutral',
                        dest='include_neutral',
                        default=False,
                        help='Include neutral class?',
                        action=argparse.BooleanOptionalAction)
    parser.add_argument('-sw',
                        '--stopwords',
                        dest='use_stopwords',
                        default=True,
                        help='Use stop words?',
                        action=argparse.BooleanOptionalAction)

    args = parser.parse_args()

    print(f'Starting sentiment analysis with: {args}')
    s = SentimentAnalyzer(args)
    print('Starting training.')
    s.train()
    print('Starting testing.')
    s.test()