メインコンテンツへスキップ

概要

annotations は、Post オブジェクトを返すすべての v2 endpoint が返す Post オブジェクトに追加されています。Post annotations は、Post 自体に関するコンテキスト情報を把握する手段を提供します。すべての Posts が審査対象ですが、Post のテキスト内容により、注釈が付与されるのは一部に限られます。
  1. エンティティ注釈(NER): エンティティには人物、場所、製品、組織が含まれ、entity ペイロードセクションで提供されます。Post テキスト内で明示的に言及されている内容(固有表現認識)に基づき、プログラムで割り当てられます。
  2. コンテキスト注釈: Post のテキスト分析に基づいて導出されるコンテキスト注釈には、ドメインとエンティティの組み合わせが含まれ、これまで可視化が難しかったトピックに関する Posts の発見に役立ちます。現在、Posts を分類するために 80 以上のドメインを使用しています。利用可能な context annotation エンティティの CSV ファイルは、当社の GitHub リポジトリ で入手できます。

Post アノテーションのタイプ

エンティティ

エンティティ注釈は、entities フィールド内でプログラムによって定義されたエンティティで、ペイロードでは annotations として反映されます。各注釈には信頼度スコアが含まれ、Post のテキスト内でエンティティが検出された位置(startend fields を使用)を示します。 エンティティ注釈のタイプには次が含まれます:
  • Person - 例: Barack Obama、Daniel、George W. Bush
  • Place - 例: Detroit、Cali、San Francisco
  • Product - 例: Mountain Dew、Mozilla Firefox
  • Organization - 例: Chicago White Sox、IBM
  • Other - 例: Diabetes、Super Bowl 50

コンテキスト

最終更新日: 2022年6月 コンテキスト annotations は、ペイロードの context_annotations フィールドで提供されます。これは、Post テキスト内のキーワード、ハッシュタグ、ハンドルなどの意味解析に基づいて推定され、ドメインやエンティティのラベルとして付与されます。現在、以下の表に示すとおり、80以上のドメインを使用しています。
ドメインカテゴリドメインコード
3: テレビ番組46: ブランドカテゴリ
4: テレビエピソード47: ブランド
6: スポーツイベント48: 製品
10: 人物54: ミュージシャン
11: スポーツ55: 音楽ジャンル
12: スポーツチーム56: 俳優
13: 場所58: エンターテインメント著名人
22: テレビジャンル60: アスリート
23: テレビチャンネル65: 関心・趣味バーティカル
26: スポーツリーグ66: 関心・趣味カテゴリ
27: アメリカンフットボールの試合67: 関心・趣味
28: NFLの試合68: ホッケーの試合
29: イベント71: ビデオゲーム
31: コミュニティ78: ビデオゲームパブリッシャー
35: 政治家79: ビデオゲームハードウェア
38: 選挙戦83: クリケットの試合
39: バスケットボールの試合84: 書籍
40: スポーツシリーズ85: 書籍ジャンル
43: サッカーの試合86: 映画
44: 野球の試合87: 映画ジャンル
45: ブランドバーティカル88: 政治機関
46: ブランドカテゴリ89: 音楽アルバム
47: ブランド90: ラジオ局
48: 製品91: ポッドキャスト
54: ミュージシャン92: スポーツ著名人
55: 音楽ジャンル93: コーチ
56: 俳優94: ジャーナリスト
58: エンターテインメント著名人95: テレビチャンネル[エンティティサービス]
60: アスリート109: 定期的トレンド
65: 関心・趣味バーティカル110: バイラルアカウント
66: 関心・趣味カテゴリ114: コンサート
67: 関心・趣味115: ビデオゲームカンファレンス
68: ホッケーの試合116: ビデオゲームトーナメント
71: ビデオゲーム117: 映画祭
78: ビデオゲームパブリッシャー118: 授賞式
79: ビデオゲームハードウェア119: 祝日
83: クリケットの試合120: デジタルクリエイター
84: 書籍122: 架空のキャラクター
85: 書籍ジャンル130: マルチメディアフランチャイズ
86: 映画131: 統合Twitter分類法
87: 映画ジャンル136: ビデオゲーム関連著名人
88: 政治機関137: eスポーツチーム
89: 音楽アルバム138: eスポーツ選手
90: ラジオ局139: ファンコミュニティ
91: ポッドキャスト149: eスポーツリーグ
92: スポーツ著名人152: 食品
93: コーチ155: 天気
94: ジャーナリスト156: 都市
95: テレビチャンネル[エンティティサービス]157: 大学
109: 定期的トレンド158: 名所・スポット
110: バイラルアカウント159: 州
114: コンサート160: 国
115: ビデオゲームカンファレンス162: エクササイズ&フィットネス
116: ビデオゲームトーナメント163: 旅行
117: 映画祭164: 学問分野
118: 授賞式165: テクノロジー
119: 祝日166: 株式
120: デジタルクリエイター167: 動物
122: 架空のキャラクター171: ローカルニュース
130: マルチメディアフランチャイズ172: グローバルテレビ番組
131: 統合Twitter分類法173: Google製品分類
136: ビデオゲーム関連著名人174: デジタル資産と暗号資産
137: eスポーツチーム175: 緊急事態イベント
138: eスポーツ選手
注意: Domain 131(Unified Twitter Taxonomy)は、X のユーザー向けインタレスト分類を指します。この分類は、プラットフォーム上の Topics などの機能を支える基盤となっています。

