У меня есть список предложений, таких как:
errList = [ 'Ragu ate lunch but didnt have Water for drinks',
'Rams ate lunch but didnt have Gatorade for drinks',
'Saya ate lunch but didnt have :water for drinks',
'Raghu ate lunch but didnt have water for drinks',
'Hanu ate lunch but didnt have -water for drinks',
'Wayu ate lunch but didnt have water for drinks',
'Viru ate lunch but didnt have .water 4or drinks',
'kk ate lunch & icecream but did have Water for drinks',
'M ate lunch &and icecream but did have Gatorade for drinks',
'Parker ate lunch icecream but didnt have :water for drinks',
'Sassy ate lunch and icecream but didnt have water for drinks',
'John ate lunch and icecream but didnt have -water for drinks',
'Pokey ate lunch and icecream but didnt have Water for drinks',
'Laila ate lunch and icecream but did have water 4or drinks',
]
Я хочу узнать количество длинных фраз/часть (фраза должна быть более 2 слов) предложений в каждом элементе списка? В следующем примере вывод будет ближе к этому (длинная фраза как ключ и значение как значение):
{ 'ate lunch but didnt have': 7,
'water for drinks': 7,
'ate lunch and icecream': 4,
'didnt have water': 3,
'didnt have Water': 2 # case sensitives
}
Использование re-модуля не может быть и речи, поскольку проблема близка к совпадению последовательностей или, возможно, с использованием nltk или, возможно, scikit-learn? У меня есть некоторое знакомство с НЛП и scikit, но недостаточно, чтобы решить это? Если я разрешу это, я опубликую его здесь.