Za pomocą pakietu ML Kit możesz określić język ciągu tekstowego. Dostępne opcje uzyskać najbardziej prawdopodobny język ciągu oraz wskaźniki ufności dla wszystkich możliwych języków ciągu.
ML Kit rozpoznaje tekst w ponad 100 różnych językach w skryptach natywnych. Tekst zlatynizowany można też rozpoznać w językach arabskim, bułgarskim, chińskim, greckim, hindi, japońskim i rosyjskim. Zobacz pełną listę obsługiwanych języków i skryptów.
Wypróbuj
- Wypróbuj przykładową aplikację, aby: zobaczysz przykład użycia tego interfejsu API.
Zanim zaczniesz
- W pliku Podfile umieść te pody ML Kit:
pod 'GoogleMLKit/LanguageID', '3.2.0'
- Po zainstalowaniu lub zaktualizowaniu podów projektu otwórz projekt Xcode za pomocą
.xcworkspace
ML Kit jest obsługiwany w Xcode w wersji 12.4 lub nowszej.
Określ język ciągu
Aby określić język ciągu, pobierz wystąpienie
LanguageIdentification
, a następnie przekaż ten ciąg do funkcji
Metoda identifyLanguage(for:)
.
Na przykład:
Swift
let languageId = NaturalLanguage.languageIdentification() languageId.identifyLanguage(for: text) { (languageCode, error) in if let error = error { print("Failed with error: \(error)") return } if let languageCode = languageCode, languageCode != "und" { print("Identified Language: \(languageCode)") } else { print("No language was identified") } }
Objective-C
MLKLanguageIdentification *languageId = [MLKLanguageIdentification languageIdentification]; [languageId identifyLanguageForText:text completion:^(NSString * _Nullable languageCode, NSError * _Nullable error) { if (error != nil) { NSLog(@"Failed with error: %@", error.localizedDescription); return; } if (![languageCode isEqualToString:@"und"] ) { NSLog(@"Identified Language: %@", languageCode); } else { NSLog(@"No language was identified"); } }];
Jeśli wywołanie się powiedzie,
Kod języka BCP-47 to
przekazywane do modułu obsługi uzupełniania, co wskazuje język tekstu. Jeśli nie
.und
Domyślnie ML Kit zwraca wartość inną niż und
tylko wtedy, gdy identyfikuje
z wartością ufności równą 0,5. Możesz zmienić ten próg
przekazując obiekt LanguageIdentificationOptions
do
languageIdentification(options:)
:
Swift
let options = LanguageIdentificationOptions(confidenceThreshold: 0.4) let languageId = NaturalLanguage.languageIdentification(options: options)
Objective-C
MLKLanguageIdentificationOptions *options = [[MLKLanguageIdentificationOptions alloc] initWithConfidenceThreshold:0.4]; MLKLanguageIdentification *languageId = [MLKLanguageIdentification languageIdentificationWithOptions:options];
Znajdź możliwe języki ciągu
Aby uzyskać wartości ufności najbardziej prawdopodobnych języków ciągu, pobierz metodę
wystąpienie LanguageIdentification
, a następnie przekazać ciąg znaków do funkcji
Metoda identifyPossibleLanguages(for:)
.
Na przykład:
Swift
let languageId = NaturalLanguage.languageIdentification() languageId.identifyPossibleLanguages(for: text) { (identifiedLanguages, error) in if let error = error { print("Failed with error: \(error)") return } guard let identifiedLanguages = identifiedLanguages, !identifiedLanguages.isEmpty, identifiedLanguages[0].languageCode != "und" else { print("No language was identified") return } print("Identified Languages:\n" + identifiedLanguages.map { String(format: "(%@, %.2f)", $0.languageCode, $0.confidence) }.joined(separator: "\n")) }
Objective-C
MLKLanguageIdentification *languageId = [MLKLanguageIdentification languageIdentification]; [languageId identifyPossibleLanguagesForText:text completion:^(NSArray* _Nonnull identifiedLanguages, NSError * _Nullable error) { if (error != nil) { NSLog(@"Failed with error: %@", error.localizedDescription); return; } if (identifiedLanguages.count == 1 && [identifiedLanguages[0].languageCode isEqualToString:@"und"] ) { NSLog(@"No language was identified"); return; } NSMutableString *outputText = [NSMutableString stringWithFormat:@"Identified Languages:"]; for (MLKIdentifiedLanguage *language in identifiedLanguages) { [outputText appendFormat:@"\n(%@, %.2f)", language.languageCode, language.confidence]; } NSLog(outputText); }];
Jeśli wywołanie się powiedzie, lista obiektów IdentifiedLanguage
zostanie przekazana do funkcji
z funkcją obsługi kontynuacji. Z każdego obiektu możesz pobrać kod BCP-47 języka
i pewność, że tekst jest w tym języku. Pamiętaj, że
te wartości wskazują pewność, że cały ciąg jest w danym
język; ML Kit nie identyfikuje wielu języków w 1 ciągu znaków.
Domyślnie ML Kit zwraca tylko te języki, w przypadku których poziom ufności wynosi co najmniej
0,01. Możesz zmienić ten próg, przekazując
Obiekt LanguageIdentificationOptions
do languageIdentification(options:)
:
Swift
let options = LanguageIdentificationOptions(confidenceThreshold: 0.4) let languageId = NaturalLanguage.languageIdentification(options: options)
Objective-C
MLKLanguageIdentificationOptions *options = [[MLKLanguageIdentificationOptions alloc] initWithConfidenceThreshold:0.4]; MLKLanguageIdentification *languageId = [MLKLanguageIdentification languageIdentificationWithOptions:options];
Jeśli żaden język nie spełnia tego progu, na liście znajduje się 1 element o wartości
und