메인 콘텐츠로 건너뛰기

개요

모든 v2 엔드포인트에서 반환되는 게시물 객체에 주석이 추가되었습니다. 게시물 주석은 게시물 자체의 맥락 정보를 이해하는 방법을 제공합니다. 게시물은 100% 검토되지만, 게시물 텍스트의 내용 특성상 일부만 주석이 달립니다.
  1. 엔터티 주석(NER): 엔터티에는 사람, 장소, 제품, 조직 등이 포함되며 entity 페이로드 섹션으로 제공됩니다. 게시물 텍스트에 명시적으로 언급된 내용(개체명 인식)에 기반해 프로그램적으로 할당됩니다.
  2. 컨텍스트 주석: 게시물 텍스트 분석을 통해 도출되며, 도메인과 엔터티의 페어링을 포함해 이전에는 노출하기 어려웠던 주제의 게시물을 찾는 데 도움을 줍니다. 현재 80개 이상의 도메인을 사용해 게시물을 분류합니다. 사용 가능한 컨텍스트 주석 엔터티의 CSV 파일은 당사의 GitHub 리포지토리에서 확인할 수 있습니다.

게시물 주석(Annotation) 유형

엔터티

엔터티 주석은 entities 필드 내에서 프로그래밍적으로 정의된 엔터티이며, 페이로드에 주석으로 반영됩니다. 각 주석에는 신뢰도 점수가 있으며, 게시물 텍스트에서 엔터티가 식별된 위치(startend 필드 사용)를 나타냅니다. 엔터티 주석 유형은 다음과 같습니다.
  • 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월 컨텍스트 주석은 페이로드의 context_annotations 필드로 전달됩니다. 이는 게시물 텍스트에 포함된 키워드, 해시태그, 핸들 등을 의미 분석해 추론되며, 도메인 및/또는 엔터티 레이블을 산출합니다. 현재 아래 표와 같이 80개 이상의 도메인을 사용하고 있습니다.
Domain CategoriesDomain Codes
3: TV 프로그램46: 브랜드 카테고리
4: TV 에피소드47: 브랜드
6: 스포츠 이벤트48: 제품
10: 인물54: 음악가
11: 스포츠55: 음악 장르
12: 스포츠 팀56: 배우
13: 장소58: 엔터테인먼트 인물
22: TV 장르60: 운동선수
23: TV 채널65: 관심사 및 취미 버티컬
26: 스포츠 리그66: 관심사 및 취미 카테고리
27: 아메리칸 풋볼 경기28: NFL 풋볼 경기
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: TV 채널 [Entity Service]
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: TV 채널 [Entity Service]157: Colleges & Universities
109: 반복 트렌드158: 관심 지점
110: 바이럴 계정159: 주
114: 콘서트160: 국가
115: 비디오 게임 컨퍼런스162: 운동 및 피트니스
116: 비디오 게임 토너먼트163: 여행
117: 영화제164: 학문 분야
118: 시상식165: 기술
119: 공휴일166: 주식
120: 디지털 크리에이터167: 동물
122: 가상 캐릭터171: 지역 뉴스
130: 멀티미디어 프랜차이즈172: 글로벌 TV 프로그램
131: 통합 Twitter 분류173: Google 제품 분류
136: 비디오 게임 인물174: 디지털 자산 및 암호화폐
137: e스포츠 팀175: 긴급 사건
138: e스포츠 선수
참고: 도메인 131(Unified Twitter Taxonomy)는 X의 사용자 대상 관심사 분류체계를 가리킵니다. 이 분류체계는 플랫폼의 Topics 같은 기능을 지원합니다.

주석 요청하기

예시 요청

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": "제품"
                    "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"
    }
}

샘플 앱

Glitch의 Post Entity Extractor를 살펴보고, 게시물의 컨텍스트 주석을 쉽게 찾아보며 이 기능이 어떻게 작동하는지 확인해 보세요.

자주 묻는 질문

컨텍스트 주석

