宇野  和也

宇野 和也

1642353600

Pythonのナイーブテキスト検索アルゴリズム

このチュートリアルでは、テキスト内のパターンの識別について説明します。メインコンテンツに加えてサブストリングがあります。目的は、サブストリングがテキストに表示される回数と場所を判別することです。

このパターン検索アプローチは、大きなテキストがあり、特定のキーワードまたは用語の出現箇所を見つける必要がある場合に役立ちます。

このセクションでは、最も基本的な「Pythonでのナイーブ文字列照合アルゴリズム」と、より優れた短いコードでそれを改善する方法について説明します。

ナイーブアルゴリズムの概要

フレーズが示すように、ナイーブアルゴリズムは非常に基本的で実装が簡単なアルゴリズムです。これらのアルゴリズムは、最も基本的で明白な戦略を使用して、子供のようにタスクを完了します。

これらのアプローチは、初心者がより効率的で複雑なアルゴリズムに進む前に始めるのに適した場所です。それらの1つは、基本的な文字列検索アルゴリズムです。文字列照合/パターン検索アルゴリズムの中で、最も基本的なものです。

このプロセスは、文字列を文字ごとに照合することから始まります。本文と部分文字列の両方で最初の文字を検索します。一致する場合は、両方の文字列の次の文字に進みます。

文字がループ内のどこにも一致しない場合、ループは中断され、メインテキスト文字列の次の文字からループが再開されます。

ナイーブ文字列検索の実装

def naive(txt,wrd):
    lt=len(txt)#length of the string
    lw=len(wrd)/3length of the substring(pattern)
    for i in range(lt-lw+1):
        j=0
        while(j<lw):
            if txt[i+j]==wrd[j]:
                j+=1
            else:
                break
        else:
            print('found at position',i)

上記のコードのメソッド 'naive'は、txt(パターンが検索されるプライマリ文字列)とward(検索されるパターン)の2つの引数を取ります。

少なくとも部分文字列の長さは最後に一致するように残しておく必要があるため、0から(文字列の長さ-部分文字列の長さ+ 1)までループが取られます。'for'ループは、文字列(text [I])から各文字を抽出します。

次に、サブストリング全体が一致するまで、その文字をサブストリング内の次の文字と比較する内部whileループがあります。検出されない場合、ループは中断され、次の文字のように、次の反復がプロセスから削除されます。

完全な部分文字列が検出されると、while条件が解除され、それ以外のセクションが実行され、場所が表示されます。もう1つはループ内にあり、条件がfalseの場合にのみ実行されますが、もう1つはwhileループ条件がfalseの場合に実行されます。

次の入力の出力を見てみましょう。

naive("AABAACAADAABAABA","AABA")

出力は次のようになります。

found at position 0
found at position 9
found at position 12

 

結論

おめでとう!ナイーブ文字列検索アルゴリズムを実装する方法を学びました。楽しんでください!😇


リンク:https ://www.askpython.com/python/examples/naive-string-searching-algorithm 

#algorithm 

What is GEEK

Buddha Community

Pythonのナイーブテキスト検索アルゴリズム
宇野  和也

宇野 和也

1642353600

Pythonのナイーブテキスト検索アルゴリズム

このチュートリアルでは、テキスト内のパターンの識別について説明します。メインコンテンツに加えてサブストリングがあります。目的は、サブストリングがテキストに表示される回数と場所を判別することです。

このパターン検索アプローチは、大きなテキストがあり、特定のキーワードまたは用語の出現箇所を見つける必要がある場合に役立ちます。

このセクションでは、最も基本的な「Pythonでのナイーブ文字列照合アルゴリズム」と、より優れた短いコードでそれを改善する方法について説明します。

ナイーブアルゴリズムの概要

フレーズが示すように、ナイーブアルゴリズムは非常に基本的で実装が簡単なアルゴリズムです。これらのアルゴリズムは、最も基本的で明白な戦略を使用して、子供のようにタスクを完了します。

これらのアプローチは、初心者がより効率的で複雑なアルゴリズムに進む前に始めるのに適した場所です。それらの1つは、基本的な文字列検索アルゴリズムです。文字列照合/パターン検索アルゴリズムの中で、最も基本的なものです。

このプロセスは、文字列を文字ごとに照合することから始まります。本文と部分文字列の両方で最初の文字を検索します。一致する場合は、両方の文字列の次の文字に進みます。

文字がループ内のどこにも一致しない場合、ループは中断され、メインテキスト文字列の次の文字からループが再開されます。

ナイーブ文字列検索の実装

def naive(txt,wrd):
    lt=len(txt)#length of the string
    lw=len(wrd)/3length of the substring(pattern)
    for i in range(lt-lw+1):
        j=0
        while(j<lw):
            if txt[i+j]==wrd[j]:
                j+=1
            else:
                break
        else:
            print('found at position',i)

上記のコードのメソッド 'naive'は、txt(パターンが検索されるプライマリ文字列)とward(検索されるパターン)の2つの引数を取ります。

少なくとも部分文字列の長さは最後に一致するように残しておく必要があるため、0から(文字列の長さ-部分文字列の長さ+ 1)までループが取られます。'for'ループは、文字列(text [I])から各文字を抽出します。

次に、サブストリング全体が一致するまで、その文字をサブストリング内の次の文字と比較する内部whileループがあります。検出されない場合、ループは中断され、次の文字のように、次の反復がプロセスから削除されます。

完全な部分文字列が検出されると、while条件が解除され、それ以外のセクションが実行され、場所が表示されます。もう1つはループ内にあり、条件がfalseの場合にのみ実行されますが、もう1つはwhileループ条件がfalseの場合に実行されます。

次の入力の出力を見てみましょう。

naive("AABAACAADAABAABA","AABA")

出力は次のようになります。

found at position 0
found at position 9
found at position 12

 

結論

おめでとう!ナイーブ文字列検索アルゴリズムを実装する方法を学びました。楽しんでください!😇


リンク:https ://www.askpython.com/python/examples/naive-string-searching-algorithm 

#algorithm