annotations のリクエスト方法

リクエスト例

curl --location --request GET 'https://api.x.com/2/tweets/1212092628029698048?tweet.fields=context_annotations,entities' --header 'Authorization: Bearer $BEARER_TOKEN'

サンプル応答

{
    "data": {
        "context_annotations": [
            {
                "domain": {
                    "id": "119",
                    "name": "Holiday",
                    "description": "クリスマスやハロウィンのような祝日"
                },
                "entity": {
                    "id": "1186637514896920576",
                    "name": "大晦日"
                }
            },
            {
                "domain": {
                    "id": "119",
                    "name": "Holiday",
                    "description": "クリスマスやハロウィンのような祝日"
                },
                "entity": {
                    "id": "1206982436287963136",
                    "name": "新年あけましておめでとう:ついに世界中で2020年に!"
                    "description": "世界各地で人々が新年を迎える花火やさまざまな祝賀の様子をご覧ください。\n写真提供:@GettyImages"
                }
            },
            {
                "domain": {
                    "id": "45",
                    "name": "Brand Vertical",
                    "description": "ブランドの業界を表す最上位のエンティティ"
                }
            },
            {
                "domain": {
                    "id": "46",
                    "name": "Brand Category",
                    "description": "ブランド・バーティカル内でブランドの範囲を絞り込むカテゴリ"
                },
                "entity": {
                    "id": "781974596752842752",
                    "name": "サービス"
                }
            },
            {
                "domain": {
                    "id": "47",
                    "name": "Brand",
                    "description": "ブランドおよび企業"
                },
                "entity": {
                    "id": "10045225402",
                    "name": "Twitter"
                }
            }
        ],
        "entities": {
            "annotations": [
                {
                    "start": 144,
                    "end": 150,
                    "probability": 0.626,
                    "type": "Product",
                    "normalized_text": "Twitter"
                }
            ],
            "urls": [
                {
                    "start": 222,
                    "end": 245,
                    "url": "https://t.co/yvxdK6aOo2",
                    "expanded_url": "https://x.com/LovesNandos/status/1211797914437259264/photo/1",
                    "display_url": "pic.x.com/yvxdK6aOo2"
                }
            ]
        },
        "id": "1212092628029698048",
        "text": "私たちは、APIの最良の将来像は、皆さまと共に構築することで実現すると信じています。Twitterプラットフォームで構築している皆さま、今年もどうぞよろしくお願いいたします。新年も引き続きご一緒できるのを楽しみにしています。 https://t.co/yvxdK6aOo2"
    }
}

サンプル App

Glitch 上の Post Entity Extractor を確認して、Posts の context annotations を簡単に見つけ、この機能の仕組みを確認してください。

よくあるご質問

コンテキスト annotations

