Hatena::ブログ(Diary)

聴く耳を持たない(片方しか)

2013-02-09 Twitterで期間を限定して検索する方法&ヘルプに載ってない裏技テク

<追記 2015-08-20>

この記事は2013年に書いたものですがその後 Twitterの仕様変更や便利な拡張機能が開発されたりしたので、新たに記事を書き直しました

過去のツイートを全て読む & 期間を指定して検索する便利な方法

</追記ここまで>



先日Twitterの公式blogで検索機能が強化されたことが発表されました。

Now showing: Older Tweets in search results(英語)

というのも、Twitterの検索はこれまで約1週間前のツイートまでしか対象にならなかったのですが、それよりもずっと古い過去のツイート……例えば6年前の2007年ごろのツイートも検索できるようになりました。

日本語の記事だとITmediaのこの記事が分かりやすいです

Twitter、古いツイートの検索を可能に - ITmedia NEWS

ただし

米Twitterは2月7日(現地時間)、公式Twitter(モバイルを含む)での検索で、従来より古いツイートを結果として表示するようにしたと発表した。適用対象はiOSおよびAndroidアプリと、Twitter.com。

http://www.itmedia.co.jp/news/articles/1302/08/news041.html

と、現在はまだ全てのクライアントで使える訳ではないのが注意する点ですね。


しかし、「じゃあ、自分が使い始めたころのツイート検索してみよう!」と思っても、どう検索ワードを選べばいいのか分からない人も多いのではないでしょうか?そういう人に役立つ検索オプションの設定の仕方や検索テクニック……でもってついでにヘルプにも載っていない検索方法もおまけとして紹介しよう!という記事です。


まず最初に

検索オプションとは直接は関係ないのですが、自分がいつからTwitterを使い始めたのか?を調べておくとツイート検索を試すのが面白いでしょうから、先にその方法を紹介します。

Twitterにユーザー登録をした日時を調べるWebサービスはいくつかあるものの、今年の3月にその調べる仕組み(API)に大幅な改修が予定されているため、今後のことを考えると Twilog に登録するのが最も便利でしょう。

Twilog - Twitterのつぶやきをブログ形式で保存

Twilog はツイートをブログ形式で保存するサービスです。日付ごとにツイートを整理できるほか、登録しておくと利用状況などを分析もしてくれます。

(私の月別ツイート数の推移グラフ)

非常に役立つサービスですので、お勧めです。


で、Twilog ではユーザー毎のページでいつ頃からTwitterを利用し始めたのか表示しています。

調べる方法は Twilogのトップページ から

このフォームに自分のユーザー名を入力すれば分かります。

現在はTwilogへ登録しなくても表示できますが3月以降はおそらくこの機能は利用者以外には使えなくなる場合がある……と思います、たぶん。

その場合でも、ユーザー登録を行っておけば大丈夫かと。




本題の検索オプションについて

とりあえず、自分の最初のツイートを調べてみましょう

期間を限って指定のユーザーのツイートに絞る方法

期間を限定して、指定のユーザーのツイートを検索するのは

from:ユーザー名 since:日付(年-月-日) until:日付(年-月-日)

とすることで、検索できます。

例えば私(@rikuo)の場合はこのように2007年4月1日〜4月11日の期間で検索してみました

from:rikuo since:2007-04-01 until:2007-04-11


検索のオプションをそれぞれ解説してくと

from: ユーザーを指定する

from:ユーザー名

ユーザーを指定して検索します。

これを使わず例えば検索ワードを「rikuo」とだけ検索しても、 @rikuo のツイートが検索できるのですが、 @rikuo1234 や、@rikuo_foo みたいなユーザーのツイートも一緒に交じってしまうので、指定しておくといいでしょう。

since: 指定した日から投稿されたツイート

since:日付(年-月-日)

検索する範囲を指定した日以降のツイートに絞るオプションです。

雪降ってる since:2013-02-08

こんな指定ももちろんOK

until: 指定した日までに投稿されたツイート

until:日付(年-月-日)

こちらは検索する範囲を指定した日以前のツイートに絞るオプションで、もちろん単独で使え

ラーメンなう until:2013-02-08

