Analiza pseudonimów w przepływie plików GenderAPI.
Przykładowe dane wejściowe
Pseudonim nie jest weryfikacją tożsamości
@alice_smith może pasować do elementu imiennego. Przy prenses i forceToGenderize prognoza może zostać zwrócona, choć imię pozostaje null. user47291 może pozostać nieznany. Są to przykładowe dane wejściowe; nie przypisujemy im z góry żadnego wyniku płci.
Logika analizy
Jak działa prognozowanie płci na podstawie nazwy użytkownika?
System sprawdza czytelne elementy imienne i inne wskazówki językowe w nazwie użytkownika lub nazwie wyświetlanej. Standardowa AI szuka użytecznego prawdziwego imienia; przy forceToGenderize może zinterpretować pseudonim bez prawdziwego imienia. Wynik jest zwracany wraz z polami kontekstu; losowych lub niewystarczających danych wejściowych nie należy zmuszać do wygenerowania wyniku.
01Nazwa użytkownikaPseudonim lub nazwa wyświetlana
Przeanalizuj nazwy użytkowników z pliku Excel lub CSV w czterech krokach
01
Otwórz narzędzie Excel/CSV
Przejdź do narzędzia importu GenderAPI i wczytaj plik do przetworzenia.
02
Wybierz kolumnę źródłową
Zmapuj kolumnę zawierającą nazwy użytkowników, pseudonimy lub nazwy wyświetlane.
03
Włącz analizę pseudonimów
Włącz opcję, która interpretuje aliasy i nazwy używane w mediach społecznościowych.
04
Sprawdź próbkę, a potem wyeksportuj
Najpierw sprawdź reprezentatywny zestaw rekordów, a następnie przetwórz cały plik i pobierz wzbogacone dane.
Nowe konta obejmują 200 bezpłatnych kredytów API dziennie, dzięki czemu możesz sprawdzić przepływ na próbce przed przetworzeniem całego pliku.
Zastosowania
Używaj go jako sygnału pomocniczego, gdy brakuje prawdziwego imienia
Analiza nazw użytkowników może być przydatna w danych z mediów społecznościowych, społeczności, gier i profili tworzonych przez użytkowników, gdy pole imienia jest puste. Jeśli masz bardziej bezpośrednie i dozwolone źródło, takie jak prawdziwe imię lub adres e-mail, użyj odpowiedniego endpointu.
Ograniczenia
Nie traktuj wyniku jako zweryfikowanej tożsamości
Nie każdy pseudonim zawiera prawdziwe imię, skojarzenia kulturowe są różne, a to samo wyrażenie może mieć różne znaczenia w zależności od języka. Gdy sygnał jest niewystarczający, zaakceptuj pusty wynik, zamiast przekształcać słabe dane w ostateczny wniosek.
Przewodnik wdrożenia V2
Przechowuj dane źródłowe i prognozę osobno
Zachowaj oryginalny identyfikator rekordu. API nie otwiera żadnego profilu, nie weryfikuje, do kogo należy konto, ani nie potwierdza niczyjej tożsamości. Kontekst kraju wysyłaj tylko wtedy, gdy masz wiarygodną informację; nie wyprowadzaj go z domeny ani z języka strony.
Przykładowe dane wejściowe
Pole lub opcja
Jak interpretować
Przykładowe dane wejściowe@alice_smith
Pole lub opcjadata.name / data.match
Jak interpretowaćZachowaj oryginalną nazwę użytkownika; nie traktuj dopasowanego fragmentu jako zweryfikowanego imienia.
Przykładowe dane wejścioweprenses
Pole lub opcjaforceToGenderize: true
Jak interpretowaćPozwala zinterpretować pseudonim bez prawdziwego imienia. Płeć może zostać zwrócona przy data.name równym null; nie wymyślaj imienia dla tej osoby.
Przykładowe dane wejścioweuser47291
Pole lub opcjadata.result_status: unknown
Jak interpretowaćNieprzejrzyste lub niewystarczające dane wejściowe mogą pozostać nieznane. Nie jest to powód do automatycznego ponawiania zapytania.
Wyślij nazwę użytkownika z type: username; nie wysyłaj adresu URL profilu. Wyszukiwanie w zbiorze danych usuwa początkowy znak @, normalizuje tekst i tworzy kandydatów na podstawie separatorów i cyfr. Standardowe zapytanie może dodać ograniczoną liczbę dopasowań według prefiksu i sufiksu; forceToGenderize nie korzysta z tych dodatkowych fragmentów. Jeśli pasuje kilka rekordów, wybierany jest ten z najwyższą zarejestrowaną liczebnością. Dla adresów e-mail używaj type: email, a dla prawdziwych imion type: name.
Wybierz tryb przetwarzania i jego koszt w kredytach
Opcja
Przetwarzanie
Koszt za udany element
Opcjaoptions.ai_mode: off
PrzetwarzanieTylko zbiór danych
Koszt za udany element1 kredyt
Opcjaoptions.ai_mode: fallback
PrzetwarzanieNajpierw zbiór danych, a jeśli płeć nie zostanie ustalona, standardowa AI
Koszt za udany elementŁącznie 1 kredyt, wraz z AI
Opcjaoptions.ai_mode: always
PrzetwarzanieBezpośrednio AI
Koszt za udany element2 kredyty
OpcjaforceToGenderize: true
PrzetwarzanieNajpierw zbiór danych, a następnie interpretacja pseudonimu bez wymogu prawdziwego imienia
Koszt za udany element1, jeśli wystarczy zbiór danych; łącznie 2, jeśli użyto AI
W pojedynczym zapytaniu wartością domyślną jest fallback, a w elementach partii off. forceToGenderize jest opcjonalne dla imion, adresów e-mail i nazw użytkowników; w takim przypadku pomiń ai_mode lub użyj fallback, ponieważ ta opcja nie jest zgodna z off i always. Udane wyniki unknown również są rozliczane. Do rozpoczęcia wystarczy dodatnie saldo początkowe; po zakończeniu operacji saldo może spaść poniżej zera.
Przypisz każdemu elementowi partii własne opcje
Przykładowe dane wejściowe nie gwarantują żadnej konkretnej prognozy. Ustaw GENDERAPI_API_KEY w środowisku serwera i nie umieszczaj klucza w publicznym kodzie po stronie klienta. V1 i V2 korzystają z tego samego klucza konta i tego samego salda. Sprawdź klucz za pomocą /api/v2/usage i upewnij się, że meta.access.mode ma wartość api_key.
Wybierz język programowania.Skonfiguruj klucz API, następnie uruchom przykład na swoim serwerze.
Każde zapytanie o prognozę, łącznie z ponownymi próbami, jest nową płatną operacją. Te przykłady nie ponawiają zapytań automatycznie. Przed wysłaniem kolejnego zapytania sprawdź status rozliczenia.
Zanim uruchomisz: dostęp i obsługa błędów
Uruchamiaj te przykłady na swoim serwerze. Ustaw w środowisku procesu zmienną GENDERAPI_API_KEY na swój istniejący klucz API. Upewnij się, że meta.access.mode ma wartość api_key: nierozpoznany klucz może spowodować przejście na próbę dla adresu IP.
W przypadku odpowiedzi JSON z kodem HTTP 4xx i 5xx przykłady zachowują treść błędu i zwracają niezerowy kod wyjścia. Przed ponowną próbą sprawdź code, action i meta.usage.billing_status. W odpowiedziach dla partii z kodem HTTP 200 sprawdź też data lub error w każdym elemencie.
import jsonimport osimport sysimport urllib.errorimport urllib.requestapi_key = os.environ.get("GENDERAPI_API_KEY")if not api_key: raise RuntimeError("Set GENDERAPI_API_KEY")body = json.loads("{\"items\":[{\"id\":\"profile-001\",\"type\":\"username\",\"value\":\"@alice_smith\",\"options\":{\"ai_mode\":\"off\"}},{\"id\":\"profile-002\",\"type\":\"username\",\"value\":\"alexriver\",\"options\":{\"ai_mode\":\"fallback\"}},{\"id\":\"profile-003\",\"type\":\"username\",\"value\":\"prenses\",\"country\":\"TR\",\"forceToGenderize\":true}]}")class NoRedirect(urllib.request.HTTPRedirectHandler): def redirect_request(self, req, fp, code, msg, headers, newurl): return Nonerequest = urllib.request.Request( "https://api.genderapi.io/api/v2/gender/batch", method="POST", data=json.dumps(body).encode("utf-8"), headers={ "Authorization": "Bearer " + api_key, "Content-Type": "application/json", },)opener = urllib.request.build_opener(NoRedirect())try: response = opener.open(request, timeout=30)except urllib.error.HTTPError as error: response = error # Keep the Problem Details body on non-2xx responses.with response: status = response.status raw = response.read().decode("utf-8") if "json" not in response.headers.get("Content-Type", ""): raise RuntimeError(f"HTTP {status}: expected a JSON response") result = json.loads(raw)print(json.dumps(result, indent=2), file=sys.stderr if status >= 300 else sys.stdout)if not 200 <= status < 300: sys.exit(1) # Inspect code, action and billing before retrying.# For batches, inspect every item even when HTTP status is 200.
using System;using System.Net.Http;using System.Net.Http.Headers;using System.Text;using System.Text.Json;string RequiredEnv(string name) => !string.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable(name)) ? Environment.GetEnvironmentVariable(name)! : throw new InvalidOperationException($"Set {name}");var apiKey = RequiredEnv("GENDERAPI_API_KEY");using var handler = new HttpClientHandler { AllowAutoRedirect = false };using var client = new HttpClient(handler) { Timeout = TimeSpan.FromSeconds(30) };using var request = new HttpRequestMessage(HttpMethod.Post, "https://api.genderapi.io/api/v2/gender/batch");request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);request.Content = new StringContent("{\"items\":[{\"id\":\"profile-001\",\"type\":\"username\",\"value\":\"@alice_smith\",\"options\":{\"ai_mode\":\"off\"}},{\"id\":\"profile-002\",\"type\":\"username\",\"value\":\"alexriver\",\"options\":{\"ai_mode\":\"fallback\"}},{\"id\":\"profile-003\",\"type\":\"username\",\"value\":\"prenses\",\"country\":\"TR\",\"forceToGenderize\":true}]}", Encoding.UTF8, "application/json");using var response = await client.SendAsync(request);var raw = await response.Content.ReadAsStringAsync();if (!(response.Content.Headers.ContentType?.MediaType?.Contains("json") ?? false)) throw new InvalidOperationException($"HTTP {(int)response.StatusCode}: expected JSON");using var result = JsonDocument.Parse(raw);if (!response.IsSuccessStatusCode){ Console.Error.WriteLine(result.RootElement); // Preserve Problem Details. Environment.ExitCode = 1;}else{ Console.WriteLine(result.RootElement); // For batches, inspect every item even on HTTP 200.}
POST /api/v2/gender/batch przyjmuje do 50 elementów z kluczem API i 10 w ramach próby dla adresu IP. Każdemu elementowi przypisz własne type, value i options. Jeśli chcesz używać standardowego przejścia na AI, ustaw fallback jawnie w każdym elemencie. id musi być unikalne w obrębie partii; index zaczyna się od zera w wysłanej partii. Własne identyfikatory zadania i wiersza źródłowego przechowuj osobno.
Kod HTTP 200 nie oznacza, że wszystkie elementy zakończyły się powodzeniem. Wyniki identified, unknown i error obsługuj osobno; meta.summary.succeeded liczy zarówno identified, jak i unknown. Oceniaj łącznie data.gender, source, confidence_kind, confidence, match i reason. Nie traktuj wyniku AI i częstości w zbiorze danych jako równoważnych.
Jeśli meta.usage.billing_status ma wartość confirmed, ponawiaj tylko te błędy operacyjne, które dopuszczają ponowną próbę. Jeśli status to unconfirmed lub odpowiedź została utracona, zatrzymaj się i uzgodnij rozliczenie. Ponowne wysłanie tego samego rekordu, także udanego wyniku unknown, tworzy nową płatną operację; nigdy nie wysyłaj ponownie całej listy na ślepo.
Dodatki do Excela i Google Sheets oraz inne gotowe integracje mogą korzystać z własnego połączenia i własnego formatu wyników. Nie zakładaj, że ich wynik jest zgodny z tym schematem JSON V2; sprawdź aktualny przewodnik każdej integracji.
Najczęściej zadawane pytania
Płeć na podstawie nazwy użytkownika lub pseudonimu
Czy można określić płeć na podstawie nazwy użytkownika?
W V2, jeśli włączysz forceToGenderize, najpierw sprawdzany jest zbiór danych; jeśli płeć nie zostanie ustalona, AI może zinterpretować pseudonim bez wymogu prawdziwego imienia. Wynik może pozostać unknown i nie jest zweryfikowaną tożsamością. Standardowa AI wymaga natomiast użytecznego prawdziwego imienia.
Które nazwy użytkowników dają najbardziej przydatne wyniki?
Bardziej przydatny sygnał mogą dać wartości zawierające prawdziwe imię, czytelne zdrobnienie lub wyraźny element imienny. Losowe ciągi znaków i nazwy marek mogą nie dać żadnego wyniku.
Czy mogę przeanalizować pojedynczą nazwę użytkownika przez API?
Tak. Pojedynczy endpoint analizuje jeden rekord. Do wielu rekordów służy osobny endpoint zapytań zbiorczych.
Czy mogę zaimportować plik Excel lub CSV?
Tak. W narzędziu do plików możesz wybrać kolumnę nazwy użytkownika lub nazwy wyświetlanej i włączyć analizę pseudonimów.
Dlaczego warto przechowywać razem pola pewności i źródła z V2?
W V2 data.confidence przyjmuje wartości od 0 do 1. Oceniaj je razem z source i confidence_kind, ponieważ wynik AI i częstość w zbiorze danych to różne miary. Zachowuj wyniki unknown i pole reason.
Czy wynik nadaje się do segmentacji?
Może służyć jako sygnał pomocniczy w analizach zbiorczych i wzbogacaniu danych, ale nie powinien samodzielnie decydować o sprawach o dużym wpływie na konkretną osobę ani służyć do przesądzania o jej tożsamości.
Czy mogę przetestować usługę bezpłatnie?
Nowe konta GenderAPI obejmują 200 bezpłatnych kredytów API dziennie do testowania reprezentatywnych próbek przez API lub pliki.
Przetestuj swoją integrację
Przeanalizuj nazwę użytkownika za pomocą dedykowanego API
Zacznij od 200 bezpłatnych kredytów API dziennie i podłącz endpoint dopasowany do swojego przepływu.