(这个问题是关于一般的字符串检查而不是自然语言处理本身,但如果你把它看作一个 NLP 问题,想象它不是当前分析器可以分析的语言,为了简单起见,我将使用英文字符串例如)
假设只有 6 种可能的形式可以实现一个单词
- 首字母大写
- 带有“s”的复数形式
- 带有“es”的复数形式
- 大写+“es”
- 大写+“s”
- 没有复数或大写的基本形式
假设我想找到第一个实例的索引任何形式的单词coach
出现在一个句子中,有没有更简单的方法来做这两种方法:
长 if 条件
sentence = "this is a sentence with the Coaches"
target = "coach"
print target.capitalize()
for j, i in enumerate(sentence.split(" ")):
if i == target.capitalize() or i == target.capitalize()+"es" or \
i == target.capitalize()+"s" or i == target+"es" or i==target+"s" or \
i == target:
print j
迭代尝试除外
variations = [target, target+"es", target+"s", target.capitalize()+"es",
target.capitalize()+"s", target.capitalize()]
ind = 0
for i in variations:
try:
j == sentence.split(" ").index(i)
print j
except ValueError:
continue