前回から、近ごろ話題の「機械学習」の成果を、iOSやmacOSのアプリとして容易に利用可能にするCore MLを使っています。前回はその初回として、とりあえずCore MLの学習結果のモデルをプレイグラウンドに読み込み、入力パラメータを与えて推測結果を出力するという基本的なプログラムの作成手順を示しました。
今回もCore MLの続きですが、前回とは異なり、CoreMLのモデルを直接扱うのではなく、いわば間接的にCore MLの成果を利用することになります。
前回のように、Core MLのモデルを読み込んでクラスに変換し、それを直接利用してプログラミングするのは一般的な方法ですが、Core MLの利用方法はそれだけではありません。iOSのフレームワークやクラスの中には、Core MLの機能を利用して成立しているものがいくつかあります。
現状では、画像認識のための「Vision」、以前から存在した機能をCore MLベースにした自然言語処理、ゲームのコンピュータ側のプレイに機械学習の成果を利用できるようにした「GameplayKit」などがあります。そうした機能を利用する際には、特にCoreMLを意識する必要はありません。
今回はこの中から、最も手軽に使える自然言語処理を試してみることにします。これは、Core MLが登場する以前から存在したNSLinguisticTaggerと呼ばれるクラスの中身を、Core MLベースに書き換えたものと考えられます。
このクラスを利用することで、アプリから手軽に自然言語処理機能を実現することが可能となります。現状では、テキストに含まれる名前の抽出や品詞分解といった基本的な機能が提供されています。このクラス名に含まれる「Tagger」とは、「タグを付けるもの」という意味です。品詞の種類などをタグとして、元のテキストに付加していくようなイメージです。
今回は、このNSLinguisticTaggerの基本的な機能を何とおりか試してみたあと、品詞分解機能を簡単なアプリ風のプログラムとしてまとめてみることにします。
この連載の記事
- 第100回 SceneKitの物理現象シミュレーションとアニメーションをARKitに持ち込む
- 第99回 「物理学体」と「物理学場」を設定して物理現象をシミュレーション
- 第98回 SceneKitのノードに動きを加えるプログラム
- 第97回 いろいろな形のノードをシーンの中に配置する
- 第96回 SceneKitの基礎シーンビュー、シーン、ノードを理解する
- 第95回 現実世界の床にボールや自動車のモデルを配置する
- 第94回 ARKitを使って非現実世界との融合に備える
- 第93回 ARKitが使えるiPadを識別するプログラム
- 第92回 Swift Playgrounds 2.1での問題点をまとめて解消する
- 第91回 iPadの内蔵カメラで撮影した写真を認識するプログラム
- この連載の一覧へ