-4

Twitter からデータを収集するアプリを作成しようとしています。単語のリストを取得し、特定の時間枠でそれらが表示される頻度を判断したいと考えています。

これを達成するにはどうすればよいですか?

4

1 に答える 1

5

Twitter が直接サポートするサービスに関しては、多くの選択肢はありません。

Twitter Search APIを使用できますが、次の制限があります

  • 現在のインデックスには、6 ~ 9 日間のツイートが含まれています。
  • 検索 API を使用して、約 1 週間以上前のツイートを検索することはできません。

とはいえ、この範囲内でツイートを検索しても問題ない場合、ツイートを時間でフィルター処理するために使用できるパラメーターの数は限られています。

  • until- 特定の日付までのツイートを返します
  • since_id- 特定のツイートID以降に発生したツイートを表示
  • max_id- 特定のつぶやき ID までのつぶやきを表示します

ツイートのIDは昇順で増えるので、検索したい範囲を区切ったツイートのIDを用意してみると良いでしょう。

キーワードには、パラメータを使用することに注意してqください。

pageまた、 and rpp(results per page) パラメータを使用して結果をページングする必要があることに注意してください。

サードパーティのサービスを使用してツイートをアーカイブすることもできますが、ここでのリスクは、これらのサービスが必要な限り存在しない可能性があることです.

容量がある場合は、ストリーミング APIを使用して、アプリケーションにフィードされたツイートのファイアホースを取得し、将来の処理のために保存することをお勧めします。

基本的に、あなたは Twitter とのオープンなつながりを作り、それを維持します。このフィードはレートが制限され、品質が管理されていることに注意してください。ただし、アプリケーションでスイッチをオンにした瞬間から、必要なデータを必要なだけ保持するのに適した方法です。

結果を取得する方法を明確にしたら、頻度を取得するのは簡単です。結果を保存していると仮定すると、ドキュメント指向のデータベース( elasticsearchRavenDB など) を使用することをお勧めします。これらは、ツイート エンティティが返されるJSON 形式の処理に適しているだけでなく、将来そのデータをクエリおよび操作するためのより優れたメカニズムを提供します。

上記のソリューションの両方で、アイテムの総数と、特定の検索用語に適合するアイテムの数を取得できます (必要に応じて、JSON ドキュメントのプロパティでさらにフィルター処理することもできます)。

用語頻度/逆ドキュメント頻度を取得したい場合は、elasticsearch を使用するとインデックスの統計に直接アクセスできると思います (RavenDB についてはわかりません)。または、必要に応じてLucene.NETを使用して自分でドキュメント ストアを構築することもできます。本当に必要最小限のものを取得するには (実装するのははるかに手間がかかりますが、取得したい統計にはるかに近くなります)。

于 2012-04-04T20:41:16.317 に答える