2017-09-18 5 views
0

シェイクスピアのフルワークデータhereは、モデルを作成するための単語埋め込みアルゴリズムで使用します。モデルの要件は、テキスト全体が単一の空白だけで提供され、他の種類の空白が存在しないことです。私はこれをどのように行うことができますか? 1つの文字列に対してこれを行う方法を見つけましたが、テキストファイルでは機能しません。複数のスペース、改行、タブを取り除き、テキストファイルに単一のスペースを入れる方法は?

私の試み(Iのpythonの非常に精通していないです):

with open(file_path, 'r') as data: 
    for line in data: 
     cleanedline = line.strip('\n') 

cleanedline doesntのは持って印刷したとき、私は戻って、ファイルにそれらを書いていない削除\n\s+正規表現パターンが1つ以上の空白文字の任意のシーケンスにマッチします

import re 

with open(file_path) as data: 
    text = re.sub(r'\s+', ' ', data.read()) 

+0

ので、すべての改行や他の空白は、単一のスペースで置き換えすべきですか? – RomanPerekhrest

+0

はい、その手袋(https://github.com/stanfordnlp/GloVe/blob/master/src/README.md)モデル –

答えて

1

あなたは正規表現を試みることができます。 re.sub()は、一致するテキストを1つのスペースに置き換えます。

空白はスペース、タブ、改行、改行、改ページ、改行、垂直タブなどの文字で構成されます。句読点は含まれません。正規表現せずにこれを行うには

もう一つの方法は、split()join()を使用することです:

with open(file_path) as data: 
    text = ' '.join(data.read().split()) 
+0

@leehuang:それは私のために働いた。あなたが見ているエラーとは何か、あるいはうまくいかなかったのは何ですか? – mhawke

+0

ありがとう、それは私のために働いた、私は自分のコードでいくつかの間違いをしていた。 –

関連する問題