MCPcopy Index your code
hub / github.com/clips/pattern / test_sentiment

Method test_sentiment

test/test_en.py:851–887  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

849 print "pattern.text.avg"
850
851 def test_sentiment(self):
852 # Assert < 0 for negative adjectives and > 0 for positive adjectives.
853 self.assertTrue(en.sentiment("wonderful")[0] > 0)
854 self.assertTrue(en.sentiment("horrible")[0] < 0)
855 self.assertTrue(en.sentiment(en.wordnet.synsets("horrible", pos="JJ")[0])[0] < 0)
856 self.assertTrue(en.sentiment(en.Text(en.parse("A bad book. Really horrible.")))[0] < 0)
857 # Assert that :) and :( are recognized.
858 self.assertTrue(en.sentiment(":)")[0] > 0)
859 self.assertTrue(en.sentiment(":(")[0] < 0)
860 # Assert the accuracy of the sentiment analysis (for the positive class).
861 # Given are the scores for Pang & Lee's polarity dataset v2.0:
862 # http://www.cs.cornell.edu/people/pabo/movie-review-data/
863 # The baseline should increase (not decrease) when the algorithm is modified.
864 from pattern.db import Datasheet
865 from pattern.metrics import test
866 reviews = []
867 for score, review in Datasheet.load(os.path.join(PATH, "corpora", "polarity-en-pang&lee1.csv")):
868 reviews.append((review, int(score) > 0))
869 A, P, R, F = test(lambda review: en.positive(review), reviews)
870 #print A, P, R, F
871 self.assertTrue(A > 0.741)
872 self.assertTrue(P > 0.750)
873 self.assertTrue(R > 0.722)
874 self.assertTrue(F > 0.736)
875 # Assert the accuracy of the sentiment analysis on short text (for the positive class).
876 # Given are the scores for Pang & Lee's sentence polarity dataset v1.0:
877 # http://www.cs.cornell.edu/people/pabo/movie-review-data/
878 reviews = []
879 for score, review in Datasheet.load(os.path.join(PATH, "corpora", "polarity-en-pang&lee2.csv")):
880 reviews.append((review, int(score) > 0))
881 A, P, R, F = test(lambda review: en.positive(review), reviews)
882 #print A, P, R, F
883 self.assertTrue(A > 0.646)
884 self.assertTrue(P > 0.657)
885 self.assertTrue(R > 0.613)
886 self.assertTrue(F > 0.634)
887 print "pattern.en.sentiment()"
888
889 def test_sentiment_twitter(self):
890 sanders = os.path.join(PATH, "corpora", "polarity-en-sanders.csv")

Callers

nothing calls this directly

Calls 4

testFunction · 0.90
parseMethod · 0.45
loadMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected