невозможно создать информационный фрейм из полученного вывода - PullRequest
1 голос
/ 21 февраля 2020

Я выполняю анализ эмоций с использованием метода lstm, я уже обучил свою модель и выполняю ту часть прогноза, где я уже правильно сделал прогноз. Теперь я хочу добавить вывод, полученный в фрейме данных, я пробовал, но у меня неправильные результаты. Может кто-нибудь, пожалуйста, помогите мне с исправлением моих кодов, пожалуйста.

Я отправляю свои коды вместе с полученным выводом и как я хочу, чтобы мой вывод был.

Вот мои коды:

        with open('output1.json', 'w') as f:
            json.dump(new_data, f)

selection1 = new_data['selection1']

for item in selection1:
    name = item['name']
    print ('>>>>>>>>>>>>>>>>>> ', name)
    Date = item['reviews']
    for d in Date:
        date = d['date']
        print('>>>>>>>>>>>>>>>>>> ', date)
    CommentID = item['reviews']
    for com in CommentID:
        comment = com['review'].lower()  # converting all to lowercase
        result = re.sub(r'\d+', '', comment)  # remove numbers
        results = (result.translate(
        str.maketrans('', '', string.punctuation))).strip()  # remove punctuations and white spaces
        comments = remove_stopwords(results)
        print('>>>>>>',comments)

    #add the words in comments that are already present in the keys of dictionary
        encoded_samples = [[word2id[word] for word in comments if word in word2id.keys()]]


    # Padding
        encoded_samples = keras.preprocessing.sequence.pad_sequences(encoded_samples, maxlen=max_words)

     # Make predictions
        label_probs, attentions = model_with_attentions.predict(encoded_samples)
        label_probs = {id2label[_id]: prob for (label, _id), prob in zip(label2id.items(), label_probs[0])}

       #Get word attentions using attenion vector
        print(label_probs)

dataframe={'name': [name],'date': [date], 'comment': [comment], 'label':[label_probs]}
table = pd.DataFrame(dataframe, columns=['name','date', 'comment', 'label'])
print(table)

Ниже приведен вывод, который я получил:

                             name  ...                                              label
