### hw

parent 767f8142
Unit_test.py 0 → 100644
 from unittest import TestCase from sentiment import method_11 from sentiment import first_input13 class Unit_test(TestCase): def test_method_11(self): with open('sentiment.txt') as s: reviews = list(s) sentiments = {} self.assertEqual(method_11(reviews,sentiments)['arty'], [3,1,1,0]) def test_first_Input13(self): sentiments = {} y=input() self.assertEqual(first_input13(sentiments,y)['Invalid input'])
 from __future__ import print_function, division from builtins import input import numpy as np def main(): reviews = list() try: with open('sentiment.txt') as s: reviews = list(s) # print(len(reviews)) except OSError: print('Does not exist') sentiments = {} ... ... @@ -25,7 +27,7 @@ def main(): # y=x, num=0, av='None' # ) # print(output) y = None #y = None while True: print('Enter your choice: \n' ... ... @@ -45,67 +47,98 @@ def main(): if y == 5: print('Goodbye') break if y == 1: x = input("Enter a word") if x in sentiments: first_input13(sentiments, y) output = 'The word "{y}" appears "{num}" times with an average sentiment of {av}. '.format( y=x, num=len(sentiments[x]), av=sum(sentiments[x]) / len(sentiments[x])) else: output = 'The word "{y}" appears "{num}" times with an average sentiment of {av}. '.format( y=x, num=0, av='None' ) print(output) average = list() if y == 2 or y == 3: if y == 2 or y == 3 or y==4: average = list() file = input('Enter a file') try: with open(file) as file_words: user_file = file_words.read().split() for word_in_file in user_file: if word_in_file in sentiments.keys(): average.append(sum(sentiments[word]) / len(sentiments[word])) if y == 2: average.append(sum(sentiments[word_in_file]) / len(sentiments[word_in_file])) if not average: print('The average score of words in {y} is None '.format(y=file)) else: average_words = sum(average) / len(average) if average_words >= 2.01: print('The average score of words in {y} is {av}'.format(y=file, av=average_words)) print('The overall sentiment of {y} is positive'.format(y=file)) elif average_words <= 1.99: print('The average score of words in {y} is {av}'.format(y=file, av=average_words)) print('The overall sentiment of {y} is negative'.format(y=file)) else: print('The average score of words in {y} is {av}'.format(y=file, av=average_words)) print('The overall sentiment of {y} is neutral'.format(y=file)) if y == 3: # rating = sum(sentiments[x])/len(sentiments[x]) split_file = file.split() # highest_score = max(average) lowest_score = min(average) p = average.append(sum_word) for check_word in split_file: if check_word in sentiments: method_11(check_word) sum_word = sum(method_11(check_word)) / len(method_11(check_word)) for file_word, rate in sum_word.items(): if rate == highest_score: j = file_word if rate == lowest_score: j == file_word print('The most positive word is {phrase} with a score of {j}'.format(phrase=j, j=highest_score)) print('The most negative word is {phrase} with a score of {min}'.format(phrase=j, min=lowest_score)) except IOError: raise print('File could not be found') for word_in_file in user_file: if word_in_file in sentiments.keys(): average.append(sum(sentiments[word]) / len(sentiments[word])) if y == 2: average.append(sum(sentiments[word_in_file]) / len(sentiments[word_in_file])) if not average: print('The average score of words in {y} is None '.format(y=file)) else: one_word_average = sum(average) / len(average) if one_word_average >= 2.01: print('The average score of words in {y} is {av}'.format(y=file, av=one_word_average)) print('The overall sentiment of {y} is positive'.format(y=file)) elif one_word_average <= 1.99: print('The average score of words in {y} is {av}'.format(y=file, av=one_word_average)) print('The overall sentiment of {y} is negative'.format(y=file)) else: print('The average score of words in {y} is {av}'.format(y=file, av=one_word_average)) print('The overall sentiment of {y} is neutral'.format(y=file)) if y == 3: max_score = None min_score = None max_word = None min_Word = None number = 0 score_of_one_word = sum(sentiments[word_in_file]) / len(sentiments[word_in_file]) for word_in_file in user_file: if word_in_file in sentiments.keys(): if max_score is None: max_score = score_of_one_word max_word = word_in_file if score_of_one_word> max_score: max_score = score_of_one_word max_word = word_in_file if min_score is None: min_score = score_of_one_word min_Word = word_in_file if score_of_one_word < min_score: min_score = word_in_file min_Word = word_in_file print('The most positive word is {phrase} with a score of {max}'.format(phrase=max_word, max=max_score)) print('The most negative word is {phrase} with a score of {min}'.format(phrase=min_Word, min=min_score)) if y == 4: lowest_scores= [] largest_scores =[] score_of_one_word = sum(sentiments[word_in_file]) / len(sentiments[word_in_file]) for word_in_file in user_file: if word_in_file in sentiments.keys(): if score_of_one_word <= 1.99: lowest_scores.append(word_in_file) elif one_word_average>= 2.01: largest_scores.append(word_in_file) lowest_scores = str([lowest_scores]) largest_scores = str([largest_scores]) with open('negative.txt', 'w') as negative_file: negative_file.write(lowest_scores) with open('positive.txt', 'w') as positive_file: positive_file.write(largest_scores) def first_input13(sentiments, y): if y == 1: x = input("Enter a word") if x in sentiments: output = 'The word "{y}" appears "{num}" times with an average sentiment of {av}. '.format( y=x, num=len(sentiments[x]), av=sum(sentiments[x]) / len(sentiments[x])) else: output = 'The word "{y}" appears "{num}" times with an average sentiment of {av}. '.format( y=x, num=0, av='None' ) print(output) def method_11(reviews, sentiments): ... ...
 from unittest import TestCase from sentiment import method_11 class TestMethod_11(TestCase): def test_method_11(self): reviews = ['John', "jack "] sentiments = [2,2] self.assertEqual(method_11(reviews,sentiments)[3,0,1,1], ['arty'])
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!