Natural Language Understanding 入門 - 組み込みAI セルフサービス型デジタル共創体験(DSCE)

[組み込みAI セルフサービス型デジタル共創体験](https://qiita.com/trtrbohz/items/356a5a4b66624b2c94a2)に記載しております。
現在STT(speech-to-text)、TTS(test-to-speech)、NLU(natural-language-understanding)等のAIがサーバーに接続しなくても組み込んで利用することが可能となりました。

その情報がこちらの[サイト](https://dsce.ibm.com/)、DSCE([Digital Self-Serve Co-Create Experience](https://dsce.ibm.com/);"組み込みAI セルフサービス型デジタル共創体験")にて紹介されております。

# 今回はNatural Language Understanding入門
今回の取り組みは、[ココ](https://dsce.ibm.com/)から「Natural Language Understanding API」および使用例をご紹介します。

# 1. 前提 
* IBM Cloud アカウントを持っていること
* ターミナルを使えること
  macについては、[コチラ](https://lanchesters.site/mac-%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%97%E3%83%AD%E3%83%B3%E3%83%97%E3%83%88/)を参照
  windowsについては、[コチラ](https://4thsight.xyz/9087)を参照
# 2. 手順
# 2.1. IBM Cloud カタログの Natural Language Understandingにアクセス
   まずは[Natural Language Understanding](https://cloud.ibm.com/catalog/services/natural-language-understanding)にアクセスし、画面右上にあるログイン、もしくは無料の IBM Cloud アカウントを登録(ログイン操作、アカウント作成操作は省略します。)を実施します。
![スクリーンショット 2023-07-08 22.46.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/682574/66da9fb8-ad98-7906-4427-fd2b64b6eb58.png)
# 2.2.Natural Language Understanding サービスを「作成」します。
①ロケーション選択
②<font color="Red">無料</font>のライトプランであることを確認
③「以下のご利用条件。。。」を確認しチェック
④[作成]をクリック
![スクリーンショット 2023-07-08 22.49.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/682574/ff7c3e48-7f4b-cfdb-7209-f64f6af982fe.png)
# 2.3.認証用の資格情報を確認、そして変数設定
先の手順で作成した[Natural Language Understanding]リソースを選択し、管理ページに移動します。
![スクリーンショット 2023-07-08 23.46.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/682574/6695694a-f710-3f9b-06de-b963466c91fe.png)

この「管理」ページには、[API Key]と[URL]が掲載されていますので、ターミナルで以下のように変数として登録してください。

![スクリーンショット 2023-07-08 22.52.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/682574/f345ca4d-aa78-be8a-2705-8f4c23afc503.png)

* API鍵(API Key)
①以下のようにコピーアイコンをクリック
![スクリーンショット 2023-07-08 22.54.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/682574/f14e88da-9ddb-302b-c55e-f3838aadbd82.png)
②ターミナルに変数として登録
![スクリーンショット 2023-07-08 23.56.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/682574/69760b77-93c5-707e-db1f-7fe06f220afa.png)

* URL
①以下のようにコピーアイコンをクリック
![スクリーンショット 2023-07-08 22.56.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/682574/3e1bdd24-3ea2-e2fc-a022-f672a2af0dac.png)
②ターミナルに変数として登録
![スクリーンショット 2023-07-09 0.01.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/682574/c8ebe0f7-77c5-35bf-38a7-4352e501fbb6.png)
# 2.4. Curl コマンド確認
curlとは「Client for URL」の略で、LinuxやUnixでよく利用されるコマンドの一つ。ネットワーク上のリソースにURLやオプションを使うことで特定の操作（結果表示、ファイルアップロード、ファイルダウンロード）をすることができます。
そのため、まずは以下のコマンドをターミナルに入力しcurl コマンドがインストールされていることを確認します。ここで、SSL サポート付きの curl バージョンが出力に表示されたら、チュートリアルを実行するための準備は完了です。

    curl -V 


# 3. Webページ分析
ターミナルで以下のコマンドを実行し Web ページを分析します。例として、ゲルべ社とIBMのヘルスケアに関するパートナーシップに関するアナウンスにたいして分析してみます。実行してみると、評判、概念、カテゴリー、エンティティー、およびキーワードを取得できることが分かると思います。

    $ curl -X POST -u "apikey:$apikey" --header "Content-Type: application/json" --data '{
      "url": "http://newsroom.ibm.com/Guerbet-and-IBM-Watson-Health-Announce-Strategic-Partnership-for-Artificial-Intelligence-in-Medical-Imaging-Liver",
      "features": {
        "sentiment": {},
        "categories": {},
        "concepts": {},
        "entities": {},
        "keywords": {}
      }
    }' "$url/v1/analyze?version=2019-07-12"

# 4. ターゲットの句およびキーワードを分析
Natural Language Understanding では、周囲のテキストを考慮してターゲットの句について分析し、対象を絞った評判と感情の結果を得ることができます。 次の例では「I love apples! I do not like oranges.」という文章を用いて sentiment の targets オプションは、「apples」、「oranges」、および「broccoli」というターゲットを検索するようにサービスに指示しています。 「apples」と「oranges」がテキスト内にあるので、これらのターゲットの評判スコアが返されます。

また、テキスト中に検出されたエンティティーとキーワードについての評判と感情の結果も得ることができます。 この例では、keywords の emotion オプションで、検出された各キーワードを分析して感情の結果を得るようにサービスに指示しています。

    $ curl -X POST -u "apikey:$apikey" --header "Content-Type: application/json" --data '{
     "text": "I love apples! I do not like oranges.",
     "features": {
       "sentiment": {
          "targets": [
            "apples",
            "oranges",
            "broccoli"
          ]
        },
        "keywords": {
          "emotion": true
        }
      }
    }' "$url/v1/analyze?version=2019-07-12"

以上、Natural Language Understandig 入門でした。

# 参照
[Natural Language Understanding入門](https://cloud.ibm.com/docs/natural-language-understanding?topic=natural-language-understanding-getting-started)