PythonでWatson APIのNLCを使う
目的
Watson API の NLC(Natural Language Classifier)を使いたい!
できれば、Python でやりたい!
参考リンク
nl-classifier - API Reference | IBM Watson Developer Cloud
動作環境
Python 2.7.13 :: Anaconda 4.3.1 (64-bit)
やりかた
1.Python で Watson API を使えるようにする
コマンドプロンプトから以下を実行
> pip install watson-developer-cloud
2.自然言語の分類器の操作
1)分類器の作成
以下の形式で質問文と分類結果をCSVファイルで作成。UTF-8コードで保存。
質問1,カテゴリA
質問2,カテゴリA
質問3,カテゴリA
質問5,カテゴリB
質問6,カテゴリB
質問7,カテゴリB
質問8,カテゴリC
質問9,カテゴリC
A.ユーザ名とパスワードを確認
⇒ Bluemix にログイン
⇒ Natuural Language Classifier サービスにログイン
⇒ サービス資格情報
⇒ 資格情報の表示 で "username" と "password" を確認
B.Python で以下を実行
# -*- coding: utf-8 -*
import json
from watson_developer_cloud import NaturalLanguageClassifierV1
natural_language_classifier = NaturalLanguageClassifierV1(username='ユーザ名', password='パスワード')
with open('CSVファイルのパス', 'rb') as training_data:
classifier = natural_language_classifier.create(
training_data=training_data,
name='mikasute',
language='ja'
)
print(json.dumps(classifier, indent=2))
2)分類器のリスト
Python で以下を実行
# -*- coding: utf-8 -*
import json
from watson_developer_cloud import NaturalLanguageClassifierV1 as NaturalLanguageClassifier
natural_language_classifier = NaturalLanguageClassifier(username='ユーザ名', password='パスワード')
classifiers = natural_language_classifier.list()
print(json.dumps(classifiers, indent=2))
3)分類器の情報取得
A.前項の分類器のリスト表示で分類器IDを参照
B.Python で以下を実行
# -*- coding: utf-8 -*
import json
from watson_developer_cloud import NaturalLanguageClassifierV1 as NaturalLanguageClassifier
natural_language_classifier = NaturalLanguageClassifier(username='ユーザ名', password='パスワード')
status = natural_language_classifier.status('分類器ID')
print (json.dumps(status, indent=2))
4)分類
Python で以下を実行
# -*- coding: utf-8 -*
import json
from watson_developer_cloud import NaturalLanguageClassifierV1
natural_language_classifier = NaturalLanguageClassifierV1(username='ユーザ名', password='パスワード')
classes = natural_language_classifier.classify('分類器ID', '質問文')
print classes['text'], '->', classes['top_class']
for x in classes['classes']:
print x['class_name'], round(x['confidence'],2)
5)分類器の削除
Python で以下を実行
# -*- coding: utf-8 -*
import json
from watson_developer_cloud import NaturalLanguageClassifierV1
natural_language_classifier = NaturalLanguageClassifierV1(username='ユーザ名', password='パスワード')
classes = natural_language_classifier.remove('分類器ID')
print(json.dumps(classes, indent=2))
Good Luck !!!