以下の質問は、Tweet annotations の要素であるコンテキスト annotations に特化した内容です。詳細は概要ページをご参照ください。
X では Tweet を意味ベースで分類します。つまり、特定のトピックに関連するキーワード、ハッシュタグ、@handles を選定・管理したリストを用意します。Tweet に当社が指定したテキストが含まれている場合、適切にラベル付けされます。これは、モデルに特定のテキスト(この場合は Tweet)の分類を学習させ、出力(分類)と併せて確率スコアを生成する機械学習アプローチとは異なります。
Xのannotationsは、ドメインの専門家が、数年にわたり洗練されてきた調査およびQAプロセスを用いて精選しています。このプロセスは、優れた適合率と再現率を維持できる範囲でdataの追跡を拡張するカスタムツール群によって支えられています。さらに、当社のdataは社内チームが定期的に監査しており、直近数四半期にわたり約80%の適合率スコアを維持しています。
チームメンバーは、精度と再現率を高水準に保つため、日々エンティティの品質確認を行っています。さらに、当社の取り組みは四半期ごとに社内チームの監査を受け、全ドメインにわたる10,000件のTweetを手作業でレビューして精度スコアを算出します。
スポーツやテレビといった一部のドメインでは、自動インジェストによりグラフを構築しています。ニュースのドメインでは、Twitter Moments チームが公開したストーリーに関するdataを追跡しています。それ以外については、チームがさまざまなリサーチ手法を用いて、プラットフォーム上で活発な議論を生む追跡対象トピックを特定します。
エンティティが公開された時点からデータの追跡が開始されます。したがって、特定のエンティティが追跡対象になる前に公開されたTweetに注釈を付与することはありません。たとえば、新興のブランド/企業がタクソノミーに追加された場合、その注釈が追加される前に当該ブランドに関して投稿されたTweetを遡って注釈付けすることはありません。
はい。言語の対応範囲はドメインや市場によって異なる場合があります。英語と日本語は、主要なエンティティの大半でサポートされています。以下に、現時点で対応している言語と主要市場の一覧を示します。
  1. English (US, UK)
  2. Japanese (Japan)
  3. Portuguese (Brazil)
  4. Spanish (Argentina, Mexico, Spain)
  5. Hindi (India)
  6. Arabic (Saudi Arabia)
  7. Turkish (Turkey)
  8. Indonesian (Indonesia)
  9. Russian (Russia)
  10. French (France)
近日提供予定(~H2 2021):
  1. German (Germany)
  2. Tamil (India)
以下は、注釈付きtweetsのカバレッジが高い順に並べた上位15か国の表です。
RankCountry codeCountry% of Tweets annotated
1INIndia41%
2VNVietnam36%
3GBGreat Britain36%
4ECEcuador35%
5PEPeru33%
6USUnited States32%
7CACanada32%
8AUAustralia31%
9JPJapan31%
10PHPhilippines30%
11SGSingapore30%
12MYMalaysia30%
13MXMexico30%
14GBGreat Britain29%
15NGNigeria29%
Tweet の annotations は、Tweet に注釈を付与するために次のセマンティクスで構成されます:
  • アカウント — 特定のハンドルからの tweets、またはそのハンドルへの言及を含む tweets に注釈を付与できます
  • ハッシュタグ
  • キーワード/フレーズ
PowerTrack などのフィルタリング済みストリーミング APIs に精通しているお客様にとって、annotations で使用されるセマンティクスは、Tweet の stream をフィルタリングするために定義されるブールルールと基本的に同様です。ある Tweet が基礎となるセマンティクス条件に一致した場合、該当するタグが付与されます。
目標は可能な限り多くの Tweet に注釈を付与することですが、いくつかの理由により注釈が付与されない場合があります。
  • 一部の Tweet は意味情報が十分でなく、現行の注釈ルールではラベル付けやタグ付けができません
  • 一部の Tweet は特定のトピックに属しません
  • その Tweet は当社のグラフに含まれていない、ごく短命なトピックに関するものです
  • 当社が対応していない言語/市場です
  • 言語/市場には対応しているものの、すでに追跡中のトピックに関連するトピックや特定の用語/アカウント/ハッシュタグのカバレッジが不足しています
エンティティは複数のドメインに属する場合があります。ドメインのidは変わりますが、エンティティのidは同じままです。Donald Gloverは人物(ドメイン 10)、俳優(ドメイン 56)、ミュージシャン(ドメイン 54)ですが、彼のエンティティのidは 875072662527029248 のままです。
トラッキングはリリースの1か月前から開始します。Marvel作品のような人気の大作の場合は、公開の予告が始まり次第、すぐにトラッキングを始められます。
いいえ、違います。
I