Это мой пример кода. Я новичок в Python и не знаю, как обходиться. Пожалуйста, любая помощь с исправлением кода будет полезна. Все остальные столбцы верны. Он повторяет строки столбца Author в минус-словах. Задача пользовательской функции заключается в том, чтобы прочитать файл обзоров TripAdvisor, содержащий необработанные данные, преобразовать его в список списков и вернуть этот сгенерированный список вызывающему сценарию. Задача вызывающего сценария состоит в том, чтобы выполнять всю другую обработку, включая вызов определяемой пользователем функции и генерацию окончательного результата.
Ваша определяемая пользователем функция должна принимать два параметра - имя файла необработанных данныхи количество строк в обзоре. Значения этих двух параметров, которые вам нужно будет ввести, чтобы сделать всю эту работу, равны 'week5_data_file.txt' и 13. import re import pandas as pd import csv
# The above statements import the necessary modules. You are already familiar with pandas and csv
# The re module stands for regular expressions. We will use it to strip angular bracket tags.
#
pd.set_option('display.max_rows', 3000)
pd.set_option('display.max_columns', 50)
pd.set_option('display.width', 1000)
# The above three statements will enable the full contents of the data frame to be displayed on screen.
count=1
full_list=[]
current_list=[]
negative_list=[]
negative_keyword=['awful','bad','beware','careless','decline','depressing','deteriorated','difficult','dirty','disappointing','disinterested','frightening','horrible',
'hostile','incompetent','inconsistent','indifferent','inferior','infuriating','lesson','mediocre','miscommunication','poor','rough','scary','suck',
'sullen','terrible','unclean','uncomfortable','uneven','unfriendly','unhygienic','unimpressive','uninterested','worst']
negative_count=0
for line in open("Week5_data_file.txt").readlines():
if not line.strip():
continue
elif (count % 13) != 0:
current_list.append(line.strip())
count += 1
elif (count % 13) == 0:
current_list.append(line.strip())
full_list.append(current_list)
current_list = []
count += 1
reviews_dict=dict()
key_list=['Author','Negative Keywords','Overall','Value','Rooms', 'Location','Cleanliness','Front-Desk','Service','Business-Service']
reviews_dict=dict.fromkeys(key_list)
a_list=[]
n_list=[]
o_list=[]
v_list=[]
r_list=[]
l_list=[]
c_list=[]
f_list=[]
s_list=[]
bs_list=[]
for i in full_list:
a_list.append(re.sub('<.*?>', '', str(i[0])))
n_list.append(re.sub('<.*?>', '', str(i[0])))
o_list.append(re.sub('<.*?>', '', str(i[5])))
v_list.append(re.sub('<.*?>', '', str(i[6])))
r_list.append(re.sub('<.*?>', '', str(i[6])))
l_list.append(re.sub('<.*?>', '', str(i[6])))
c_list.append(re.sub('<.*?>', '', str(i[6])))
f_list.append(re.sub('<.*?>', '', str(i[6])))
s_list.append(re.sub('<.*?>', '', str(i[6])))
bs_list.append(re.sub('<.*?>', '', str(i[6])))
reviews_dict['Author']=a_list
reviews_dict['Negative Keyword']=n_list
reviews_dict['Overall']=o_list
reviews_dict['Value']=v_list
reviews_dict['Value']=r_list
reviews_dict['Rooms']=r_list
reviews_dict['Location']=l_list
reviews_dict['Cleanliness']=c_list
reviews_dict['Front-Desk']=f_list
reviews_dict['Service']=s_list
reviews_dict['Business-Service']=bs_list
reviews_frame=pd.DataFrame(reviews_dict)
print(reviews_frame)
reviews_frame.to_csv("reviews_data.csv", encoding='utf-8')
Пример вывода
Пример вывода из файла CSV:
![enter image description here](https://i.stack.imgur.com/UYjqK.png)