0  Oasis Villas by Evaco Holidays  ...  {'joy': 0.018415175, 'surprise': 4.6217923e-05...

[1 rows x 4 columns]

, что неверно.

вывод из приведенных выше отпечатков, как показано ниже:

>>>>>>>>>>>>>>>>>>  Heritage The Villas
>>>>>>>>>>>>>>>>>>  December 23, 2018
>>>>>>>>>>>>>>>>>>  January 10, 2018
>>>>>>>>>>>>>>>>>>  January 05, 2018
>>>>>>>>>>>>>>>>>>  July 23, 2015
>>>>>> ['booked', 'villa', 'valriche', 'mari', 'deal', 'nights', 'checkin', 'lengthy', 'almost', 'hours', 'requested', 'make', 'deposit', 'rs', 'credit', 'card', 'never', 'informed', 'upon', 'booking']
{'joy': 0.03916626, 'surprise': 8.855841e-05, 'love': 0.09760322, 'anger': 0.6667219, 'sadness': 0.0010696664, 'fear': 0.1953505}
>>>>>> ['lovely', 'place', 'recharge']
{'joy': 0.0032763705, 'surprise': 0.0022357441, 'love': 0.11014917, 'anger': 0.09073347, 'sadness': 0.7297514, 'fear': 0.063853815}
>>>>>> ['one', 'word', 'suoerb']
{'joy': 0.13245165, 'surprise': 0.00014895896, 'love': 0.3051644, 'anger': 0.35698283, 'sadness': 0.00021378326, 'fear': 0.20503832}
>>>>>> ['definitely', 'star', 'extremely', 'poor', 'staff', 'service']
{'joy': 0.031011488, 'surprise': 9.065295e-05, 'love': 0.4330521, 'anger': 0.30516183, 'sadness': 0.000128366, 'fear': 0.23055555}
>>>>>>>>>>>>>>>>>>  Oasis Villas by Evaco Holidays
>>>>>>>>>>>>>>>>>>  January 12, 2020
>>>>>>>>>>>>>>>>>>  June 21, 2019
>>>>>>>>>>>>>>>>>>  May 30, 2017
>>>>>>>>>>>>>>>>>>  December 06, 2015
>>>>>> ['excellent']
{'joy': 0.030443083, 'surprise': 1.9940982e-05, 'love': 0.036508515, 'anger': 0.8760464, 'sadness': 0.0014704008, 'fear': 0.055511605}
>>>>>> ['spent', 'days', 'family', 'really', 'enjoyed', 'stay', 'advantage', 'oasis', 'privacy', 'children', 'years', 'going', 'dinnerbreakfast', 'hotels', 'often', 'burden', 'rather', 'enjoyable', 'experience', 'children', 'could', 'dinnermessnoise', 'without', 'us', 'worry', 'anything', 'pool', 'right', 'front', 'door', 'made', 'everything', 'children', 'staff', 'friendly', 'welcoming', 'artee', 'menni', 'made', 'sure', 'everything', 'fine', 'brought', 'breakfast', 'warm', 'croissants', 'every', 'morning', 'atish', 'made', 'checkin', 'arrangements', 'fast', 'hassle', 'free', 'definitely', 'go']
{'joy': 0.017099116, 'surprise': 7.2406554e-05, 'love': 0.2651248, 'anger': 0.14370358, 'sadness': 5.6088167e-05, 'fear': 0.573944}
>>>>>> ['passé', 'un', 'excellent', 'séjours', 'les', 'villas', 'oasis', 'sont', 'de', 'loin', 'les', 'meilleur', 'villas', 'du', 'groupe', 'evaco']
{'joy': 0.032395113, 'surprise': 9.250247e-05, 'love': 0.08593403, 'anger': 0.6815374, 'sadness': 0.0015245328, 'fear': 0.1985165}

Я хочу, чтобы мои данные были такими:

name                                  date               comment                               label

Heritage The Villas            December 23, 2018   ['booked', 'villa', 'valriche'...]  {'joy': 0.03916626, 'surprise': 8.855841e-05, 'love': 0.09760322, 'anger': 0.6667219, 'sadness': 0.0010696664, 'fear': 0.1953505}
Heritage The Villas           January 10, 2018   ['lovely', 'place', 'recharge']     {'joy': 0.0032763705, 'surprise': 0.0022357441, 'love': 0.11014917, 'anger': 0.09073347, 'sadness': 0.7297514, 'fear': 0.063853815}
.....
Oasis Villas by Evaco Holidays January 12, 2020   ['excellent']                       {'joy': 0.030443083, 'surprise': 1.9940982e-05, 'love': 0.036508515, 'anger': 0.8760464, 'sadness': 0.0014704008, 'fear': 0.055511605}
Oasis Villas by Evaco Holidays  June 21, 2019    ['spent', 'days', 'family'....]  {'joy': 0.017099116, 'surprise': 7.2406554e-05, 'love': 0.2651248, 'anger': 0.14370358, 'sadness': 5.6088167e-05, 'fear': 0.573944}
.....

Не могли бы вы помочь мне, ребята.

1 Ответ

2 голосов
/ 21 февраля 2020

Проблема с этой строкой:

dataframe={'name': [name],'date': [date], 'comment': [comment], 'label':[label_probs]}

Создайте пустые списки для имени, даты, комментария, label_probs и добавьте их в этот список и передайте этот список в свой DataFrame

selection1 = new_data['selection1']
names = []
dates = []
comments = []
labels = []

with open('output1.json', 'w') as f:
    json.dump(new_data, f)

selection1 = new_data['selection1']

for item in selection1:
    name = item['name']
    names.append(name) #<-----------------
.
.
.
    Date = item['reviews']
    for d in Date:
        date = d['date']
        dates.append(date) #<--------------
        print('>>>>>>>>>>>>>>>>>> ', date)

.
.
.
.

Тогда

dataframe={'name': names,'date': dates,........}

Обновленный ответ:

    for item in selection1:
        name = item['name']
        Date = item['reviews']
        for d in Date:
            names.append(name) #<-----------------
            date = d['date']
            dates.append(date) #<--------------
.
.
.

Это должно решить вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...