Python データ分析 プログラミング 自然言語処理

【Python】ツイートのリツイートテキストからメンション・URLを正規表現で除去する

この記事は約4分で読めます。

 

こんにちは、ミナピピン(@python_mllover)です。

 

今回はツイートデータからメンションやURLを除去して自然言語処理を行う前処理のコードに書いたのでメモとして残しておきます。

 

Pythonではreモジュールを用いることで、文字列から正規表現による抽出・置換が可能なので、基本的にはreモジュールで全て事足ります。

 

スポンサーリンク
スポンサーリンク

ツイートのリツイートやメンション・URLを正規表現で除去する

 

def preprocess_wordcloud(doc): 
    # 数字を0に 
    doc = re.sub(r'\d+', '0', doc) 
    # メンション除去 
    doc = re.sub(r"@(\w+) ", "", doc) 
    # url除去 
    doc = re.sub(r"http\S+", "", doc)
    #リツイートを消す
    doc = re.sub(r"(^RT.*)", "", doc, flags=re.MULTILINE | re.DOTALL)
    # 大文字・小文字変換 
    doc = doc.lower() 
    #絵文字を消す
    emoji_pattern = re.compile("["
    u"\U0001F600-\U0001F64F"
    u"\U0001F300-\U0001F5FF"
    u"\U0001F680-\U0001F6FF"
    u"\U0001F1E0-\U0001F1FF"
    "]+", flags=re.UNICODE)
    doc = emoji_pattern.sub("", doc)
    # 不要記号削除
    pattern = '[!"#$%&\'\\\\()*+,-./:;<=>?@[\\]^_`{|}~「」〔〕“”◇ᴗ●↓→♪★⊂⊃※△□◎〈〉『』【】&*・()$#@。、?!`+¥%]' 
    doc = re.sub(pattern, ' ', doc) 
    return doc

 

<使用例1>

sample_text = '@test_2345 【重大告知】Yahoo支店では新型コロナウィルス感染症の予防・対策の一環として\n11/2営業時間および買取業務時間を添付画像の通りに変更させて頂きます。\nお客様にはご迷惑をおかけして申し訳ございません。\nご理解ご協力の程、何卒よろしくお願い申し上げます。 https://t.co/qmqlryAlW0'
preprocess_wordcloud(sample_text)

 

<結果>

' 重大告知 yahoo支店では新型コロナウィルス感染症の予防 対策の一環として\n0 0営業時間および買取業務時間を添付画像の通りに変更させて頂きます \nお客様にはご迷惑をおかけして申し訳ございません \nご理解ご協力の程 何卒よろしくお願い申し上げます  '

 

 

<使用例2>

sample_rttext = 'RT @test_2345 【重大告知】Yahoo支店では新型コロナウィルス感染症の予防・対策の一環として\n11/2営業時間および買取業務時間を添付画像の通りに変更させて頂きます。\nお客様にはご迷惑をおかけして申し訳ございません。\nご理解ご協力の程、何卒よろしくお願い申し上げます。 https://t.co/qmqlryAlW0'
preprocess_wordcloud(sample_text)

 

<結果>

'' #リツイートは削除される

 

 

参考:https://teratail.com/questions/206439

 

 

コメント

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