Vai al contenuto principale

Panoramica

Le annotations sono state aggiunte all’Oggetto Post in tutti gli endpoint v2 che restituiscono un Oggetto Post. Le annotations dei Post offrono un modo per comprendere informazioni contestuali sul Post stesso. Sebbene il 100% dei Post venga esaminato, a causa del contenuto del testo del Post solo una parte viene annotata.
  1. Entity annotations (NER): Le entità includono persone, luoghi, prodotti e organizzazioni e vengono fornite nella sezione del payload entity. Vengono assegnate in modo programmatico in base a ciò che è esplicitamente menzionato (riconoscimento di entità denominate) nel testo del Post.
  2. Context annotations: Derivate dall’analisi del testo di un Post, le context annotations includono una coppia dominio‑entità per aiutare a scoprire Post su argomenti che in precedenza potevano essere difficili da far emergere. Attualmente utilizziamo oltre 80 domini per categorizzare i Post. Un file CSV delle entità di context annotation disponibili è reperibile nel nostro GitHub repository.

Tipi di annotazione dei Post

Entità

Le annotazioni delle entità sono entità definite a livello programmatico nel campo entities e vengono restituite come annotations nel payload. Ogni annotazione ha un punteggio di attendibilità e indica in quale punto del testo del Post le entità sono state identificate (tramite i campi start e end). I tipi di annotazioni delle entità includono:
  • Persona - Esempi: Barack Obama, Daniel, George W. Bush
  • Luogo - Esempi: Detroit, Cali, San Francisco
  • Prodotto - Esempi: Mountain Dew, Mozilla Firefox
  • Organizzazione - Esempi: Chicago White Sox, IBM
  • Altro - Esempi: Diabete, Super Bowl 50

Contesto

Ultimo aggiornamento: giugno 2022 Le annotazioni di contesto sono restituite nel campo context_annotations del payload. Sono inferite tramite analisi semantica di parole chiave, hashtag, handle, ecc. nel testo del Post e producono etichette di dominio e/o entità. Attualmente utilizziamo oltre 80 domini, come mostrato nella tabella seguente.
Categorie di dominioCodici di dominio
3: Programmi TV46: Categoria di brand
4: Episodi TV47: Brand
6: Eventi sportivi48: Prodotto
10: Persona54: Musicista
11: Sport55: Genere musicale
12: Squadra sportiva56: Attore
13: Luogo58: Personalità dell’intrattenimento
22: Generi TV60: Atleta
23: Canali TV65: Verticale interessi e hobby
26: Lega sportiva66: Categoria interessi e hobby
27: Partita di football americano67: Interessi e hobby
28: Partita NFL68: Partita di hockey
29: Eventi71: Videogioco
31: Community78: Editore di videogiochi
35: Politici79: Hardware per videogiochi
38: Competizione politica83: Partita di cricket
39: Partita di basket84: Libro
40: Serie sportive85: Genere letterario
43: Partita di calcio86: Film
44: Partita di baseball87: Genere cinematografico
45: Verticale di brand88: Organismo politico
46: Categoria di brand89: Album musicale
47: Brand90: Stazione radio
48: Prodotto91: Podcast
54: Musicista92: Personalità sportiva
55: Genere musicale93: Allenatore
56: Attore94: Giornalista
58: Personalità dell’intrattenimento95: Canale TV [Entity Service]
60: Atleta109: Tendenze ricorrenti
65: Verticale interessi e hobby110: Account virali
66: Categoria interessi e hobby114: Concerto
67: Interessi e hobby115: Conferenza sui videogiochi
68: Partita di hockey116: Torneo di videogiochi
71: Videogioco117: Festival cinematografico
78: Editore di videogiochi118: Cerimonia di premiazione
79: Hardware per videogiochi119: Festività
83: Partita di cricket120: Creator digitale
84: Libro122: Personaggio di fantasia
85: Genere letterario130: Franchise multimediale
86: Film131: Tassonomia unificata di Twitter
87: Genere cinematografico136: Personalità dei videogiochi
88: Organismo politico137: Squadra eSports
89: Album musicale138: Giocatore eSports
90: Stazione radio139: Community di fan
91: Podcast149: Lega eSports
92: Personalità sportiva152: Cibo
93: Allenatore155: Meteo
94: Giornalista156: Città
95: Canale TV [Entity Service]157: College e università
109: Tendenze ricorrenti158: Punti di interesse
110: Account virali159: Stati
114: Concerto160: Paesi
115: Conferenza sui videogiochi162: Esercizio e fitness
116: Torneo di videogiochi163: Viaggi
117: Festival cinematografico164: Campi di studio
118: Cerimonia di premiazione165: Tecnologia
119: Festività166: Azioni
120: Creator digitale167: Animali
122: Personaggio di fantasia171: Notizie locali
130: Franchise multimediale172: Programma TV globale
131: Tassonomia unificata di Twitter173: Tassonomia dei prodotti di Google
136: Personalità dei videogiochi174: Asset digitali e crypto
137: Squadra eSports175: Eventi di emergenza
138: Giocatore eSports
Nota: Il dominio 131 (Unified Twitter Taxonomy) fa riferimento alla User Facing Interest Taxonomy di X. Questa tassonomia alimenta funzionalità della piattaforma come Topics.