아래 질문들은 Tweet 주석 중 컨텍스트 주석 요소에 관한 내용입니다. 자세한 내용은 개요 페이지를 참조하세요.
X는 트윗을 의미 기반으로 분류합니다. 이는 특정 주제와 관련된 키워드, 해시태그, @핸들 목록을 선별해 관리한다는 의미입니다. 트윗에 우리가 지정한 텍스트가 포함되어 있으면 해당 트윗에 적절한 레이블이 적용됩니다. 이는 모델을 학습시켜 텍스트(이 경우 트윗)를 분류하고, 출력/분류와 함께 확률 점수를 산출하는 머신러닝 접근 방식과는 다릅니다.
Twitter의 주석은 수년간 다듬어 온 연구 및 QA 프로세스를 통해 도메인 전문가가 선별합니다. 이 프로세스는 우수한 정밀도와 재현율을 유지할 수 있는 한도까지 데이터 추적을 확장하도록 맞춤형 도구로 지원됩니다. 또한 당사 데이터는 내부 팀이 정기적으로 감수하며, 지난 몇 분기 동안 약 80%의 정밀도 점수를 받았습니다.
팀 구성원들은 높은 정밀도와 재현율을 확보하기 위해 매일 엔터티를 품질 검토(QA)합니다. 또한 당사 작업은 내부 팀이 분기마다 감사를 수행하며, 이 팀은 모든 도메인 전반에서 트윗 10,000건을 수작업으로 검토해 정밀도 점수를 산출합니다.
스포츠나 TV와 같은 일부 도메인에서는 그래프 구축을 위해 자동 수집에 의존합니다. 뉴스 도메인에서는 Twitter Moments 팀이 게시한 스토리와 관련된 데이터를 추적합니다. 그 밖의 경우에는 플랫폼에서 대화량이 많은 추적 대상 주제를 식별하기 위해 팀이 다양한 연구 방법을 사용합니다.
데이터 추적은 엔티티가 게시되는 순간부터 시작됩니다. 따라서 특정 엔티티가 추적되기 전에 게시된 트윗에는 주석을 추가하지 않습니다. 예를 들어, 신생 브랜드/회사가 분류 체계에 추가되었다면, 해당 주석이 추가되기 이전의 그 브랜드 관련 트윗에는 소급하여 주석을 달지 않습니다.
네. 언어 지원 범위는 도메인과 시장에 따라 달라질 수 있습니다. 영어와 일본어는 대부분의 주요 엔터티에 포함됩니다. 아래는 현재 지원되는 언어와 주요 시장 목록입니다:
  1. 영어(미국, 영국)
  2. 일본어(일본)
  3. 포르투갈어(브라질)
  4. 스페인어(아르헨티나, 멕시코, 스페인)
  5. 힌디어(인도)
  6. 아랍어(사우디아라비아)
  7. 터키어(터키)
  8. 인도네시아어(인도네시아)
  9. 러시아어(러시아)
  10. 프랑스어(프랑스)
곧 제공 예정(~2021년 하반기):
  1. 독일어(독일)
  2. 타밀어(인도)
아래는 주석이 달린 Tweet 커버리지가 가장 높은 상위 15개 국가를 내림차순으로 정렬한 표입니다:
순위국가 코드국가주석이 달린 Tweet 비율
1IN인도41%
2VN베트남36%
3GB영국36%
4EC에콰도르35%
5PE페루33%
6US미국32%
7CA캐나다32%
8AU호주31%
9JP일본31%
10PH필리핀30%
11SG싱가포르30%
12MY말레이시아30%
13MX멕시코30%
14GB영국29%
15NG나이지리아29%
트윗 주석은 트윗을 주석 처리하기 위한 다음과 같은 의미 요소로 구성됩니다:
  • 계정 - 특정 핸들의 트윗 또는 해당 핸들을 언급하는 트윗을 주석 처리할 수 있습니다
  • 해시태그
  • 키워드/구문
PowerTrack 같은 필터링 스트리밍 API에 익숙한 고객이라면, 주석에 사용되는 의미 요소는 트윗 스트림을 필터링하기 위해 정의된 불리언 규칙과 원칙적으로 유사하다는 것을 알 수 있습니다. 트윗이 해당 의미 조건을 충족하면 그에 따라 태그가 지정됩니다.
가능한 한 많은 트윗에 주석을 다는 것이 목표이지만, 일부 트윗에 주석이 달리지 않는 이유는 다음과 같습니다:
  • 일부 트윗은 의미가 충분히 풍부하지 않아 라벨을 붙이기 어렵고, 현재 주석 규칙으로는 태그할 수 없습니다
  • 일부 트윗은 주제와 관련이 없습니다
  • 해당 트윗은 우리 그래프에 포함되지 않은 매우 단기적인 주제를 다룹니다
  • 해당 언어/시장을 지원하지 않습니다
  • 해당 언어/시장은 지원하지만, 이미 추적 중인 주제와 관련된 주제나 특정 용어/계정/해시태그가 누락되어 있습니다
하나의 엔터티는 여러 도메인에 속할 수 있습니다. 도메인 id는 바뀔 수 있지만 엔터티 id는 동일하게 유지됩니다. Donald Glover는 사람(도메인 10), 배우(도메인 56), 음악가(도메인 54)지만 그의 엔터티 id는 여전히 875072662527029248입니다.
추적은 출시 한 달 전에 시작됩니다. 마블 영화처럼 인기 있는 블록버스터의 경우, 출시를 예고하기 시작하면 즉시 추적을 시작할 수 있습니다.
아니요, 그렇지 않아요.