iOS開發 - Natural Language Processing(NLP)其二

使用NLLanguageRecognizer識別文本中的語言

參考自蘋果官方文檔

使用語言識別器檢測一段文本中的語言。

import NaturalLanguage

// 創建檢測器
    let recognizer = NLLanguageRecognizer()
    recognizer.processString("This is a test, mein Freund. ")
    
    //
    if let language = recognizer.dominantLanguage {
        print(language.rawValue)  // en
    } else {
        print("Language not recognized")
    }
    
    // Generate up to two language hypotheses. 生成最多兩種語言假設
    let hypotheses = recognizer.languageHypotheses(withMaximum: 2)
    print(hypotheses)   // [__C.NLLanguage(_rawValue: de): 0.43922990560531616, __C.NLLanguage(_rawValue: en): 0.5024932026863098]
    
    // Specify constraints for language identification. 為語言識別指定約束。
    recognizer.languageConstraints = [.french, .english, .german,
                                      .italian, .spanish, .portuguese]
    // 限制語言的概率
    recognizer.languageHints = [.french: 0.5,
                                .english: 0.9,
                                .german: 0.8,
                                .italian: 0.6,
                                .spanish: 0.3,
                                .portuguese: 0.2]

    let constrainedHypotheses = recognizer.languageHypotheses(withMaximum: 2)
    print(constrainedHypotheses)
    
    // Reset the recognizer to its initial state.  重置(如果需要繼續識別的話)
    recognizer.reset()
    // Process additional strings for language identification.
    recognizer.processString("Este es un idioma diferente.")

輸入內容為

en
[__C.NLLanguage(_rawValue: en): 0.5024932026863098, __C.NLLanguage(_rawValue: de): 0.43922990560531616]
[__C.NLLanguage(_rawValue: de): 0.43683740496635437, __C.NLLanguage(_rawValue: en): 0.5622255802154541]
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容