こうした使い方もできます。

ただ過去の古いツイートを検索する際にはあまり長い期間を設定すると精度がよくないようなので、「since / until」をセットで使って期間を短く絞っておくといいでしょう。


続いて他の検索オプションも紹介していきます、基本的な部分はGoogle検索と一緒の部分も多いです

両方を含む検索

北海道 スキー

スペースを空けると、「北海道」と「スキー」の両方を含むツイートの検索になります。

OR いずれかの

雪 OR みぞれ OR 吹雪

で、「雪」「みぞれ」「吹雪」のいずれかの言葉が含まれるツイートを検索します。

"検索ワード" 検索ワードの一致

"クリームチーズケーキ"

語句と一致するツイートを検索します。

この場合ですと、「チーズケーキ」「クリームチーズ」は対象外になり、「クリームチーズケーキ」でないと該当しません。

-検索ワード 除外して検索

-男子 サッカー

「サッカー」は含むが「男子」と入ったツイートは除外して検索します


この辺りまでは一般的な検索エンジンと変わらないかと。


それ以外の検索オプションとしては

#haiku ハッシュタグ

#俳句

これはあまり説明必要ないかな、ハッシュタグですね。

to: 指定したユーザーへのリプライ

to:ユーザー名

で、そのユーザーへのリプライだけを検索できます。

@ユーザー名 指定したユーザーへのmention

@ユーザー名

とすると、そのユーザーへのmentionだけを検索できます……、という説明になるのですが、じゃあ「to:ユーザー名」と「@ユーザー名」との違いってなんだよ?となるとかなり説明がややこしくなってしまうので割愛。

単純に「自分宛のツイートを検索したい」という場合であれば応用で

-from:自分のユーザー名 @自分のユーザー名

とやると良いでしょう。

自分のツイートを除外して、自分宛のツイートだけを抽出できます。


near:地名 within:距離

near:NYC within:15mi

near:新宿 within:25km

それぞれ「ニューヨーク(New York City)から15マイル圏内のツイート」、「新宿から25キロ圏内のツイート」と地域を限定した検索が行えます。……が、日本だと実際はそれほど精度が高くないのでいまいちな機能です。単位はマイルとキロメートルのどちらでも可。

lang: 言語の指定

少し話は変わりますが、ロシアでは日本語のカタカナ「 ツ 」が笑っている顔に見えることから日本でいうところの「(^_^)」のような顔文字として使われています。でも、Twitterで「 ツ 」とだけ検索してしまうと日本語のツイートばかりヒットしてしまって、ロシア語ツイートにはたどりつけないですよね、

そんなときに

ツ OR ッ lang:ru

とすると、「ロシア語で『ツ』または『ッ』を含むツイート」 だけを検索できます。

「lang:ru」はロシア語(Russia)、日本語のツイートだけにしたい場合なら「lang:ja」になります。

filter:links リンクのあるツイート

filter:links

はリンクが含まれているツイートだけ検索します。


……とここまで書いてきましたが、これらの検索オプションは公式のヘルプに記載されているものなので、さらに詳しい内容はそちらを参考に

How to use advanced search

How to use advanced search (英語)

Twitterの高度な検索


公式のヘルプには載っていない隠し技的な検索オプション

ここからはおまけとして、公式のヘルプには載っていない検索オプションを2つ紹介します。

画像のあるツイートだけを検索

filter:images

とすると、TwitpicやInstagram、フォト蔵など画像共有サービスのURLが含まれたツイートのみを検索できます。

ただこの検索オプションは残念ながら pic.twitter.com に投稿された画像の場合は検索範囲の対象外になってしまうんですよね。pic.twitter.com として画像投稿ができる前の検索オプションだったために、おそらく抽出条件が見直されていないんじゃないかと。

なので、片手落ちではあるのですが、まぁ、参考程度に。

動画のあるツイートだけを検索

filter:videos

Youtubeやvimeoなど、動画共有サービスのURLが含まれたツイートのみの検索オプションです。

これのネックは、日本で人気のニコニコ動画が対象にならない点でしょうか。




……という感じでTwitter検索も応用すると色々使えますよー、という話でした。

