フィルタリングされたストリームのルール構築
目次
ルールの作成
ルールの制限
オペレーターの種類: 単体および接続詞が必要
#hashtag オペレーターを使用しており、これは単体であるため機能します:
#xapiv2
接続詞が必要なオペレーター は、ルール内で単独で使用できません。少なくとも1つの単体オペレーターがルールに含まれている場合にのみ使用できます。これは、これらのオペレーターを単独で使用すると、あまりにも一般的になり、投稿の極めて大量に一致してしまうためです。
たとえば、以下のルールは、接続詞が必要なオペレーターのみを含んでいるためサポートされていません:
has:media
has:links OR is:retweet
たとえば、フレーズ "X data" のような単体オペレーターを追加すると、ルールは適切に機能します。
"X data" has:mentions (has:media OR has:links)
ブール演算子とグループ化
| AND 論理 | 連続する演算子 間にスペースを置く と、ブール「AND」論理が適用され、両方の条件が満たされた場合にのみ投稿が一致します。たとえば、snow day #NoSchool は snow と day のキーワード、および #NoSchool ハッシュタグを含む投稿に一致します。 |
| OR 論理 | 連続する演算子に OR を挟むと、OR 論理が適用され、いずれかの条件が満たされた場合に投稿が一致します。たとえば、grumpy OR cat OR #meme を指定すると、grumpy または cat のキーワード、または #meme ハッシュタグの少なくとも1つを含む投稿に一致します。 |
| NOT 論理、否定 | キーワード(または任意の演算子)にダッシュ (-) を前に付けて否定(NOT)します。たとえば、cat #meme -grumpy は #meme ハッシュタグと cat のキーワードを含む投稿に一致しますが、grumpy のキーワードを含まない場合に限ります。一般的なルール句の1つは -is:retweet で、リツイートには一致せず、元の投稿、引用ツイート、および返信にのみ一致します。すべての演算子を否定できますが、否定された演算子は単独では使用できません。 |
| グループ化 | 演算子をグループ化するために括弧を使用できます。たとえば、(grumpy cat) OR (#meme has:images) は grumpy と cat のキーワードを含む投稿、または #meme ハッシュタグを含む画像付き投稿のいずれかを返します。AND が最初に適用され、次に OR が適用されることに注意してください。 |
否定に関する注意すべての演算子を否定できますが、
sample: を除きます。また、-is:nullcast は常に否定形として使用する必要があります。否定された演算子は単独では使用できません。括弧でグループ化された演算子のセットを否定しないでください。代わりに、各個別の演算子を否定してください。たとえば、skiing -(snow OR day OR noschool) を使用する代わりに、skiing -snow -day -noschool を使用することをお勧めします。 演算の順序
- AND 論理で接続された演算子が最初に結合されます
- その後、OR 論理で接続された演算子が適用されます
apple OR iphone ipadはapple OR (iphone ipad)として評価されますipad iphone OR androidは(ipad iphone) OR androidとして評価されます
(apple OR iphone) ipadiphone (ipad OR android)
句読点、ダイアクリティカルマーク、大小文字の区別
diacrítica やハッシュタグ #cumpleaños を含むルールは、アクセントやダイアクリティカルマークが含まれているため、diacrítica や #cumpleaños を含むPostにマッチします。ただし、チルデ付きの í やエニェがない Diacritica や #cumpleanos を含むPostにはマッチしません。
アクセントやダイアクリティカルマークを含む文字は通常の文字と同様に扱われ、単語境界とは見なされません。たとえば、キーワード cumpleaños を含むルールは、cumpleaños という語を含むPostにのみマッチし、cumplea、cumplean、または os を含むPostにはマッチしません。
すべての演算子は大文字・小文字を区別せずに評価されます。たとえば、ルール cat は、cat、CAT、Cat のいずれにもマッチします。
Search Posts のマッチング挙動は filtered stream とは異なります。Search Posts のクエリを構築する際は、アクセントやダイアクリティカルマークを含むキーワードやハッシュタグが、アクセントやダイアクリティカルマークを含む表記と通常の文字の表記の両方にマッチすることに留意してください。たとえば、キーワード
Diacrítica やハッシュタグ #cumpleaños を含む Search Posts のクエリは、Diacrítica や #cumpleaños に加えて、チルデ付きの í やエニェがない Diacritica や #cumpleanos にもマッチします。具体性と効率
- ルールで単一のキーワードや #ハッシュタグのような広範な単体演算子を使用するのは、通常推奨されません。なぜなら、それらは大量の投稿に一致する可能性が高いからです。より堅牢なルールを作成すれば、より具体的な一致投稿のセットが得られ、価値ある洞察を探すためにペイロードを精査する際のノイズを減らすことができるでしょう。
- たとえば、ルールが単にキーワード
happyの場合、1 日あたり 200,000 〜 300,000 の投稿が得られる可能性があります。 - 条件演算子を追加することで検索結果を絞り込めます。たとえば
(happy OR happiness) place_country:GB -birthday -is:retweet
- たとえば、ルールが単にキーワード
- 効率的なルールを書くことは、ルールの文字数制限内に収まるのにも有益です。文字数は、スペースや演算子を含むルール文字列全体を含みます。
- たとえば、次のルールは 59 文字です:
(happy OR happiness) place_country:GB -birthday -is:retweet
- たとえば、次のルールは 59 文字です:
引用Tweetのマッチング動作
ルールの反復的な構築
ルールを早期に、かつ頻繁にテストする
happy OR happiness
結果を活用してルールを絞り込む
lang: 演算子を追加します:
(happy OR happiness) lang:en
テストでは、誕生日を祝う内容の Post が多数含まれていたため、否定キーワード演算子として -birthday を追加します。さらに、オリジナルの Post のみに絞るため、否定の -is:retweet 演算子も追加しました:
(happy OR happiness) lang:en -birthday -is:retweet
必要に応じて包含を調整する
excited と elated のキーワードを追加します。
(happy OR happiness OR excited OR elated) lang:en -birthday -is:retweet
時間経過に伴う人気トレンドやバーストへの調整
-holidays キーワードを追加します。
(happy OR happiness OR excited OR elated) lang:en -birthday -is:retweet -holidays
ルールの追加と削除
add JSON ボディを送信します。このボディは、ルールを含む value パラメータ、および返された投稿がこのルールに一致するかどうかを識別するために使用できる自由形式のテキストを含むオプションの tag パラメータからなるオブジェクトの配列を含みます。
例として、ストリームにルールのセットを追加しようとしている場合、cURL コマンドは次のようになります:
delete JSON ボディを送信します。このボディには、削除したいルールの ID を含む id パラメータの配列を指定します。
たとえば、ストリームから一連のルールを削除する場合、cURL コマンドは次のようになります:
ルールの例
自然災害の追跡
会話のセンチメントのレビュー
特定の Post アノテーションに関連する Post を検索する
context: 演算子を活用して Post annotation 機能を利用しました。まず、Post lookup エンドポイントと tweet.fields=context_annotations fields パラメータを使用して、クエリで使用する必要がある domain.entity ID を特定しました:
- 猫に関連する Post は、
domain66 (Interests and Hobbies category) にentity852262932607926273 (Cats) を返します。 - ペットに関連する Post は、
domain65 (Interests and Hobbies Vertical) にentity852262932607926273 (Pets) を返します。