取得したツイートを必要なテキストだけ取り出したい
Q&A
取得したツイート情報を正規表現を使って、「返信先:@~」を除去して、pandasの
DataFrame内に収納したいです。どなたかご教授頂けると幸いです。
*赤線で引いた所を削除したいと考えています。
Q&A
取得したツイート情報を正規表現を使って、「返信先:@~」を除去して、pandasの
DataFrame内に収納したいです。どなたかご教授頂けると幸いです。
*赤線で引いた所を削除したいと考えています。
取り急ぎの回答になるため具体的なコードは示せないですが、
「正規表現」というものを使えばいけそうな気がします
@R_Tani0112
Questioner
ご回答ありがとうございます。
正規表現を使えば取り出せることは、分かっているのですが、どうプログラムを組めば、必要なテキスト情報になるのかが、分からなくて困っているんですよね...
以下のようなコードで意図しているものが取り出せました。
import re
str = "返信先:@hogehoge\nテストツイート"
re.sub("返信先:@.+\n", '', str)
テストツイート
19セルのifブロックの一番下に
value = re.sub("返信先:@.+\n", '', value)
を追加することでいけそうな気がしますがいかがでしょうか?
@R_Tani0112
Questioner
ご連絡ありがとうございます。
ご教授頂いたソースで解決できました。
助かりました!ありがとうございます。
Pythonの正規表現ライブラリre
とpandas
を使用してツイートから特定のテキストを除去し、DataFrame
に収納するコードのサンプルを書いてみます。参考にしてみてください。
まずはツイートのデータがどのように構成されているかを知る必要があります。ここでは、ツイートが文字列のリストとして提供され、各ツイートが単一の文字列であると仮定します。
import re
import pandas as pd
# 元のツイートのリスト
tweets = [
"This is a tweet. 返信先:@user1",
"Another tweet here. 返信先:@user2",
"Yet another tweet. 返信先:@user3",
# 他のツイート...
]
# 「返信先:@~」を除去
tweets_cleaned = [re.sub(r'返信先:@\S*', '', tweet) for tweet in tweets]
# DataFrameに収納
df = pd.DataFrame(tweets_cleaned, columns=['tweet'])
print(df)
まず各ツイートから「返信先:@~」を除去します。
正規表現 返信先:@\S* は、「返信先:@」に続く一つ以上の非空白文字(ユーザー名)を指します。
次に、整形されたツイートのリストを使用してpandas
のDataFrame
を作成します。
列名として 'tweet'
を指定します。
re.sub
関数は、最初の引数の正規表現に一致する部分を、第二引数の文字列で置き換えます。
この場合、第二引数は空文字列('')なので、一致する部分が削除されます。
@R_Tani0112
Questioner
ご回答ありがとうございます。