Wykrywanie języka
Interfejs API wykrywania języka sztucznej inteligencji platformy Azure ocenia dane wejściowe tekstu, a dla każdego przesłanego dokumentu zwraca identyfikatory języka z wynikiem wskazującym siłę analizy.
Ta funkcja jest przydatna w przypadku magazynów zawartości, które zbierają dowolny tekst, gdzie język jest nieznany. Inny scenariusz może obejmować czatbota. Jeśli użytkownik rozpocznie sesję z czatbotem, wykrywanie języka może służyć do określenia używanego języka i umożliwienia skonfigurowania odpowiedzi bota w odpowiednim języku.
Możesz przeanalizować wyniki tej analizy, aby określić, który język jest używany w dokumencie wejściowym. Odpowiedź zwraca również wynik, który odzwierciedla pewność modelu (wartość z zakresu od 0 do 1).
Wykrywanie języka może pracować z dokumentami lub pojedynczymi frazami. Należy pamiętać, że rozmiar dokumentu musi zawierać się poniżej 5120 znaków. Limit rozmiaru jest na dokument, a każda kolekcja jest ograniczona do 1000 elementów (identyfikatorów). W tym miejscu pokazano przykład prawidłowo sformatowanego ładunku JSON, który można przesłać do usługi w treści żądania, w tym kolekcję dokumentów , z których każdy zawiera unikatowy identyfikator oraz tekst do przeanalizowania. Opcjonalnie możesz podać countryHint w celu zwiększenia wydajności przewidywania.
{
"kind": "LanguageDetection",
"parameters": {
"modelVersion": "latest"
},
"analysisInput":{
"documents":[
{
"id": "1",
"text": "Hello world",
"countryHint": "US"
},
{
"id": "2",
"text": "Bonjour tout le monde"
}
]
}
}
Usługa zwróci odpowiedź JSON zawierającą wynik dla każdego dokumentu w treści żądania, w tym przewidywany język i wartość wskazującą poziom ufności przewidywania. Poziom ufności to wartość z zakresu od 0 do 1, przy czym wartości bliższe 1 oznaczają wyższy poziom ufności. Oto przykład standardowej odpowiedzi JSON odpowiadającej powyższemu żądaniu JSON.
{ "kind": "LanguageDetectionResults",
"results": {
"documents": [
{
"detectedLanguage": {
"confidenceScore": 1,
"iso6391Name": "en",
"name": "English"
},
"id": "1",
"warnings": []
},
{
"detectedLanguage": {
"confidenceScore": 1,
"iso6391Name": "fr",
"name": "French"
},
"id": "2",
"warnings": []
}
],
"errors": [],
"modelVersion": "2022-10-01"
}
}
W naszym przykładzie wszystkie języki wykazują wskaźnik ufności 1, głównie dlatego, że tekst jest stosunkowo prosty i łatwy do identyfikacji.
Jeśli przekażesz dokument z wielojęzyczną zawartością, usługa będzie działać nieco inaczej. Zawartość języka mieszanego w tym samym dokumencie zwraca język z największą reprezentacją w zawartości, ale z niższą pozytywną oceną odzwierciedlając marginalną siłę tej oceny. W poniższym przykładzie dane wejściowe są mieszanką języka angielskiego, hiszpańskiego i francuskiego. Analizator używa analizy statystycznej tekstu w celu określenia przeważającego języka.
{
"documents": [
{
"id": "1",
"text": "Hello, I would like to take a class at your University. ¿Se ofrecen clases en español? Es mi primera lengua y más fácil para escribir. Que diriez-vous des cours en français?"
}
]
}
Poniższy przykład przedstawia odpowiedź dla tego przykładu w wielu językach.
{
"documents": [
{
"id": "1",
"detectedLanguage": {
"name": "Spanish",
"iso6391Name": "es",
"confidenceScore": 0.9375
},
"warnings": []
}
],
"errors": [],
"modelVersion": "2022-10-01"
}
Ostatnim warunkiem, który należy wziąć pod uwagę, jest to, że istnieje niejednoznaczność co do zawartości językowej. Ten scenariusz może wystąpić, jeśli przesyłasz zawartość tekstową, której analizator nie może przeanalizować, na przykład z powodu problemów z kodowaniem znaków podczas konwertowania tekstu na zmienną ciągu. W rezultacie odpowiedź dla nazwy języka i kodu ISO będzie wskazywać (nieznany), a wartość wyniku zostanie zwrócona jako 0
. W poniższym przykładzie pokazano, jak wygląda odpowiedź.
{
"documents": [
{
"id": "1",
"detectedLanguage": {
"name": "(Unknown)",
"iso6391Name": "(Unknown)",
"confidenceScore": 0.0
},
"warnings": []
}
],
"errors": [],
"modelVersion": "2022-10-01"
}