У меня есть список таких кортежей (фраза, оценка): [('center', 1), ('car center', 2), ('rental car', 1.5), ('car center', 2), («Центр проката автомобилей», 3), («Погода», 4), ... ...]
Я хочу исключить повторяющуюся фразу по правилу:
Если одна фраза содержит слова, которые ВСЕ были показаны в другой фразе, отбросьте фразу с наименьшим количеством баллов. например, «автомобильный центр» = набор (автомобиль, центр) - это подмножество «прокатного автомобильного центра» = набор (прокат, автомобиль, центр), если два набора только пересекаются, но не являются подмножеством другого, я также не отбрасываю один из них.
Я не мог придумать лучшего способа, кроме как запустить вложенное для l oop и вытолкнуть предмет во время l oop. Я также рассматриваю возможность использования set и intersection, но мне нужно сравнить все две комбинации, есть ли способ, которым я не пропущу ни одну пару комбинаций и эффективно сделаю это?
Выход - список кортежа оценки фразы поэтому люди не найдут пар, в которых есть две фразы, одна из которых является подмножеством другой.