PythonでNGワードの処理

pythonでNGワードの処理をしたいときに使えるコードを紹介します。

スポンサーリンク

基本的には in 演算子でことたりるが・・・

pythonには特定の文字が含まれているか、調べるときに使う演算子にin演算子があります。

特定の文字が含まれているか

特定の文字が含まれているか調べるには以下のようなコードを書きます。

target_word = "hogehoge"
if "hoge" in target_word:
    print("hogeが含まれています")

多少難ありのコードですが使い方としては上記のようにします。

リストに特定の要素があるか調べる

in演算子のもうひとつの使い方として、リストに特定の要素が含まれているか調べる方法があります。

words = ["hoge", "fuga", "fugafuga"]
if "hoge" in words:
    print("hogeが含まれています")

リストにつかいかたとしてはこうですよね。

スポンサーリンク

pythonでNGワードの処理をしたい場合

pythonでNGワードの処理をしたい場合、上記二つのin演算子の使い方では困ることがあります。

とどのつまり、target_wordに対してNGワードが含まれているかどうか調べたいわけですが、NGワードは当然ひとつではなく複数ありますからNGワードはリストになるわけです。こうなってくると少し頭をひねならないといけません。

やり方はいろいろあると思いますが、ng_word_listをfor文でまわしtarget_wordにNGワードがひとつでも含まれていたらTrueを返すようにします。

def ng_words(target_word):
    ng_word_list = ["hoge", "fuga"]
    for ng_word in ng_word_list:
        if ng_word in target_word:
            return True
    
print(ng_words("僕の名前はhogeです"))

Trueを返すようにすれば、条件分岐で使えますから、関数化するのが吉だと思われます。

コメント

タイトルとURLをコピーしました