✨
Image Playgroundで使えない「コンセプト」
以前Image Playgroundの簡単な使い方を書きました。
触ってみたい方はこちらを参照してください。
使えない「コンセプト」
アプリからImage Playgroundを呼び出す際、作成に利用するコンセプトを提供できます。
コンセプトでは使えないものがあるので紹介します。
国名
「Japan」「Canada」「India」のような国名は使えない一方で、「Japanese」「Canadian」「Indian」のような国に関連することを指す単語は利用できます。
例えば「Mountain」は生成できても、「Mountain」「Japan」は生成できません。
一方で「Japanese Mountain」や「Japanese」「Mountain」は生成できます

企業名・商品名
企業名は同音異義語で単語として存在するもの以外は生成できません。「Apple Watch」などの商品名も生成できません。
例えば「Apple」「computer」や一般的な言葉として利用される「powerpoint」は生成できます。

powerpoint、apple・computer、apple computerの生成例
使えないコンセプトの回避方法の例
企業名
企業の名前はSwiftの自然言語処理(Natural Language)で回避することができます。
ここではNLTagのorganizationNameを活用すると企業名を見つけることができます。
以下は企業名を置き換える処理の例です。
import NaturalLanguage
func replaceOrganizationNames(with replacement: String = "company", in text: String) -> String {
let tagger = NLTagger(tagSchemes: [.nameType])
tagger.string = text
let textRange = text.startIndex..<text.endIndex
var modifiedText = text
tagger.enumerateTags(in: textRange, unit: .word, scheme: .nameType, options: [.omitWhitespace, .omitPunctuation]) { (tag, range) -> Bool in
if let tag = tag, tag == .organizationName {
let detectedOrganization = String(modifiedText[range])
modifiedText = modifiedText.replacingOccurrences(of: detectedOrganization, with: replacement)
}
return true
}
return modifiedText
}
回避する単語リストを作成
特定の分野・語群でのみアプリからコンセプトを与える場合、ある程度想定できるので配列などでリストを用意した上で置き換え・除去することもできます。この際前述のNLTagをwordに変更することで各単語の比較ができます。
Discussion