gpt4 book ai didi

python - 单词和组元组之间的映射以获得单词的频率

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

我有一个如下所示的数据框

Utterance                         Frequency   
Directions to Starbucks           1045
Show me directions to Starbucks 754
Give me directions to Starbucks 612
Navigate me to Starbucks 498
Display navigation to Starbucks 376
Direct me to Starbucks 201
Navigate to Starbucks 180

这里有一些数据显示人们的言论以及这些言论的频率。

即,“前往星巴克的路线”被说出了 1045 次,“显示前往星巴克的路线”被说出了 754 次,等等。

我能够通过以下方式获得所需的输出:

df = (df.set_index('Frequency')['Utterance']
.str.split(expand=True)
.stack()
.reset_index(name='Words')
.groupby('Words', as_index=False)['Frequency'].sum()
)

print (df)
Words Frequency
0 Direct 201
1 Directions 1045
2 Display 376
3 Give 612
4 Navigate 678
5 Show 754
6 Starbucks 3666
7 directions 1366
8 me 2065
9 navigation 376
10 to 3666

但是,我也在尝试寻找以下输出:

print (df)
Words Frequency
0 Directions 2411
1 Give_Show_Direct_Navigate 2245
2 Display 376
3 Starbucks 3666
4 me 2065
5 navigation 376
6 to 3666

也就是说,我正在尝试找出一种方法来组合某些短语并获取这些单词的频率。例如,如果说话者说“Seattles_Best”或“Tullys”,那么理想情况下我会将其添加到“Starbucks”并将其重命名为“coffee_shop”或类似名称。

谢谢!!

最佳答案

这是一个从当前结果集开始并进行适当编辑的解决方案:

print (df)
Words Frequency
0 Direct 201
1 Directions 1045
2 Display 376
3 Give 612
4 Navigate 678
5 Show 754
6 Starbucks 3666
7 directions 1366
8 me 2065
9 navigation 376
10 to 3666

首先,创建一个字典,将当前单词映射到您选择的新单词:

phrase_map = {'Starbucks': 'coffee_shop',
'Seattles_Best': 'coffee_shop',
'Tullys': 'coffee_shop',
'Give': 'Give_Show_Direct_Navigate',
'Show': 'Give_Show_Direct_Navigate',
'Direct': 'Give_Show_Direct_Navigate',
'Navigate': 'Give_Show_Direct_Navigate'}

然后查找每个单词,如果找到则替换为新值,否则保留原始值:

df['Words'] = df['Words'].apply(lambda x: phrase_map.get(x) if phrase_map.get(x) else x)

然后分组:

df.groupby('Words').sum()

结果:

                           Frequency
Words
Directions 1045
Display 376
Give_Show_Direct_Navigate 2245
coffee_shop 3666
directions 1366
me 2065
navigation 376
to 3666

关于python - 单词和组元组之间的映射以获得单词的频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49496102/

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