私は2007年4月からTwitterを利用していてもうそろそろ6周年になるので、使い始めた当時の自分のツイートやフォローしている人のツイートを読み返すと結構面白かったり懐かしかったりしますね。

皆さんも過去のツイートを振り返ってみると楽しいのではないでしょうか。


関連リンク

Twitterは昔「twttr」だった?!2006年頃のTwitterを振り返る

リリース当時のTwitterの名前がtwttrだったことや、現存する最も古いツイートの紹介など

いまTwitter本って何冊あるのか調べてみた

書名に「Twitter」と入っている本がこれまでにどれくらい出ているのか月別に調べてみたエントリーです、また同じように「Facebook」と書名に入っている本を調べたエントリーも書いています > いまFacebook本って何冊あるのか調べてみた

ちなみに現在はFacebook関連本が150冊以上になり、Twitter関連本よりも多くなっていますね。

daipdaip 2013/07/16 12:21 こんにちわ
画像のみの検索が出来ないかと思い調べておりました。
画像検索とても参考になりました。

ところで、距離による検索なんですが
今この方法での検索って出来るのでしょうか?

例えば「暑い near:新宿 within:25km」で検索してみても
新宿ではないようなツイートが出てきます。
実際にこの検索方法って今も使えるのでしょうか?
また当方地方に住んでいるのですが、nearで使える都市名って
どうやって調べるのでしょうか?

突然の質問で申し訳ありません。
もしご存知でしたら教えて下さい。

rikuorikuo 2013/07/16 20:45 id:daipさん、こんばんわ

地域からの検索機能は元々精度は高くなかったのですが、ちょっと使い難くなっていますね。
それでも日本語表記より、2重引用符でローマ字表記にして、キロ(km)でなくマイル(mi)にすると少しはましな検索結果が得られるようです

× near:埼玉 within:25km
○ near:"saitama" within:15mi

ただ詳しく調べてみたら、この地域の抽出は位置情報が含まれるツイートだけに限ったものでなく
https://dev.twitter.com/docs/api/1.1/get/search/tweets
仕様では、プロフィールに記載された地域名も抽出してしまうようで、
例えばプロフィールに「埼玉(saitama)在住」と記載したユーザーが名古屋から位置情報(GPSなど)を付けずに投稿した場合は、名古屋ではなく埼玉からのツイートと判断されてしまうようです。
なので、

near:"saitama" within:15mi

と検索した場合は、

・埼玉付近の位置情報をつけたツイート
・プロフィールに埼玉付近と書かれた人のツイート

がピックアップされてしまうようですね。

また

> nearで使える都市名ってどうやって調べるのでしょうか?

については、一応技術的には APIから情報を得る手段が用意されてはいますが……

https://dev.twitter.com/docs/api/1.1/get/geo/search
https://dev.twitter.com/docs/api/1.1/get/geo/reverse_geocode
(日本語で解説された記事)
http://www.tryphp.net/2012/02/02/phpapptwitter-geo_search/
http://www.tryphp.net/2012/02/02/phpapptwitter-geo_reverse_geocode/

APIの仕様も変わり、試しに使うだけでも手間になってしまいましたから、技術者でないとちょっと難しいですね……。
とりあえず都道府県庁所在地や少し大きめな都市で探すのがいいかな、と。

ちなみに私の住んでいる新潟県だと、検索に使えるのは新潟市(niigata)/長岡市(nagaoka)/上越市(joetsu)/三条市(sanjo)/新発田市(shibata)/胎内市(tainai)などはありますが、
村上市・佐渡市は無かったりとちょっと不思議な挙動です。あとローマ字表記も三条(sanjou:さんじょう)でなく(sanjo)だったりするので、いくつか試してみてください。

ですがいずれにせよ、プロフィールの地名を対象にしてしまっているので精度は微妙ですが……。米国の都市でいくつか試してみてもイマイチでしたし、新宿(shinjuku)など都内の地名は対象が多過ぎるのかあまり良い結果にはなりませんでした。
位置情報がついたツイートだけが検索の対象になると良いんですけれども。

日 2016/08/06 00:37 人により期間の絞込みが出来ませんでした

