2016-12-07 12 views
0

レビューデータを消去したい。ここに私のコードです:Pythonでstring.punctuationの後に空白を追加するには?

def processData(data): 
    data = data.lower() #casefold  
    data = re.sub('<[^>]*>',' ',data) #remove any html  

    data = re.sub(r'#([^\s]+)', r'\1', data) #Replace #word with word 
    remove = string.punctuation 
    remove = remove.replace("'", "") # don't remove ' 
    p = r"[{}]".format(remove) #create the pattern 
    data = re.sub(p, "", data) 

    data = re.sub('[\s]+', ' ', data) #remove additional whitespaces 

    pp = re.compile(r"(.)\1{1,}", re.DOTALL) #pattern for remove repetitions 
    data = pp.sub(r"\1\1", data) 

    return data 

このコードはほとんどうまくいっていますが、まだ問題はあります。この文「彼女はpublicserviceで働く」ために 、

私は「彼女がpublicserviceで働く」です。

問題は、文字列の句読点の後に空白がないです。

私は私の文章は、「彼女は公共サービスで働く」このようになりたいです。

あなたは私のコードで私を助けることができますか?

+0

あなたは句読点の後に空白を追加しますか?または句読記号に置き換えますか?どうか明らかにしてください。 –

+0

コード内に「re」とは何ですか? –

+0

@AhsanulHaque実際には、文字列の句読点を削除した後に空白を追加したいと思います。しかし、句読点を空白で置き換えることはおそらくうまくいくでしょう。 –

答えて

1

私はあなたがこれをしたいと思う:

>>> st = 'she works in public-service' 
>>> import re 
>>> re.sub(r'([{}])'.format(string.punctuation),r' ',st) 
'she works in public service' 
>>> 
+1

これは動作しますが、アポストロフィは削除されます。私はアポストロフィを削除したくありません。したがって、私は以下のコードを使用しています: remove = string.punctuation remove = remove.replace( "'"、 "")#削除しないでください(アポストロフィ) –

+0

@Ahsanul: *句読点を変更するには、 're(r '([{}))'形式(string.punctuation)、r '\ 1'、st)'でサブラインを変更する必要があります。あなたの場合は、句読点を削除するだけです。 – user6903745

関連する問題