IBM Watsonというと2011年に早押しクイズ対決で全米チャンピョンを破ったというイメージが強く、では具体的に開発者としてAPIを使って何ができるのかというと、かなり量があってイマイチ理解するのに時間がかかるんじゃないかと思いました。何ができるのか網羅的にカタログのようにまとめましたので、Watsonが何なのかピンと来ていない方や、逆に具体的に機械学習や自然言語処理の要件に悩んでいて手っ取り早く全体像を把握したい方は、参考になるかもしれません。文書で伝わらない部分が多いと思うので、DEMOへのリンクを添えています。
現在IBMはBluemixと呼ばれるAWSのようなクラウドサービスの上で、Watson Developer Cloudという名前で、機械学習や自然言語解析、画像解析といった技術を用いて、データ解析や音声アシスタント、チャットボットという活用をねらった、下記のサービス群を提供しています。
- Language
- AlchemyLanguage
- Concept Insights
- Conversation
- Dialog
- Document Conversion
- Language Translation
- Natural Language Classifier
- Personality Insights
- Relationship Extraction
- Retrieve and Rank
- Tone Analyzer
- Speech
- Speech to Text
- Text to Speech
- Vision
- Visual Recognition
- Data Insights
- AlchemyData News
- Tradeoff Analytics
それでは一つ一つ紹介します。
Language
AlchemyLanguage
自然言語処理によるテキスト解析を行う。下記のような解析を行うAPIが存在する。
Entities
文章の中から人、企業、組織、都市、地理情報などを取り出す。また、オプショナルでそれぞれのsentiment(ポジティブかネガティブかという感情)を検出する。
Keywords
文章の中で重要なキーワードを抽出し、関連性によってランク付けを行う。また、オプショナルでそれぞれのsentiment(ポジティブかネガティブかという感情)を検出する。
Concepts
文章の中で必ずしも直接言及されているわけではない「コンセプト」を特定する。例えばBMWやAudi,Porscheに関する記事の場合、「自動車産業」というコンセプトを返す。
Taxonomy
文章を5段階の階層からなるカテゴリーに分類する。
Document Emotion
文章やWebページ全体のemotion(怒っている・悲しんでいるなどの感情)を解析する
Document Sentiment
文章やWebページ全体のsentiment(ポジティブかネガティブかという感情)を特定する
Targeted Sentiment
文章やWebページからユーザーが指定した句のsentiment(ポジティブかネガティブかという感情)を解析する
Typed Relations
検出されたエンティティの間にある関係性タイプを特定する。
Relations
文章を主語、動詞、目的語などに構文解析し、keywordsやentities、sentiment、verb normalizationなどの意味情報を付加して返す。
Title
WebサイトかHTML文書から、そのページのタイトルを取り出す。
Authors
ニュース記事やブログポストから著者情報を取り出す。
Publication Date
WebサイトかHTML文書から、公開日を取り出す。
Language
文章やWebページから言語を特定する
Text Extraction
Webページからナビゲーションリンクや広告、その他の望ましくないコンテンツを取りの好き、重要な情報を取り出す
Feeds
Webページの中にあるRSSとAtomフィードを見つけ、リンクを返す。
Concept Insights
(AlchemyLanguageに吸収されるのでJuly 12, 2016に削除される)
ウィキペディアをベースとした既知のコンセプトのグラフを用いて、入力値の中にあるコンセプトを浮かび上がらせる。
Conversation
機械学習、自然言語理解、Dialogツールを組み合わせたバーチャルエージェントやボットを作ることができる。自然言語での会話のフローと作るための使いやすいGUI環境を提供している。
Dialog
バーチャルエージェントとユーザーの会話を管理する包括的なプラットフォーム。ユーザーとアプリケーションの間の分岐した会話を自動化する。ユーザーのプロファイル情報を記録保存することができるので、ユーザーのユニークなシチュエーションをもとにした処理を通してユーザーをガイドしたり、彼らの情報をバックエンドシステムにわたすことで、彼らが起こすアクションを助けたり、彼らの要求に応じたヘルプを提供することができる。
Document Conversion
HTML、PDF、Microsoft Wordドキュメントを、HTMLやプレーンテキスト、Answer unitに変換する。Answer unitとはRetrieve and Rankサービスに学習させるのに必要なSolr JSONファイルを生成するユーティリティを通して走らせることができるものである。
Language Translation
会話、ニュース、特許という分野の中から選択したものに特化した翻訳を行う。現状アラビア語、中国語、英語、フランス語、韓国語、ポルトガル語、スペイン語に対応しており、一部の言語では特定の分野が利用できない。
Natural Language Classifier
ディープラーニングを用いて、短い文章や句を、事前に定義おいた分類のうち、どの分類が最も適切か推測する。この分類は、人や場所に対する要求を指し示したり、質問に回答するといった、アプリケーションの中で対応するアクションを実行することに用いることができる。学習させることで未知のテキストを取り扱うことができる。レスポンスには上位の分類名と信頼度がふくまれている。
Personality Insights
人々の個性や性格、欲求、個人最適化を行うための値などの、より深い理解を読み解く。人や物の本質を実用性がある形で発見する手助けをしたり、エンドユーザーに対し非常に個人最適化されたやり取りを行うために、個人属性のスペクトラムを抽出分析する。このサービスでは「Big 5」、「Values」、「Needs」の3つの側面に分けられた個人の性格を出力する。これを利用するには最低でも3500文字以上のテキストが必要。
Relationship Extraction
(AlchemyLanguageに吸収されるのでJuly 27th 2016に削除される)
省略
Retrieve and Rank
検索と、データの中のシグナルを検出するための機械学習アルゴリズムを組み合わせて、ユーザーが検索したい内容に最も関連性が近い情報を見つける。Apache Solrをベースとしている。
Tone Analyzer
テキストの中の感情、社交性、言語スタイルを分析、検出します。
Speech
Speech to Text
音声をテキストに変換します。アラビア語、英語、スペイン語、フランス語、ブラジル語、ポルトガル語、日本語、マンダリン、マンダリン(標準中国語)に対応しています。
Text to Speech
テキストを音声に変換
テキストを理解し、適切なリズムとイントネーションで音声を生成します。を7言語を含む13の声色に対応。
Vision
Visual Recognition
ディープラーニンを用いて、場面や物体、顔、文字やその他の認識出来る対象を検知することができる。画像を学習させることで、具体的に望む結果に最適化させたカスタム分類器を作ることもできる。
Data Insights
AlchemyData News
自然言語処理によって高い精度でニュースやブログ記事を検索でき、トレンド分析も行える。25〜30万の英語のニュースやブログ記事を過去60日にわたって過去のものを検索できる
Tradeoff Analytics
決定分析を行い、ユーザーにとって過剰な選択肢と取り除いたり、複数の矛盾するゴールを含んだような複雑な決定を下すことができる。