🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Q&A

解決済

1回答

905閲覧

文が文字毎に分解されてしまう

farinelli

総合スコア61

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

0グッド

0クリップ

投稿2019/10/09 10:50

リアルタイムで収集したツイートから、url, 返信, RTを除去したものをテキストファイルとして生成すると同時に,ターミナルに表示させたいと思っています.
現在,ファイルもターミナルも取得したツイートが1文字ずつ分解されている上に,1部が正規表現によって置換されてしまっている状態です.

何とかして取得したツイートを元の文の形で書き込み・表示させるべく,お力をお貸しいただけますと幸いです
宜しくお願いします.

現状(ファイルの中身, test.txt)

イメージ説明

現状(ターミナル)

イメージ説明

コード

renshu.py

1import os 2import tweepy 3import redis 4from collections import Counter 5from collections import defaultdict 6import re 7from natto import MeCab 8import codecs 9import sys 10from sklearn.feature_extraction.text import TfidfVectorizer 11import glob 12import pandas as pd 13import numpy as np 14import urllib.request 15from gensim import corpora 16from itertools import chain 17 18#APIのauth部分は省略 19 20class StreamListener(tweepy.StreamListener): 21 def __init__(self): 22 super().__init__() 23 self.count = 0 # 取得したtweet数 24 25 def on_status(self, status): 26 text = str(status.text) 27 28 #日本語ツイートをファイルに書き込んでいる + ツイートの数を表示 29 if status.lang == "ja": 30 file = open("test.txt", "a", encoding="utf-8") 31 sentence = str(text) 32 #print(sentence) 33 sentence = re.sub(r"http\S+", "", sentence) 34 sentence = re.sub(r"@(\w+) ", "", sentence) 35 sentence = re.sub(r"(^RT.*)", "", sentence, flags=re.MULTILINE | re.DOTALL) 36 emoji_pattern = re.compile("[" 37 u"\U0001F600-\U0001F64F" 38 u"\U0001F300-\U0001F5FF" 39 u"\U0001F680-\U0001F6FF" 40 u"\U0001F1E0-\U0001F1FF" 41 "]+", flags=re.UNICODE) 42 sentence = emoji_pattern.sub("", sentence) 43 texts = set(sentence) 44 print(texts) 45 texts = file.write(str(texts)) 46 47#加工部分は省略 48 49stream = tweepy.Stream(auth=auth, listener=StreamListener()) 50stream.sample()

補足情報(FW/ツールのバージョンなど)

iOS 10.15, Python 3.7.4, Atom

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2019/10/09 11:09

どこで何がおかしくなっているのか、status.textの値から変換毎の値を都度確認してはどうでしょうか?
guest

回答1

0

ベストアンサー

python

1texts = set(sentence)

集合型に変換しているので、そのせいです。集合型を文字列として表現した結果が得られています。

この処理を挟まずに出力すれば良いでしょう。

投稿2019/10/09 11:38

編集2019/10/09 11:40
hayataka2049

総合スコア30935

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

farinelli

2019/10/16 01:14

お返事が遅くなり失礼しました.有難うございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問