2017-04-11 3 views
0

フレーズがテキスト文字列であるかどうかをチェックし、辞書値を1にして3つのフレーズを繰り返します。私のコードはうまくいきますが、私はもっと短い解決策があると確信していますが、見つけられないようです。文字列に文字列が含まれているかどうかをチェックする単純なpythonソートdict値

self.results['p1_txt'] = self.results['p2_txt'] = self.results['p2b_txt'] = self.results['p3_txt'] = 0 

    if "phase_1" in self.results['text']: 
     self.results['p1_txt'] = 1 

    if "phase_2" in self.results['text']: 
     self.results['p2_txt'] = 1 

    if "phase_2b" in self.results['text']: 
     self.results['p2b_txt'] = 1 

    if "phase_3" in self.results['text']: 
     self.results['p3_txt'] = 1 
+1

を...それは使用する方が理にかなってあります'True'と' False'を '1'の代わりに使うか、単に' 'フレーズのセットを作るだけです。 – byxor

+0

テキストからフィーチャを作成し、NLP分析のためにデータベースに格納しています。私はT/Fの使用を検討しましたが、バイナリの考え方はラインを助けるかもしれません。 – pheeper

答えて

4

はちょうどループ

for item in [1,2,'2b',3]: 
    if "phase_{}".format(item) in self.results['text']: 
     self.results['p{}_txt'.format(item)] = 1 
+1

私は、中括弧とforrmat()を使ってテキストを追加することに気付かず、ソリューションのおかげで新しいことを教えてくれました。 – pheeper

2

定期forループ使用してソリューションを使用:あなたはこのコードでやっていることに応じて、

for i in ["1","2","2b","3"]: 
    if ("phrase_" + i in self.results['text']): 
     self.results['p' + i + '_txt'] = 1 
関連する問題