यह मेरा शब्दकोश है, जिसे "समीक्षा" कहा जाता है:

reviews= {1: {'like', 'the', 'acting'},
          2: {'hate', 'plot', 'story'}}

और यह मेरा "शब्दकोश" डेटाफ़्रेम है:

import pandas as pd

lexicon = {'word': ['like', 'movie', 'hate'],
    'neg': [0.0005, 0.0014, 0.0029],        
    'pos': [0.0025, 0.0019, 0.0002]
    }

lexicon = pd.DataFrame(lexicon, columns = ['word', 'neg','pos'])

print (lexicon)

lexicon

मुझे अपने "समीक्षा" शब्दकोश को "लेक्सिकॉन" डेटाफ्रेम से नकारात्मक और पॉज़ मानों से भरना होगा।

यदि शब्दकोष में कोई मूल्य नहीं है, तो मैं 0.5 . रखना चाहता हूँ

अंत में यह परिणाम प्राप्त करने के लिए:

reviews= {1: {'like': [0.0005, 0.0025], 'the': [0.5, 0.5], 'acting': [0.5, 0.5]},
          2: {'plot': [0.5, 0.5], 'hate': [0.0029, 0.0002], 'story': [0.5, 0.5]}}
0
Giulio 14 नवम्बर 2020, 11:42

2 जवाब

सबसे बढ़िया उत्तर

lexicon से डिक्शनरी बनाएं और फिर डबल डिक्शनरी कॉम्प्रिहेंशन मैपिंग में dict.get द्वारा डिक्शनरी बनाएं, यदि कोई मैच नहीं है तो डिफॉल्ट वैल्यू जोड़ें:

d = lexicon.set_index('word').agg(list, axis=1).to_dict()
print (d)
{'like': [0.0005, 0.0025], 'movie': [0.0014, 0.0019], 'hate': [0.0029, 0.0002]}


out = {k: {x: d.get(x, [0.5,0.5]) for x in v} for k, v in reviews.items()}
print (out)
{1: {'like': [0.0005, 0.0025], 'the': [0.5, 0.5], 'acting': [0.5, 0.5]}, 
 2: {'story': [0.5, 0.5], 'hate': [0.0029, 0.0002], 'plot': [0.5, 0.5]}}
0
jezrael 14 नवम्बर 2020, 11:56