rikuorikuo 2016/08/06 05:46 詳細が全く分からないので、なんとも返答できませんが
たまにそういうユーザーアカウントがあるらしいですね、原因として考えられるのは

-過去に(一時的にでも)プライベート(鍵付き)にしたことがある
-アカウントを変更したことがある

といったところでしょうか。後者は twitter.com/foobar のfoobarに当たる部分での話で、これを変更した場合は適切な検索結果にならない可能性があります。

かわかわ 2017/01/22 14:18 初めまして。ツイッターの事で相談をお願いしたくコメントをさせて頂きました。

Twitterの高度な検索機能を使って、過去の自分のツイートを表示させようとする事がどうしても成功しなく色々ネットを調べてこちら様のページに着きました。

自分は株投資をやっておりまして、無数にある企業の中から目立った 気になる会社のニュースや有名個人投資家のツイートなどを自分のアカウントに備忘録として残しております。

例えば、半年前に出たAと言う会社のニュース記事に現在出たAのニュースをリプライさせて会社毎に連なるように情報を追記していくなどしてますが、過去の自分のツイートにリプライするためにはブラウザでその当時のツイートまで読み込ませてから、その企業名をショートカットCtrl+Fで語句検索して探しているのですがTwitterはブラウザ読み込みの限度が数百?件までらしく、幾らでも過去に遡って読み込みできる訳ではありません。

なので、高度な検索機能を使って、自分のアカウントのみからAと言う会社のツイートを抽出できる絞り込み検索をしたいのですが、結果はいつも
「検索結果と一致するものはありません。キーワードをチェックしてやりなおしてください。」
等のエラー表示が出ます。

絞り込み条件のユーザー名の欄には
次のアカウントからのツイート
次のアカウントへの返信
次のアカウントへの@ツイート

欄に全て@自分のアカウントを入れてみたりとか日付欄も株を始めた頃から現在までのように条件を入れてみたりも試してみましたが、結果はダメなので、恐らく絞り込みの記入ミスなどは考えられません。

他の方に相談しても、ブラウザで読み込みじゃなくて自分の全ツイート履歴を含めたJSONファイルとCSVファイルのダウンロードすれば?と、アドバイスされた事がよくあります。

私は、自分のツイートにリプライで追記して続けて企業ごとの情報を整理しているからと言ってるのに、単純に履歴をファイルでダウンロードしても、ダウンロードしたファイルの中のツイートにリプライして追記出来なきゃ意味がないのですが、大勢の方が中々そこの所を理解できないみたいで、行き詰まったままです。
因みに、使用するブラウザはChrome Firefox IE エッジと変えて試してみましたが、違いはありませんでした。

大変面倒な相談かも知れませんが、もしこの症状の解決策をご存じならご回答お願いします。

rikuorikuo 2017/01/22 22:14 かわさん、こんばんわ。

そうした用途であれば、この記事にもある通り Twilog http://twilog.org/ の利用をおすすめします。Twitter本体の検索機能よりも使いやすいので、今後はそちらの方が良いでしょう。


……というのも、この記事本文にも書いたのですが、

> ただ過去の古いツイートを検索する際にはあまり長い期間を設定すると精度がよくないようなので、「since / until」をセットで使って期間を短く絞っておくといいでしょう。

の通り、日付を指定して検索できるとは言っても、あまり長い期間を指定すると検索漏れが多くなってしまいます。

> since:2016-01-22 until:2017-01-22

こうした期間指定はせず

> since:2016-01-22 until:2016-01-31

このように期間を細かく指定する必要があります。
どの程度の期間なら良いのか?というのは、投稿数によっても異なり、利用形態によっても様々であるため、はっきりとは言えませんが、一日に10ツイート程度の割合で利用する場合なら、おそらく一ヵ月程度の期間指定なら大丈夫……かな?と思います。
この期間の幅については、投稿数によっても違いが大きいので、色々と試してみてください。


またこれは違う問題ですが、過去にアカウントをプライベートにしていた場合は、その前後のツイートは検索から漏れてしまうこともあるかもしれません。

かわかわ 2017/01/23 09:43 長くて面倒な相談、お手数をお掛けしました。
回答ありがとうございました。