HOWTO · Python

Python で文字列から句読点を取り除く方法

Python で文字列から句読点を取り除く方法を紹介しています。

このチュートリアルでは、Python で文字列から句読点を取り除く方法について説明します。これは、NLP のためにテキストデータを前処理したり、クリーニングしたりする際に特に有用なステップです。

Python で文字列から句読点を取り除く string クラスのメソッドを使用する

Python で文字列から句読点を取り除くには、string クラスで提供されている組み込み関数を使用することができます。以下の例はこれを示しています。

s = "string. With. Punctuations!?"
out = s.translate(str.maketrans("", "", string.punctuation))
print(out)

出力:

'string With Punctuations'

上記のメソッドは、与えられた入力文字列からすべての句読点を削除します。

Python で文字列から句読点を取り除くには regex を使用する

Python では、文字列から句読点を取り除くために regex を使用することもできます。以下の例はこれを示しています。

import re

s = "string. With. Punctuation?"
out = re.sub(r"[^\w\s]", "", s)
print(out)

出力:

'string With Punctuations'

Python で文字列から句読点を取り除くには string.punctuation を使用する

これは最初に説明した方法と似ています。string.punctuation は英語で句読点とみなされるすべての文字を含む。このリストを使って、文字列からすべての句読点を除外することができます。以下の例はこれを示しています。

s = "string. With. Punctuation?"

out = "".join([i for i in s if i not in string.punctuation])
print(out)

出力:

'string With Punctuations'

Python で文字列から句読点を取り除くには replace() を使用する

Python では、文字列から句読点を取り除くために replace() を使用することもできます。ここでも string.punctuation を使ってリストを定義し、すべての句読点を空の文字列に置き換えて句読点を削除します。以下の例はこれを示しています。

s = "string. With. Punctuation?"

punct = string.punctuation
for c in punct:
    s = s.replace(c, "")
print(s)

出力:

'string With Punctuations'