(この質問は一般的な文字列チェックに関するものであり、自然言語処理自体ではありませんが、NLPの問題と見なす場合、現在のアナライザーが分析できる言語ではないことを想像してください。簡単にするために、英語の文字列を使用します例として)
単語を実現できる形式は 6 つしかないとしましょう
- 最初の文字は大文字
- 「s」を含む複数形
- 「es」を含む複数形
- 大文字 + "es"
- 大文字 + "s"
- 複数形または大文字を使用しない基本形
文中に出現する単語の最初のインスタンスのインデックスを見つけたいとしましょう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
試行錯誤の繰り返し
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