LoginSignup
23
13

More than 3 years have passed since last update.

NaturalLanguageフレームワークを使用して日本語のための自然言語処理

Last updated at Posted at 2020-07-29

Appleには、テキストの分析を支援する NaturalLanguage というフレームワークがあります。この記事は、日本語テキスト分析のための自然言語フレームワークがサポートする、いくつかの機能について取り上げます。

import NaturalLanguage
  • テキストの言語を検知
  • 文を単語区分に分割

この例では、入力テキストは以下のとおりです。

データの保存はiOSアプリの持つ主要な機能です。たとえば、ユーザーが指定した色などの環境設定を保存したり、ウェブサイトのトークンをアプリに保存したり、ToDoリストのアプリを作ってタスクを保存したりすることができます。データをシステムに保存する方法はいくつもあります。

言語検知

このコマンドを実行して、文の言語を検知できます。

func detectLanguage(text: String) {
    let recognizer = NLLanguageRecognizer()
    recognizer.processString(text)
    print("Language: \(recognizer.dominantLanguage?.rawValue ?? "unknown")")
}

結果はこのとおりです。

Language: ja

トークンへの分解

このコマンドで文を単語に分解します。

func tokenize(text: String) {
    let tokenizer = NLTokenizer(unit: .word)
    tokenizer.string = text
    let tokens = tokenizer.tokens(for: text.startIndex ..< text.endIndex)
    var textTokens: [String] = []
    for token in tokens {
        let tokenStartI = token.lowerBound
        let tokenEndI = token.upperBound
        let text = text[tokenStartI ..< tokenEndI]
        textTokens.append(String(text))
    }
    print(textTokens)
}

結果はこのとおりです。

["データ", "の", "保存", "は", "iOS", "アプリ", "の", "持つ", "主要", "な", "機能", "です", "たとえば", "ユーザー", "が", "指定", "し", "た", "色", "など", "の", "環境", "設定", "を", "保存", "し", "たり", "ウェブサイト", "の", "トークン", "を", "アプリ", "に", "保存", "し", "たり", "ToDo", "リスト", "の", "アプリ", "を", "作っ", "て", "タスク", "を", "保存", "し", "たり", "する", "こと", "が", "でき", "ます", "データ", "を", "システム", "に", "保存", "する", "方法", "は", "い", "くつ", "も", "あり", "ます"]

NaturalLanguage フレームワーク内には他の機能もあります。試してみましたが、英語でのみ利用可能なものもありました。より多くの機能が利用可能になりましたら、この記事を更新します。


:relaxed: Twitter @MszPro

:sunny: 私の公開されているQiita記事のリストをカテゴリー別にご覧いただけます。

23
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
13