Диссертация (1173166), страница 36
Текст из файла (страница 36)
I reallyam.That neverhappened.Justgenerallyshowing thegirl somekindness.That's nottrue.I only let youin herebecauseHelen hasbeen a friendto Martin.No. He isn't.22979.Сериал"Lie tome"21136.1736.21(4 сек)ж80.Сериал"Lie tome"21140.5941.01(2 сек)м81.Сериал"Lie tome"3128.42-8.45(3 сек)ж82.Сериал"Lie tome"3129.23-9.28(5 сек)ж83.Сериал"Lie tome"3129.31-9.35(4 сек)ж84.Сериал"Lie tome"3129.40-9.43(3 сек)ж85.Сериал"Lie tome"3129.45-9.47(2 сек)ж86.Сериал"Lie tome"Сериал"Castle"312ж81610.2210.24(2 сек)06.1706.19(2 сек)81606.22-ж87.88.СериалЖанр Полицейскаядрама, комедия-драмаСоздатель Эндрю В.МарлоуВ ролях Натан Филлион,Стана Катич, СьюзанжповеденияЖенщинаврет овлияниимужчины наееповедениеМужчинаврет оместонахождениитруповЖенщинаврет, чторассказалаполициивсе, чтознаетЖенщинавретописываяпреступницуЖенщинавретописываяпреступникаЖенщинавретпередаваясловапреступникаЖенщинаврет,описываядействияпреступницыЖенщинаврет о цветеглазЖенщинаврет, что неможетпомочьследствиюЖенщинаHe may havestarted methinkingabout us,what we aredoing, that'sall.There aren'tany bodies,Lightman.I, I 'vealready toldthe policeeverythingthat I know.They wereboth in theirlatetwentiesearly thirties,she wore aredsweatshirt,jeans,sneakers.Thin, Aah...Jean jacket,cap, blueeyes.Told me toget down onthe groundand then...She openedit.Mm..blue.Cannot helpyou even if Iwanted to.I don't know230"Castle"89.Сериал"Castle"90.Сериал"Castle"91.Сериал"Castle"92.Салливан, Джон Уэртас,Тамала Джонс, ШеймусДевер, Рубен СантьягоХадсон, Молли Куинн,Пенни ДжонсонДжеральд, ТоксОлагундойеСтрана СШАКоличество сезонов 8Количество серий 173Хронометраж 43 минутыСтудия ABC StudiosТрансляция- ТелеканалABCНа экранах 09.03.0916.05.16Формат видео 16:9IMDb ID 121902406.24(2 сек)81607.2307.26(3 сек)ж81614.2914.32(3 сек)ж81616.5617.01(5 сек)жСериал"Castle"81620.2220.24(2 сек)ж93.Сериал"Castle"81620.3120.36(5 сек)ж94.Сериал"Castle"8188.50-8.53(3 сек)ж95.Сериал"Castle"81811.5711.59(2 сек)ж96.Сериал"Castle"81812.3912.44(5 сек)жврет, что незнает именисвоегонапарникаЖенщинаврет, чтопоможетследствиюЖенщинаврет, что еевыпустилииз тюрьмыЖенщиназадаетриторический вопрос,чтобыпредставитьсмехотворной идею отом, что онапыталасьсбежатьЖенщинаврет, чтособираетсяпомочьследствиюЖенщинаврет, что ейнадо в душ,онасобираетсясбежатьчерез окноЖенщинаврет, что ейзвонилаподругаЖенщинаврет оздоровьенесуществующейподругиЖенщинаврет о том,как онадогадалась,что мужчинавретmy partner'sname.You wantHarmaham,this is howyou get him.I just got outon parole,you know,from a littlejob I did backin the dayWow, do youthink I wastrying toescape? I seea gun and Irun.
I wastrying to getto a phone,call 911.It's fool,Havy, youknow I canstill help.I thought I atleast get adecent meal,maybe a hotshower.No. A friendof mine isfallen ill.Oh, muchbetter,thanks.Look at hisneck, he hasa tiny lipbite, it's new.So, if Nettwas alone23197.Сериал"Castle"1311.3611.38(2 сек)ж98.Сериал"Castle"1312.2112.23(2 сек)ж99.Сериал"Castle"1312.2312.25(2 сек)ж100.Сериал"Castle"1313.4413.46(2 сек)жДевушкаврет особытиях вночьубийстваДевушкаврет онесуществующемубийцеДевушкаврет,описываянесуществующееубийствоДевушкаврет,обвиняяневиновного человекаlast night,who gavehim that?He was outof control,we were justtrying to stophim.And the guypoints thegun...And there's aloud pop andyou just seeDonny'sbodycrumble.He shotDonny.232Приложение 2. Программный код для обработки экспериментальныхданныхimport globimport reimport pandas as pdimport numpy as npimport matplotlibmatplotlib.use('Agg')import matplotlib.pyplot as pltimport seaborn as snsfrom openpyxl import load_workbookfrom textwrap import wrapbad_strings = {"(допускаются десятые и сотые доли)": "","(начало, середина, конец)": "","(в начале, середине, конце)*": "","(в начале середине конце)*": "","(есть 1, нет": "","оцените, насколько": "","оцените": "",233"насколько": "",",": "","Объясните.)": ""," и др);": "","определите": "","(Что Вы вкладываете в это понятие?": "","высоту": "высота","частоту": "частота","(если есть, то указать их число)": "","(регулярно 1 нерегулярно": "","(возможно несколько вариантов ответа)": "","(начало середина конец)": "","определение": "","участков": "участки","(есть 1 нет": "","(если есть то указать их число)": "",}files = glob.glob("*.xlsx")russian_file_genders = [234'м', 'м', 'м', 'м', 'м', 'м', 'м', 'м', 'м', 'м', 'м', 'м', 'ж', 'ж', 'ж','ж', 'м', 'ж', 'м', 'м', 'м', 'м', 'м', 'м', 'м', 'м', 'м', 'м', 'ж', 'м','м', 'ж', 'ж', 'ж', 'м', 'м', 'ж', 'ж', 'ж', 'м', 'м', 'м', 'м', 'м', 'м','м', 'м', 'м', 'м', 'ж', 'ж', 'ж', 'м', 'ж', 'ж', 'м', 'ж', 'ж', 'ж', 'ж','м', 'м', 'м', 'м', 'м', 'ж', 'ж', 'ж', 'ж', 'ж', 'ж', 'ж', 'ж', 'ж', 'ж','ж', 'м', 'м', 'м', 'м', 'м', 'ж', 'ж', 'ж', 'ж', 'ж', 'ж', 'ж', 'ж', 'ж','ж', 'ж', 'ж', 'ж', 'ж', 'ж', 'ж', 'ж', 'ж', 'ж']russian_men = [i for i,l in enumerate(russian_file_genders) if l == "м"]russian_women = [i for i,l in enumerate(russian_file_genders) if l == "ж"]english_file_genders = ['м', 'м', 'м', 'м', 'м', 'ж', 'ж', 'м', 'ж', 'м', 'м', 'ж', 'ж', 'м', 'м','м', 'ж', 'ж', 'ж', 'м', 'м', 'ж', 'ж', 'ж', 'ж', 'ж', 'м', 'ж', 'м', 'м','м', 'м', 'м', 'м', 'м', 'м', 'м', 'м', 'м', 'м', 'м', 'м', 'м', 'м', 'ж','ж', 'м', 'м', 'м', 'ж', 'ж', 'ж', 'м', 'м', 'м', 'ж', 'ж', 'м', 'м', 'м','ж', 'ж', 'м', 'м', 'м', 'м', 'м', 'ж', 'м', 'ж', 'ж', 'ж', 'м', 'м', 'м','м', 'ж', 'ж', 'ж', 'м', 'ж', 'ж', 'ж', 'ж', 'ж', 'ж', 'ж', 'ж', 'ж', 'ж','ж', 'ж', 'ж', 'ж', 'ж', 'ж', 'ж', 'ж', 'ж', 'ж']english_men = [i for i,l in enumerate(english_file_genders) if l == "м"]235english_women = [i for i,l in enumerate(english_file_genders) if l == "ж"]def convert_index(some_df, col):"""some_df is not a df, but a pandas.series object"""index = list(some_df.index)index = ["{}: {}".format(col, ind) for ind in index]for i_ind in range(len(index)):for s in bad_strings:index[i_ind] = index[i_ind].replace(s, bad_strings[s]).strip().lower()return pd.Index(index)def save_plots(df, column, lang="", sheet_type="", single_plot=False,gender=None):if gender:df = df[df.gender == gender]i=0print(column, lang)236value_dict = dict()for value in set(df[column].values):print(value)df_value = df[df[column] == value]if lang:df_value = df_value[df.language == lang]for col in df_value.columns[3: -1]:v_c = df_value[col].value_counts()v_c.index = convert_index(v_c, col)if i == 0:v_cs = v_c.copy()else:v_cs = v_cs.append(v_c)i += 1i=0value_dict[value] = v_csplot_names = list(value_dict.keys())nrows = round(len(set(df[column].values)) / 10) + 1ncols = round(len(set(df[column].values)) / 5) + 1inches_x = nrows * ncols * 2 + 40.5inches_y = nrows * ncols * 2 + 20.5237fig, axes = plt.subplots(nrows=nrows, ncols=ncols)fig.set_size_inches(inches_x, inches_y, forward=True)p_i = 0for a_i in range(len(axes)):for a_j in range(len(axes[a_i])):if 5 * a_i + a_j >= len(plot_names):continuetry:p = plot_names[p_i]except:continuep_i += 1print(a_i, a_j, p)x = list(value_dict[p].index)y = [c for c in value_dict[p]]x = ['\n'.join(wrap(l, 20)) + '\n' for l in x]sort_ind = np.argsort(y)[::-1]y = [y[s_i] for s_i in sort_ind]x = [x[s_i] for s_i in sort_ind]if x and y:if single_plot:238try:ax = pd.DataFrame(y, x).head(10).plot(kind='barh', title=p,legend=False, width=0.5, align='center')fig = ax.get_figure()fig.set_size_inches(20, 10, forward=True)fig.savefig("file_plots/{}_{}.png".format(p, lang))plt.close('all')except:passelse:pd.DataFrame(y, x).head(10).plot(ax=axes[a_i, a_j],kind='barh', title=p,legend=False, width=0.5, align='center')else:print("No x and y", p)# ax.xticks(100)# ax.set_xlim(0, 200)# ax.set_ylim(0, 200)if not single_plot:239fig.autofmt_xdate()fig.subplots_adjust(bottom=0.01, right=0.99, top=0.9, left=0.05)fig.savefig("{}s_{}_{}.png".format(column, lang, sheet_type))plt.close('all')def filter_df(df, column, value, groupby=False, single_plot=True,sheet_type="", gender=None):if gender:df = df[df.gender == gender]if value:df_by_col = df[df.columns[3: -1]][df[column] == value]else:df_by_col = df[df.columns[3: -1]]if column == "language" and not value:value = "Русский и Английский"df_value_counts = Nonefor col in df_by_col:value_c = df_by_col[col].value_counts()value_c.index = convert_index(value_c, col)if type(df_value_counts) != pd.core.series.Series:240df_value_counts = value_c.copy()else:df_value_counts = df_value_counts.append(value_c)df_value_counts = df_value_counts.reset_index(name='count')\.sort_values(['count'], ascending=False)for i in range(2):if i == 0:x = list(df_value_counts["count"])[:100]y = list(df_value_counts["index"])[:100]title_head = "head"else:x = list(df_value_counts["count"])[-100:]y = list(df_value_counts["index"])[-100:]title_head = "tail"y = ['\n'.join(wrap(l, 50)) + '\n' for l in y]# height = [round(len(l.split("\n")) * 0.8) for l in y]ax = pd.DataFrame(x, y).plot(kind='barh', title=lang,legend=False, width=0.2, align='center')fig = ax.get_figure()fig.set_size_inches(20.5, 100.5, forward=True)241fig.autofmt_xdate()fig.subplots_adjust(bottom=0.05, right=0.99, top=0.99, left=0.3)fig.savefig('{}_{}_{}_{}.png'.format(value, title_head, sheet_type,gender))plt.close()files_stats = []user_stats = []df = pd.DataFrame()df["user"] = np.nandf["type"] = np.nandf["file"] = np.nanbad_rows = [21, 29, 30, 38, 39, 40, 47, 55]bad_rows += list(range(57, 74))all_entries = []s = sheet_type = 'Перцептивно-слуховой анализ'for i_f, f in enumerate(files):wb = load_workbook(filename=f)f = re.sub(242"\d+|\.xlsx|[А|а]нкета|эксперимента|для|-|,|Практика|-|""(Автосохраненный)|_|\(|\)", "", f).strip()if not f:f = "Неизвестный"print(f)sheet_ranges = wb[sheet_type]if i_f == 0:names = sheet_ranges["A"]rows = []rows_dict = dict()values_dict = dict()# bold = Falsefor i, n in enumerate(names):if type(n.value) == str and n.value.startswith("*"):passelif type(n.value) == str and (n.font.b or i in bad_rows):rows.append([i])value = re.sub("\d+\.*\d*\)", "", n.value).strip()df[value] = np.nanrows_dict[i] = value# bold = True243# rows[-1].append([i])elif type(n.value) == str and n.value and rows:values_dict[i] = n.valuerows[-1].append(i)values = sheet_ranges["B:GT"]for i in range(len(values)):entry = [f, s, i + 1]v = values[i]for r in rows:if len(r) == 1:entry.append(v[r[0]].value)else:result = np.nanfor r_i in range(1, len(r)):r_v = r[r_i]if v[r_v].value:result = values_dict[r_v]entry.append(result)all_entries.append(entry)df = pd.DataFrame(all_entries, columns=df.columns)244columns = list(df.columns)for i in range(len(columns)):for b in bad_strings:columns[i] = columns[i].replace(b, bad_strings[b]).strip().lower()df.columns = columnslanguages = list(df.file.values)for i in range(len(languages)):if languages[i] <= 100:languages[i] = "Русский"elif languages[i] > 101:languages[i] = "Английский"else:languages[i] = Nonefile_genders = russian_file_genders + english_file_gendersdf["language"] = languagesdf_file_genders = []for v in df.file.values:if v != 201:245try:df_file_genders.append(file_genders[v - 1])except:print(v)else:df_file_genders.append(file_genders.append("?"))df["gender"] = df_file_genderslanguage_types = ["Русский", "Английский", ""]for lang in language_types:for gender in ["м", "ж"]:# save_plots(df.copy(), "user", lang, s, gender)filter_df(df, "language", lang, s, gender=gender)# save_plots(df.copy(), "user", "Русский", s, gender)# save_plots(df.copy(), "user", "Английский", s)# save_plots(df.copy(), "user", "", s)# save_plots(df.copy(), column="file", lang="Русский",#sheet_type=s, single_plot=True)# save_plots(df.copy(), column="file", lang="Английский",)246sheet_type2 = 'Перцептивно-зрительный анализ'bad_strings2 = {"*отметить соответствующей цифрой наблюдаемый параметр": "",}df = Noneusers = dict()lower_values = []for i_f, f in enumerate(files):wb = load_workbook(filename=f)f = re.sub("\d+|\.xlsx|[А|а]нкета|эксперимента|для|-|,|Практика|-|""(Автосохраненный)|_|\(|\)", "", f).strip()if not f:f = "Неизвестный"print(f)sheet_ranges = wb[sheet_type2]if i_f == 0:247upper_values = sheet_ranges["B:S"]upper_values = [u[0].value for u in upper_values]last_value = Nonefor u_i, u in enumerate(upper_values):if u:last_value = uelse:upper_values[u_i] = last_valuelower_values = [u[1].value for u in sheet_ranges["B:S"]]for i in range(len(lower_values)):lower_values[i] = upper_values[i].strip() + ": " +\lower_values[i].strip()for b in bad_strings2:lower_values[i] = lower_values[i].replace(b, bad_strings2[b])df_u = sheet_ranges["B:S"]df_u = [[k.value for k in u[3:]] for u in df_u]df_u = [k[:103] + k[108:] for k in df_u]df_u = pd.DataFrame(df_u)df_u.index = lower_valuesnew_index = []changed_indices = []248changed_indices_lengths = []for ind_i, ind in enumerate(df_u.index):if not re.findall("\(\d+\)", ind):new_index.append(ind)else:ind = re.split("\(\d+\)", ind)ind = [nd.replace("\\", "").replace(",", "").strip() for nd in ind]attrib = ind[0].split(":")[0]for nd_i, nd in enumerate(ind):if not re.findall("\w+:", nd):ind[nd_i] = "{}: {}".format(attrib, nd)ind = [nd for nd in ind if re.sub("\w+:", "", nd).strip()]changed_indices.append(ind_i)changed_indices_lengths.append(len(ind))new_index += indnew_df = []for c in df_u.columns:new_series = []# c_v is the series item valuefor c_v_ind, c_v in enumerate(df_u[c]):# bad practice but still249if c_v_ind in changed_indices:rng_l = changed_indices_lengths[changed_indices.index(c_v_ind)]for rng_i in range(rng_l):if c_v == rng_i + 1:new_series.append(c_v)else:new_series.append(None)new_series += []else:new_series.append(c_v)new_df.append(new_series)df_u = pd.DataFrame(np.array(new_df).reshape(23, 200), index=new_index)df_u["values"] = df_u.indexdf_u["user"] = len(df_u.index) * [f]users[f] = df_uif type(df) != pd.core.frame.DataFrame:df = df_u.copy()else:df = df.append(df_u)# sheet_type=s, single_plot=True)# save_plots(df, "file", "", s)250genders = ["м", "ж", ""]for gen in genders:for lang in language_types:lang_gender = []if lang == "Русский":df_sum_col = df.columns[:100]lang_gender = russian_file_genderselif lang == "Английский":df_sum_col = df.columns[100:-2]lang_gender = english_file_genderselse:df_sum_col = df.columns[:-2]lang = "Русский и Английский"lang_gender = russian_file_genders + english_file_gendersindices = [i for i,l in enumerate(lang_gender)if l == gen]if indices:df_sum_col = [df_sum_col[i] for i in indices]df_sum = df.groupby("values").count()[df_sum_col[0]]for c in df_sum_col[1:]:df_sum += df.groupby("values").count()[c]251# df.groupby("values").count()[c]df_sum = df_sum.reset_index(name='count')\.sort_values(['count'], ascending=False)x = list(df_sum["count"])y = list(df_sum["values"])y = ['\n'.join(wrap(l, 50)) + '\n' for l in y]ax = pd.DataFrame(x, y).plot(kind='barh', title=lang,legend=False, width=0.2, align='center')fig = ax.get_figure()fig.set_size_inches(20.5, 20.5, forward=True)fig.autofmt_xdate()fig.subplots_adjust(bottom=0.1, right=0.95, top=0.95, left=0.5)# plt.show()fig.savefig('{}__{}_{}.png'.format(lang, sheet_type2, gen))plt.close()for u in set(df["user"]):pass# df[df["user"] == u]252.