from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics import classification_report
from sklearn.svm import SVC
training_corpus = [
("I am exhausted of this work", "class_B"),
("I can't cooperate with this", "class_B"),
("He is my badest enemy", "class_B"),
("My management is poor", "class_B"),
("I love this burger", "class_A"),
("This is an brilliant place!", "class_A"),
("I feel very good about these dates", "class_A"),
("This is my best work", "class_A"),
("What an awesome view", "class_A"),
("I do not like this dish", "class_B")
]
test_corpus = [
("I am not feeling well, today", "class_B"),
("I feel brilliant", "class_A"),
("Gray is a friend of mine", "class_A"),
("I do not enjoy my job", "class_B")
]
train_data = []
train_labels = []
for row in training_corpus:
train_data.append(row[0])
train_labels.append(row[1])
test_data = []
test_labels = []
for row in test_corpus:
test_data.append(row[0])
test_labels.append(row[1])
vectorizer = TfidfVectorizer(min_df=4, max_df=0.9)
train_vectors = vectorizer.fit_transform(train_data)
test_vectors = vectorizer.transform(test_data)
model = SVC(kernel="linear")
model.fit(train_vectors, train_labels)
prediction = model.predict(test_vectors)
print(prediction)
print(classification_report(test_labels, prediction))
ZnJvbSBza2xlYXJuLmZlYXR1cmVfZXh0cmFjdGlvbi50ZXh0IGltcG9ydCBUZmlkZlZlY3Rvcml6ZXIKZnJvbSBza2xlYXJuLm1ldHJpY3MgaW1wb3J0IGNsYXNzaWZpY2F0aW9uX3JlcG9ydApmcm9tIHNrbGVhcm4uc3ZtIGltcG9ydCBTVkMKCnRyYWluaW5nX2NvcnB1cyA9IFsKICAgICgiSSBhbSBleGhhdXN0ZWQgb2YgdGhpcyB3b3JrIiwgImNsYXNzX0IiKSwKICAgICgiSSBjYW4ndCBjb29wZXJhdGUgd2l0aCB0aGlzIiwgImNsYXNzX0IiKSwKICAgICgiSGUgaXMgbXkgYmFkZXN0IGVuZW15IiwgImNsYXNzX0IiKSwKICAgICgiTXkgbWFuYWdlbWVudCBpcyBwb29yIiwgImNsYXNzX0IiKSwKICAgICgiSSBsb3ZlIHRoaXMgYnVyZ2VyIiwgImNsYXNzX0EiKSwKICAgICgiVGhpcyBpcyBhbiBicmlsbGlhbnQgcGxhY2UhIiwgImNsYXNzX0EiKSwKICAgICgiSSBmZWVsIHZlcnkgZ29vZCBhYm91dCB0aGVzZSBkYXRlcyIsICJjbGFzc19BIiksCiAgICAoIlRoaXMgaXMgbXkgYmVzdCB3b3JrIiwgImNsYXNzX0EiKSwKICAgICgiV2hhdCBhbiBhd2Vzb21lIHZpZXciLCAiY2xhc3NfQSIpLAogICAgKCJJIGRvIG5vdCBsaWtlIHRoaXMgZGlzaCIsICJjbGFzc19CIikKXQoKdGVzdF9jb3JwdXMgPSBbCiAgICAoIkkgYW0gbm90IGZlZWxpbmcgd2VsbCwgdG9kYXkiLCAiY2xhc3NfQiIpLAogICAgKCJJIGZlZWwgYnJpbGxpYW50IiwgImNsYXNzX0EiKSwKICAgICgiR3JheSBpcyBhIGZyaWVuZCBvZiBtaW5lIiwgImNsYXNzX0EiKSwKICAgICgiSSBkbyBub3QgZW5qb3kgbXkgam9iIiwgImNsYXNzX0IiKQpdCgp0cmFpbl9kYXRhID0gW10KdHJhaW5fbGFiZWxzID0gW10KZm9yIHJvdyBpbiB0cmFpbmluZ19jb3JwdXM6CiAgICB0cmFpbl9kYXRhLmFwcGVuZChyb3dbMF0pCiAgICB0cmFpbl9sYWJlbHMuYXBwZW5kKHJvd1sxXSkKCnRlc3RfZGF0YSA9IFtdCnRlc3RfbGFiZWxzID0gW10KZm9yIHJvdyBpbiB0ZXN0X2NvcnB1czoKICAgIHRlc3RfZGF0YS5hcHBlbmQocm93WzBdKQogICAgdGVzdF9sYWJlbHMuYXBwZW5kKHJvd1sxXSkKCnZlY3Rvcml6ZXIgPSBUZmlkZlZlY3Rvcml6ZXIobWluX2RmPTQsIG1heF9kZj0wLjkpCnRyYWluX3ZlY3RvcnMgPSB2ZWN0b3JpemVyLmZpdF90cmFuc2Zvcm0odHJhaW5fZGF0YSkKdGVzdF92ZWN0b3JzID0gdmVjdG9yaXplci50cmFuc2Zvcm0odGVzdF9kYXRhKQoKbW9kZWwgPSBTVkMoa2VybmVsPSJsaW5lYXIiKQptb2RlbC5maXQodHJhaW5fdmVjdG9ycywgdHJhaW5fbGFiZWxzKQoKcHJlZGljdGlvbiA9IG1vZGVsLnByZWRpY3QodGVzdF92ZWN0b3JzKQoKcHJpbnQocHJlZGljdGlvbikKcHJpbnQoY2xhc3NpZmljYXRpb25fcmVwb3J0KHRlc3RfbGFiZWxzLCBwcmVkaWN0aW9uKSkK