Я работаю над личным проектом, который подсчитывает количество имен, упомянутых в тексте.Я знаю, что могу сделать это с collections.Counter()
, но я не уверен, как эффективно учесть псевдонимы.
Так, например, скажем, одно из имен, которые я хочу сосчитать, это "Tim"
, но я также хотел бы подсчитать любые псевдонимы, которые у него есть, например "Timmy"
и "Timster"
.
У меня есть несколько строк, говорящих: "Oh Tim is going to the party?"
, "Yeah, my boy Timmy, wouldn't miss it, he loves to party!"
, "Whoa, the Timster himself is going? Count me in!"
, которые я хотел бы, чтобы все считали как переменную типа "Tim"
.Я знаю, что могу просто подсчитать их все по отдельности, а затем сложить все вместе.Но я чувствую, что есть лучший способ сделать это.
То есть, я хочу, чтобы мой код выглядел больше как
names = {
'Tim':{'Tim', 'Timmy', 'Timster'},
... other names here.}
# add any occurrence of Tim names to Tim and other occurrences of other names to their main name.
В отличие от чего-то вроде
total_tim = Counter(tim) + Counter(timmy) + Counter(timster), etc..
для каждого имени.У кого-нибудь есть идеи, как мне поступить?