gpt4 book ai didi

python - 编写标准差函数

转载 作者:行者123 更新时间:2023-11-28 21:47:15 25 4
gpt4 key购买 nike

我有一个字典,其中的单词作为键,整数作为值。它输出如下:

print (word_ratings_dict)
{'hate': [1, 2, 2, 1, 1, 3, 0, 2, 3, 2, 0, 4, 1, 1], 'joy': [3, 4, 3, 3, 2, 4, 1]}

对于字典中的每个关键词,我需要在不使用统计模块的情况下计算其标准差。

这是我目前所拥有的:

def menu_validate(prompt, min_val, max_val):
""" produces a prompt, gets input, validates the input and returns a value. """
while True:
try:
menu = int(input(prompt))
if menu >= min_val and menu <= max_val:
return menu
break
elif menu.lower == "quit" or menu.lower == "q":
quit()
print("You must enter a number value from {} to {}.".format(min_val, max_val))
except ValueError:
print("You must enter a number value from {} to {}.".format(min_val, max_val))

def open_file(prompt):
""" opens a file """
while True:
try:
file_name = str(input(prompt))
if ".txt" in file_name:
input_file = open(file_name, 'r')
return input_file
else:
input_file = open(file_name+".txt", 'r')
return input_file
except FileNotFoundError:
print("You must enter a valid file name. Make sure the file you would like to open is in this programs root folder.")

def make_list(file):
lst = []
for line in file:
lst2 = line.split(' ')
del lst2[-1]
lst.append(lst2)
return lst

def rating_list(lst):
'''iterates through a list of lists and appends the first value in each list to a second list'''
rating_list = []
for list in lst:
rating_list.append(list[0])
return rating_list

def word_cnt(lst, word : str):
cnt = 0
for list in lst:
for word in list:
cnt += 1
return cnt

def words_list(file):
lst = []
for word in file:
lst.append(word)
return lst

def word_rating(word, ratings_lst):
'''finds ratings for a word and appends them to a dictionary of words'''
lst = []
for line in ratings_lst:
line = line.split()
if word in line:
rating = line[0]
lst.append(int(rating))
return lst
cnt_list = []
while True:
menu = menu_validate("1. Get sentiment for all words in a file? \nQ. Quit \n", 1, 1)
if menu == True:
ratings_file = open("sample.txt")
ratings_list = make_list(ratings_file)
word_ratings_dict = {}
word_avg_dict = {}
std_dev_dict = {}
word_file = open_file("Enter the name of the file with words to score \n")
word_list = words_list(word_file)


for word in word_list:
#counts the words
cnt = word_cnt(ratings_list, word)

cnt_dict[word] = cnt

word_ratings_dict[word] = word_rating(word, ratings_list)

total_rating = 0

for i in range (0, cnt):
total_rating += word_ratings_dict[word][i]

word_avg_dict[word] = total_rating/cnt

std_dev_dict[word] =

最佳答案

这些将很好地完成工作:

def mean(data):
return float(sum(data) / len(data))

def variance(data):
mu = mean(data)
return mean([(x - mu) ** 2 for x in data])

def stddev(data):
return sqrt(variance(data))

关于python - 编写标准差函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36830737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com