前提・実現したいこと
実現したいことはPythonのreplaceとstrip関数を用いて、単語(接続詞)を削除して、別の文として配列に格納することです。
具体的には以下の出力を実現したいです。
text1 = 'The fire snapped as it grew.' text2 = 'Tom cooks dinner and Alice washes her hand.' #出力 ['The fire snapped', 'it grew.'] ['Tom cooks dinner', 'Alice washes her hand.']
「pythonでstripを用いるとリストで指定していない単語まで削除されるエラー」という前に投稿した質問と単語を削除する部分で実現したい同じなので、関連します。
発生している問題・エラーメッセージ
現在のコードで、text1はうまくいっているのですが、テキスト2で以下のように失敗してしまいます。
どのように修正すべきかアドバイスをいただきたいです。
['The fire snapped', 'it grew.'] ['Tom cook dinner and Alice w', 'h her hand.']
該当のソースコード
python
1text = 'Tom cooks dinner and Alice washes her hand.' 2ignore_words = ['as', 'and'] 3 4ret = [] 5for word in text.split(' '): 6 ignore = len(word) <= 0 # スペースは不要 7 for iw in ignore_words: 8 if word == iw: 9 ignore = True 10 text = text.replace(word,',').strip() 11 break 12 13text = [x.strip() for x in text.split(',') if not x.strip() == ''] 14print(text)
試したこと
「pythonでstripを用いるとリストで指定していない単語まで削除されるエラー」という前に投稿した質問でいただいたご回答は、実際に自分でも動かしてみて、今回のコードを作成する時に、参考にさせていただきました。
python
1text = 'The fire snapped as it grew.' 2ignore_words = ['as', 'it'] 3 4ret = [] 5for word in text.split(' '): 6 ignore = len(word) <= 0 # スペースは不要 7 for iw in ignore_words: 8 if word == iw: 9 ignore = True 10 break 11 if not ignore: 12 ret.append(word) 13 14text = ' '.join(ret) 15print(text) 16 17#出力 18The fire snapped grew.
補足情報(FW/ツールのバージョンなど)
Python 3.7.4
jupyter-notebook : 6.0.3
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。