掲題の通り、指定した単語(UNWANTED_WORDS -> List)を、"others"として、エンコーディングしたいと思っています。イメージは、下記のような感じです。
例えば、"I like hogehoge"というツイートがあるとして、指定した単語リスト(UNWANTED_WORDS)の中に、"hogehoge"があるとすると、エンコーディング後に、"I like others"、となるような処理です。
現時点では、下記のようなナイーブな、for文の処理しか思いつかず、160万のツイートを処理するには、時間が掛かり過ぎると思っています。
GPUなど使わず、純粋に、pythonの書き方を改善するとすれば、どんな処理をすればよいでしょうか?
できれば、コードと共に、ご教示頂けると幸いでございます。
[コードの解説]
1.複数のツイートが入った変数"tweets"を、for文で回す
2.各ツイートに、UNWANTED_WORDSの単語が含まれているかの判定
3.もし、含まれていたら、その単語をothersに変換
python
1new_tweets = [] 2# Step1: 複数のツイートが入った変数"tweets"を、for文で回す 3for each_tweet in tweets: 4 #Step2: 各ツイートに、UNWANTED_WORDSの単語が含まれていたら、その単語を'others'として、エンコーディングする 5 encoded_aTweet = ' ' 6 if any(unwanted_word in each_tweet for unwanted_word in UNWANTED_WORDS): # ツイートにUNWANTED_WORDSの単語があるかの判定 7 # もし、あれば、ツイートの各単語をUNWANTED_WORDSと照らし合わせる 8 for each_word in each_tweet.split(): 9 if each_word in UNWANTED_WORDS: 10 each_word = "others" 11 encoded_aTweet += (each_word+' ') 12 new_tweets.append(encoded_aTweet) 13 else: 14 new_tweets.append(each_tweet)
どうぞ、よろしくお願いしたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。