تحديد لغة النص باستخدام حزمة "تعلّم الآلة" على أجهزة iOS
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يمكنك استخدام حزمة تعلّم الآلة لتحديد لغة سلسلة من النصوص. يمكنك
الحصول على لغة السلسلة الأكثر احتمالاً بالإضافة إلى درجات الثقة لجميع
اللغات المحتملة للسلسلة.
تتعرّف مجموعة أدوات تعلّم الآلة على النص في أكثر من 100 لغة مختلفة في نصوصها الأصلية.
بالإضافة إلى ذلك، يمكن التعرف على النص بالأحرف اللاتينية بالنسبة إلى العربية والبلغارية والصينية
اليونانية والهندية واليابانية والروسية. يمكنك الاطّلاع على
قائمة كاملة باللغات والنصوص البرمجية المتوافقة.
جرّبه الآن
يمكنك تجربة نموذج التطبيق من أجل
يمكنك الاطّلاع على مثال حول استخدام واجهة برمجة التطبيقات هذه.
قبل البدء
تضمين مجموعات ML Kit التالية في Podfile:
pod 'GoogleMLKit/LanguageID', '8.0.0'
بعد تثبيت لوحات مشروعك أو تحديثها، افتح مشروع Xcode باستخدام
.xcworkspace تتوفّر حزمة تعلّم الآلة في الإصدار 12.4 من Xcode أو الإصدارات الأحدث.
تحديد لغة السلسلة
لتحديد لغة سلسلة ما، احصل على مثيل
LanguageIdentification، ثم تمرير السلسلة إلى
طريقة identifyLanguage(for:).
على سبيل المثال:
Swift
letlanguageId=NaturalLanguage.languageIdentification()languageId.identifyLanguage(for:text){(languageCode,error)inifleterror=error{print("Failed with error: \(error)")return}ifletlanguageCode=languageCode,languageCode!="und"{print("Identified Language: \(languageCode)")}else{print("No language was identified")}}
Objective-C
MLKLanguageIdentification*languageId=[MLKLanguageIdentificationlanguageIdentification];[languageIdidentifyLanguageForText:textcompletion:^(NSString*_NullablelanguageCode,NSError*_Nullableerror){if(error!=nil){NSLog(@"Failed with error: %@",error.localizedDescription);return;}if(![languageCodeisEqualToString:@"und"]){NSLog(@"Identified Language: %@",languageCode);}else{NSLog(@"No language was identified");}}];
إذا نجحت المكالمة، فسيتم
رمز اللغة BCP-47 هو
تمريره إلى معالج الإكمال، مع الإشارة إلى لغة النص. إذا كانت الإجابة "لا"
يمكن اكتشاف لغة جديدة بثقة، تمّ تمرير الرمز und (غير محدَّد).
تعرض ML Kit تلقائيًا قيمة غير تابعة إلى und إلا عندما تتعرّف على
قيمة ثقة لا تقل عن 0.5. يمكنك تغيير هذا الحدّ الأدنى.
بتمرير كائن LanguageIdentificationOptions إلى
languageIdentification(options:):
للحصول على قيم الثقة للغات الأكثر احتمالاً للسلسلة، احصل على
مثيل LanguageIdentification ثم تمرير السلسلة إلى
طريقة identifyPossibleLanguages(for:).
على سبيل المثال:
Swift
letlanguageId=NaturalLanguage.languageIdentification()languageId.identifyPossibleLanguages(for:text){(identifiedLanguages,error)inifleterror=error{print("Failed with error: \(error)")return}guardletidentifiedLanguages=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=[MLKLanguageIdentificationlanguageIdentification];[languageIdidentifyPossibleLanguagesForText:textcompletion:^(NSArray*_NonnullidentifiedLanguages,NSError*_Nullableerror){if(error!=nil){NSLog(@"Failed with error: %@",error.localizedDescription);return;}if(identifiedLanguages.count==1&&[identifiedLanguages[0].languageCodeisEqualToString:@"und"]){NSLog(@"No language was identified");return;}NSMutableString*outputText=[NSMutableStringstringWithFormat:@"Identified Languages:"];for(MLKIdentifiedLanguage*languageinidentifiedLanguages){[outputTextappendFormat:@"\n(%@, %.2f)",language.languageCode,language.confidence];}NSLog(outputText);}];
إذا نجح الاتصال، يتم تمرير قائمة تضم IdentifiedLanguage من العناصر إلى
معالج المتابعة. يمكنك من كل عنصر الحصول على رمز BCP-47 الخاص باللغة.
والثقة في أن السلسلة بتلك اللغة. لاحظ أن
تشير هذه القيم إلى الثقة في أن السلسلة بأكملها
واللغة لا تتعرّف مجموعة أدوات تعلُّم الآلة على لغات متعددة في سلسلة واحدة.
تعرض ML Kit تلقائيًا اللغات التي تتضمن قيم ثقة لا تقل عن
0.01. يمكنك تغيير هذا الحد من خلال اجتياز
كائن LanguageIdentificationOptions إلى languageIdentification(options:):
تاريخ التعديل الأخير: 2025-08-29 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-08-29 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\u003cp\u003eML Kit can identify the language of a string of text and provide confidence scores for all possible languages, supporting over 100 languages.\u003c/p\u003e\n"],["\u003cp\u003eYou can get the most likely language of a string using the \u003ccode\u003eidentifyLanguage(for:)\u003c/code\u003e method or get confidence values for possible languages using the \u003ccode\u003eidentifyPossibleLanguages(for:)\u003c/code\u003e method.\u003c/p\u003e\n"],["\u003cp\u003eAdjust the confidence threshold for language identification by passing a \u003ccode\u003eLanguageIdentificationOptions\u003c/code\u003e object to \u003ccode\u003elanguageIdentification(options:)\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eTo use ML Kit for language identification, include the \u003ccode\u003eGoogleMLKit/LanguageID\u003c/code\u003e pod in your Podfile and ensure your Xcode version is 12.4 or greater.\u003c/p\u003e\n"]]],["ML Kit can identify the language of text strings, supporting over 100 languages and romanized text for select languages. To use it, add the `GoogleMLKit/LanguageID` pod to your project. The `identifyLanguage(for:)` method returns the most likely language code, or \"und\" if undetermined. The method `identifyPossibleLanguages(for:)` provides confidence scores for multiple potential languages. Both methods allow setting a confidence threshold, with the default at 0.5 and 0.01 respectively.\n"],null,["You can use ML Kit to identify the language of a string of text. You can\nget the string's most likely language as well as confidence scores for all of the\nstring's possible languages.\n\nML Kit recognizes text in more than 100 different languages in their native scripts.\nIn addition, romanized text can be recognized for Arabic, Bulgarian, Chinese,\nGreek, Hindi, Japanese, and Russian. See the\n[complete list](/ml-kit/language/identification/langid-support) of supported languages and scripts.\n\n\u003cbr /\u003e\n\n| **Note:** ML Kit iOS APIs only run on 64-bit devices. If you build your app with 32-bit support, check the device's architecture before using this API.\n\nTry it out\n\n- Play around with [the sample app](https://github.com/googlesamples/mlkit/tree/master/ios/quickstarts/languageid) to see an example usage of this API.\n\nBefore you begin\n\n1. Include the following ML Kit pods in your Podfile: \n\n ```\n pod 'GoogleMLKit/LanguageID', '8.0.0'\n ```\n2. After you install or update your project's Pods, open your Xcode project using its `.xcworkspace`. ML Kit is supported in Xcode version 12.4 or greater.\n\nIdentify the language of a string\n\nTo identify the language of a string, get an instance of\n`LanguageIdentification`, and then pass the string to the\n`identifyLanguage(for:)` method.\n\nFor example: \n\nSwift \n\n```swift\nlet languageId = NaturalLanguage.languageIdentification()\n\nlanguageId.identifyLanguage(for: text) { (languageCode, error) in\n if let error = error {\n print(\"Failed with error: \\(error)\")\n return\n }\n if let languageCode = languageCode, languageCode != \"und\" {\n print(\"Identified Language: \\(languageCode)\")\n } else {\n print(\"No language was identified\")\n }\n}\n```\n\nObjective-C \n\n```objective-c\nMLKLanguageIdentification *languageId = [MLKLanguageIdentification languageIdentification];\n\n[languageId identifyLanguageForText:text\n completion:^(NSString * _Nullable languageCode,\n NSError * _Nullable error) {\n if (error != nil) {\n NSLog(@\"Failed with error: %@\", error.localizedDescription);\n return;\n }\n if (![languageCode isEqualToString:@\"und\"] ) {\n NSLog(@\"Identified Language: %@\", languageCode);\n } else {\n NSLog(@\"No language was identified\");\n }\n }];\n```\n\nIf the call succeeds, a\n[BCP-47 language code](//en.wikipedia.org/wiki/IETF_language_tag) is\npassed to the completion handler, indicating the language of the text. If no\nlanguage could be confidently detected, the code `und` (undetermined) is passed.\n\nBy default, ML Kit returns a non-`und` value only when it identifies the\nlanguage with a confidence value of at least 0.5. You can change this threshold\nby passing a `LanguageIdentificationOptions` object to\n`languageIdentification(options:)`: \n\nSwift \n\n```swift\nlet options = LanguageIdentificationOptions(confidenceThreshold: 0.4)\nlet languageId = NaturalLanguage.languageIdentification(options: options)\n```\n\nObjective-C \n\n```objective-c\nMLKLanguageIdentificationOptions *options =\n [[MLKLanguageIdentificationOptions alloc] initWithConfidenceThreshold:0.4];\nMLKLanguageIdentification *languageId =\n [MLKLanguageIdentification languageIdentificationWithOptions:options];\n```\n\nGet the possible languages of a string\n\nTo get the confidence values of a string's most likely languages, get an\ninstance of `LanguageIdentification` and then pass the string to the\n`identifyPossibleLanguages(for:)` method.\n\nFor example: \n\nSwift \n\n```swift\nlet languageId = NaturalLanguage.languageIdentification()\n\nlanguageId.identifyPossibleLanguages(for: text) { (identifiedLanguages, error) in\n if let error = error {\n print(\"Failed with error: \\(error)\")\n return\n }\n guard let identifiedLanguages = identifiedLanguages,\n !identifiedLanguages.isEmpty,\n identifiedLanguages[0].languageCode != \"und\"\n else {\n print(\"No language was identified\")\n return\n }\n\n print(\"Identified Languages:\\n\" +\n identifiedLanguages.map {\n String(format: \"(%@, %.2f)\", $0.languageCode, $0.confidence)\n }.joined(separator: \"\\n\"))\n}\n```\n\nObjective-C \n\n```objective-c\nMLKLanguageIdentification *languageId = [MLKLanguageIdentification languageIdentification];\n\n[languageId identifyPossibleLanguagesForText:text\n completion:^(NSArray * _Nonnull identifiedLanguages,\n NSError * _Nullable error) {\n if (error != nil) {\n NSLog(@\"Failed with error: %@\", error.localizedDescription);\n return;\n }\n if (identifiedLanguages.count == 1\n && [identifiedLanguages[0].languageCode isEqualToString:@\"und\"] ) {\n NSLog(@\"No language was identified\");\n return;\n }\n NSMutableString *outputText = [NSMutableString stringWithFormat:@\"Identified Languages:\"];\n for (MLKIdentifiedLanguage *language in identifiedLanguages) {\n [outputText appendFormat:@\"\\n(%@, %.2f)\", language.languageCode, language.confidence];\n }\n NSLog(outputText);\n}];\n```\n\nIf the call succeeds, a list of `IdentifiedLanguage` objects is passed to the\ncontinuation handler. From each object, you can get the language's BCP-47 code\nand the confidence that the string is in that language. Note that\nthese values indicate the confidence that the entire string is in the given\nlanguage; ML Kit doesn't identify multiple languages in a single string.\n\nBy default, ML Kit returns only languages with confidence values of at least\n0.01. You can change this threshold by passing a\n`LanguageIdentificationOptions` object to `languageIdentification(options:)`: \n\nSwift \n\n```swift\nlet options = LanguageIdentificationOptions(confidenceThreshold: 0.4)\nlet languageId = NaturalLanguage.languageIdentification(options: options)\n```\n\nObjective-C \n\n```objective-c\nMLKLanguageIdentificationOptions *options =\n [[MLKLanguageIdentificationOptions alloc] initWithConfidenceThreshold:0.4];\nMLKLanguageIdentification *languageId =\n [MLKLanguageIdentification languageIdentificationWithOptions:options];\n```\n\nIf no language meets this threshold, the list has one item, with the value\n`und`."]]