Jigsaw Rate Severity of Toxic Comments(文字列の変換)

言語使うものとかもやってみようかな~と。初心者向けの簡単にスコア提出までの流れをまとめてるNotebookをみていく。

Most VoteのNotebookをみると1. TF-IDF 2. リッジ回帰 3. RoBERTaの3つがメインっぽい。とりあえずTF-IDFとリッジを使ってるNotebookを手を動かしてみようと思う。

文字データをきれいに

文字列の変換も色々書き方がアルンデスネ。ちょっと細かくみれてないです

def clean(data, col):  # Replace each occurrence of pattern/regex in the Series/Index

    # Clean some punctutations
    data[col] = data[col].str.replace('\n', ' \n ')  
    data[col] = data[col].str.replace(r'([a-zA-Z]+)([/!?.])([a-zA-Z]+)',r'\1 \2 \3')
    # Replace repeating characters more than 3 times to length of 3
    data[col] = data[col].str.replace(r'([*!?\'])\1\1{2,}',r'\1\1\1')    
    # Add space around repeating characters
    data[col] = data[col].str.replace(r'([*!?\']+)',r' \1 ')    
    # patterns with repeating characters 
    data[col] = data[col].str.replace(r'([a-zA-Z])\1{2,}\b',r'\1\1')
    data[col] = data[col].str.replace(r'([a-zA-Z])\1\1{2,}\B',r'\1\1\1')
    data[col] = data[col].str.replace(r'[ ]{2,}',' ').str.strip()   
    
    return data  # the function returns the processed value