Richiedere le annotations

Esempio di richiesta

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

Esempio di risposta

{
    "data": {
        "context_annotations": [
            {
                "domain": {
                    "id": "119",
                    "name": "Holiday",
                    "description": "Festività come Natale o Halloween"
                },
                "entity": {
                    "id": "1186637514896920576",
                    "name": "Vigilia di Capodanno"
                }
            },
            {
                "domain": {
                    "id": "119",
                    "name": "Holiday",
                    "description": "Festività come Natale o Halloween"
                },
                "entity": {
                    "id": "1206982436287963136",
                    "name": "Buon Anno Nuovo: È finalmente il 2020 ovunque!",
                    "description": "Guarda i fuochi d'artificio e altre celebrazioni mentre le persone in tutto il mondo entrano nel nuovo anno.\nFoto tramite @GettyImages"
                }
            },
            {
                "domain": {
                    "id": "45",
                    "name": "Brand Vertical",
                    "description": "Entità di livello superiore che descrivono il settore di un Brand"
                }
            },
            {
                "domain": {
                    "id": "46",
                    "name": "Brand Category",
                    "description": "Categorie all'interno dei Brand Vertical che restringono l'ambito dei Brand"
                },
                "entity": {
                    "id": "781974596752842752",
                    "name": "Servizi"
                }
            },
            {
                "domain": {
                    "id": "47",
                    "name": "Brand",
                    "description": "Brand e Aziende"
                },
                "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": "Crediamo che la migliore versione futura della nostra API nascerà costruendola con VOI. Ecco a un altro grande anno con tutti coloro che sviluppano sulla piattaforma Twitter. Non vediamo l'ora di continuare a lavorare con voi nel nuovo anno. https://t.co/yvxdK6aOo2"
    }
}

App di esempio

Dai un’occhiata al Post Entity Extractor su Glitch per scoprire facilmente le annotations di contesto nei Post e vedere come funziona questa funzionalità.

Domande frequenti

Annotazioni di contesto

Le domande seguenti si riferiscono nello specifico all’elemento context annotations delle Tweet annotations. Per maggiori dettagli, consulta la pagina Panoramica.
X classifica i Tweet in base al significato: curiamo elenchi di parole chiave, hashtag e @handle pertinenti a uno specifico argomento. Se un Tweet contiene il testo da noi indicato, verrà etichettato di conseguenza. Questo si differenzia da un approccio di machine learning, in cui un modello viene addestrato specificamente a classificare il testo (in questo caso, i Tweet) e a restituire, insieme alla classificazione, anche un punteggio di probabilità.
Le annotations di X sono curate da esperti di dominio tramite processi di ricerca e QA perfezionati nel corso di diversi anni. Il processo è supportato da strumenti personalizzati per scalare il tracciamento dei data mantenendo la massima precision e recall possibili. Inoltre, i nostri data vengono sottoposti regolarmente ad audit da un team interno e hanno ottenuto un punteggio di precision di circa l’80% negli ultimi trimestri.
I membri del team eseguono il controllo qualità delle nostre entità ogni giorno per garantire un’elevata precisione e copertura (recall). Inoltre, il nostro lavoro è sottoposto trimestralmente ad audit da parte di un team interno, che esamina manualmente 10.000 Tweet in tutti i nostri domini per calcolare un punteggio di precisione.
Per alcuni domini, come sport e TV, ci affidiamo a un’acquisizione automatizzata per ampliare il nostro grafo. Nel dominio News, monitoriamo i dati relativi alle storie pubblicate dal team di Twitter Moments. Negli altri casi, il team utilizza una varietà di metodi di ricerca per individuare argomenti da monitorare che generano un elevato volume di conversazioni sulla piattaforma.
Il tracciamento dei dati inizia nel momento in cui un’entità viene pubblicata; pertanto, non annotiamo i Tweet pubblicati prima che si inizi a tracciare una determinata entità. Ad esempio, se un nuovo brand/azienda viene aggiunto alla tassonomia, non annoteremo retroattivamente i Tweet su quel brand precedenti all’aggiunta dell’annotazione.
Sì. La copertura linguistica può variare in base al dominio e al mercato. L’inglese e il giapponese sono inclusi nella maggior parte delle realtà più grandi. Di seguito è riportato l’elenco delle lingue e dei principali mercati attualmente coperti:
  1. Inglese (USA, Regno Unito)
  2. Giapponese (Giappone)
  3. Portoghese (Brasile)
  4. Spagnolo (Argentina, Messico, Spagna)
  5. Hindi (India)
  6. Arabo (Arabia Saudita)
  7. Turco (Turchia)
  8. Indonesiano (Indonesia)
  9. Russo (Russia)
  10. Francese (Francia)
In arrivo (~H2 2021):
  1. Tedesco (Germania)
  2. Tamil (India)
Di seguito è riportata una tabella dei 15 paesi principali ordinati in base alla maggiore copertura di Tweet annotati:
RankCountry codeCountry% of Tweets annotated
1INIndia41%
2VNVietnam36%
3GBRegno Unito36%
4ECEcuador35%
5PEPerù33%
6USStati Uniti32%
7CACanada32%
8AUAustralia31%
9JPGiappone31%
10PHFilippine30%
11SGSingapore30%
12MYMalesia30%
13MXMessico30%
14GBRegno Unito29%
15NGNigeria29%
Le annotations dei Tweet comprendono le seguenti categorie semantiche per annotare un Tweet:
  • Account: possiamo annotare i tweet provenienti da un determinato handle o che menzionano tale handle
  • Hashtag
  • Parole chiave/frasi
Per i clienti che hanno familiarità con le API di stream filtrato come PowerTrack, le semantiche utilizzate dalle annotations sono in linea di principio simili alle regole booleane definite per filtrare uno stream di Tweet. Se un Tweet soddisfa le condizioni semantiche sottostanti, verrà contrassegnato di conseguenza.
L’obiettivo è annotare il maggior numero possibile di Tweet; tuttavia, ci sono diversi motivi per cui alcuni Tweet non vengono annotati:
  • Alcuni Tweet non sono abbastanza ricchi dal punto di vista semantico da poter essere etichettati e non possono essere contrassegnati in base alle nostre attuali regole di annotazione
  • Alcuni Tweet non sono pertinenti
  • Il Tweet riguarda un argomento molto effimero che non è presente nel nostro grafo
  • Non copriamo la lingua/il mercato
  • Copriamo la lingua/il mercato, ma ci manca un argomento o un termine/account/hashtag specifico correlato a un argomento che già monitoriamo
Un’entità può appartenere a più domini. Gli id di dominio possono cambiare, ma l’id dell’entità resta lo stesso. Donald Glover è una persona (dominio 10), un attore (dominio 56) e un musicista (dominio 54), ma il suo id di entità è sempre 875072662527029248.
Il monitoraggio inizia un mese prima dell’uscita. Per i blockbuster più attesi, come un film Marvel, possiamo iniziare a monitorarli non appena iniziano a stuzzicare il pubblico con l’annuncio dell’uscita.
No, non lo fanno.
I