我在做一个个人项目,统计文本中提到的名字的实例。我知道我可以用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..
每一个名字。有人知道我该怎么做吗?你知道吗
使用regex将有助于解决这个问题。你知道吗
如果要忽略大小写,则只需在
re.findall
中使用re.IGNORECASE
参数这里有一个使用regex的非常简单的解决方案。你知道吗
这个解决方案的好处是不必显式地命名变体。如果你知道那个人名字的开头,你应该很好。你知道吗
相关问题 更多 >
编程相关推荐