d = {('Hello', 'my'): 1, ('Hello', 'world'): 2, ('my', 'name'): 3, ('my',
    'house'): 1}
key_fu = lambda x: x[0][0]
groups = groupby(sorted(iter(d.items()), key=key_fu), key_fu)
l = [max(g, key=lambda x: x[1])[0] for _, g in groups]
Make a list with the most frequent tuple of a dictionary acording the first element