Python 我如何编写一个使用多个if语句的函数,其中每个语句都会一个接一个地修改单词?

Python 我如何编写一个使用多个if语句的函数,其中每个语句都会一个接一个地修改单词?,python,if-statement,nlp,lemmatization,Python,If Statement,Nlp,Lemmatization,我正在尝试编写一个函数,它可以根据单词中的标记来修改标记的单词,所以基本上是一个lemmatizer,但是对于瑞典语单词 例如,如果单词被标记为A,它将从单词中删除结尾X,如果单词也被标记为B,它将从单词中删除结尾Y等。根据标记组合,单词中总共可能存在七个不同的结尾,在这种情况下,我希望删除它们 到目前为止,我一直在尝试一个接一个地使用几个if语句,这将修改单词if,如果它被标记为一个标记组合,然后检查它是否被标记为另一个标记组合,然后基于此修改它,依此类推 if tag1 == 'A':

我正在尝试编写一个函数,它可以根据单词中的标记来修改标记的单词,所以基本上是一个lemmatizer,但是对于瑞典语单词

例如,如果单词被标记为A,它将从单词中删除结尾X,如果单词也被标记为B,它将从单词中删除结尾Y等。根据标记组合,单词中总共可能存在七个不同的结尾,在这种情况下,我希望删除它们

到目前为止,我一直在尝试一个接一个地使用几个if语句,这将修改单词if,如果它被标记为一个标记组合,然后检查它是否被标记为另一个标记组合,然后基于此修改它,依此类推

if tag1 == 'A':                                                   
    word = word.rstrip('x')
if tag2 == 'B' and tag3 == 'C' and tag4 == 'D':
    word = word.rstrip('y')
if tag3 == 'B' and tag4 == 'D':
    word = word.rstrip('z')
我在理解应该如何表达if语句时遇到了问题,这样它们就可以分别检查标记组合,修改单词if语句为true,然后将修改后的单词传递给下一个语句。我该怎么做


编辑:正如Prune所说,我知道我可以添加带有所有可能的标记组合的if语句,但我想看看是否有比这更优雅的解决方案。

从您的描述中,似乎您知道如何用蛮力将其击败,但您希望有更优雅的解决方案。您可以考虑标记和相关联的移除的结构,例如

rules = [ ['A',   'x'],
          ['BCD'. 'y'],
          ['B',   'z'],
          ...
        ]
然后遍历删除规则列表,根据需要应用每个规则,如

for rule in rules:
    rule_tags = rule[0]
    # Check to see that all rule tags are in the input tags ... left to you to code
    if <your code here>:
        word = word.rstrip(rule[1])   # strip letter included in that rule
对于规则中的规则:
规则\标记=规则[0]
#检查所有规则标记是否都在输入标记中。。。留给你去编码
如果:
word=word.rstrip(规则[1])#该规则中包含的带字母

这会让您朝着解决方案前进吗?

这段代码似乎会完全满足您的需求。你试过了吗?它有用吗?如果没有,它会做什么呢?是的,这看起来比我原来计划做的要好多了。你认为这个系统对性能的影响会比原来的系统更大吗?问一些推测性的问题通常超出了范围:运行一个计时测试,看看哪个在你的环境中工作得更好。理解、调试和维护一个更复杂的系统需要花费多少时间?