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