(Этот вопрос относится к проверке строк в целом, а не к обработке естественного языка как таковой, но если вы рассматриваете это как проблему НЛП, представьте, что это не тот язык, который современные анализаторы могут анализировать, для простоты я используйте английские строки, например)
скажем, есть только 6 возможных форм, в которых может быть реализовано слово.
- начальная буква заглавная
- форма множественного числа с буквой «с»
- его форма множественного числа с "es"
- с заглавной буквы + "эс"
- с большой буквы + "с"
- основная форма без множественного числа или с заглавной буквы
скажем, я хочу найти индекс 1-го экземпляра, любая форма слова coach
встречается в предложении, есть ли более простой способ сделать эти 2 метода:
длинное условие
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
повторение try-except
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