Вы можете получить frequency
каждого слова, используя dict
comprehsnion,
И затем, sum
values
, чтобы получить общее количество,
>>> list_
['Apple', 'Mango', 'Orange']
>>> text
'I have Apple and Mango mood today, This morning i ate Mango and then Orange'
>>> y = {x: text.count(x) for x in list_}
>>> y
{'Orange': 1, 'Mango': 2, 'Apple': 1}
>>> sum(y.values())
4
После того, как вопросы изменены, вам нужно что-то вроде этого,
>>> import re
>>> list_ = ['Apple', 'Mango' ,'Orange', 'pr[éeêè]t[s]?' ]
>>> text
'I have Apple and mood today, This morning i ate mango and pret then Orange'
>>> re.findall(r'|'.join(list_), text)
['Apple', 'pret', 'Orange']
>>> len(re.findall(r'|'.join(list_), text))
3
А если вам нужен frequencies
каждого word
, то используйте Counter
из модуля collections
,
>>> from collections import Counter
>>> Counter(re.findall(r'|'.join(list_), text))
Counter({'Orange': 1, 'pret': 1, 'Apple': 1})
И для случая insensitive
Поиск,
>>> Counter(re.findall(r'|'.join(list_).lower(), text.lower()))
Counter({'orange': 1, 'pret': 1, 'mango': 1, 'apple': 1})
>>> d = Counter(re.findall(r'|'.join(list_).lower(), text.lower()))
>>> sum(d.values())
4