歡迎關(guān)注微信公眾號watson_python,及時獲取最新的更新。
在Watson的自然語言處理的API目前有效的有8個,這些API牽涉到自然語言處理的各個方面。
Conversation
Natural Language Classifier
Natural Language understanding
Language Translator
Personality Insights
Document Conversion
Retrieve and Rank
Tone Analyzer
Conversation
在這里我們首先介紹一下Conversation API。Conversation API相對于上一章介紹的兩個API來說,不僅需要在Bluemix上創(chuàng)建service,還需要對我們的Conversation進行設(shè)置,使用相對比較復(fù)雜。Conversation API可以用來創(chuàng)建我們自己的聊天機器人,我們可以將我們創(chuàng)建的聊天機器人部署到web上,內(nèi)嵌到我們的APP中,讓我們的APP增加自然語言的聊天功能。下面我們就通過一個Demo來演示一下,如何創(chuàng)建一個簡單的聊天機器人。
首先在Bluemix創(chuàng)建Watson Conversation的service。在這里的service name我們可以默認。

點擊Create按鈕之后,完成Conversation service的創(chuàng)建。

我們點擊Launch Tool對Conversation進行配置。

然后,我們點擊Create來創(chuàng)建我們的workspace。

workspace創(chuàng)建完成后,我們需要創(chuàng)建intents。Intent是幫助我們的bot來理解來自客戶的輸入。

點擊Create new來創(chuàng)建我們的第一個intent“Hello”。

然后,我們再創(chuàng)建一個intent“byebye”:

在這里我們就創(chuàng)建2個intent來演示我們的Demo,下一步創(chuàng)建Dialog:

然后,我們在這個Dialog和anything_else之間,將我們創(chuàng)建的2個intent加入到Dialog中:


到這里,我們自己定義的2個intent就加入到Dialog中了,現(xiàn)在就要進行一下測試。點擊右上角的圖標,測試一下我們第一的Dialog。

到這里,Conversation Service的設(shè)置工作就完成了,接下來就要在Python中完成對Conversation的調(diào)用,來實現(xiàn)一個簡單的聊天機器人的Demo。首先新建一個項目,并創(chuàng)建如下的目錄結(jié)構(gòu)和文件:

watsonAPI.py中完成對conversation的調(diào)用來完成對話功能,的代碼如下:

在watsonAPI.py中創(chuàng)建了,WatsonConversation類之后,讓后我們就要在run.py中實例化WatsonConversation然后,實現(xiàn)聊天機器人。代碼如下:

代碼執(zhí)行效果如下:

到這里,我們對conversation的Demo就完成了。
Natural Language Classifier
Natural
Language Classifier是一個自然語言分詞器,能夠讓我們的app理解問題的目的,例如,當問到“今天天氣怎么樣?”時,能夠明白這是詢問溫度的。要使用這個API,同樣我們需要現(xiàn)在Bluemix建立一個Natural language Classifier的service,獲得相關(guān)的認證信息用戶名和密碼。在使用這個API時,首先要建立與Bluemix上service的連接,連接建立后,需要先建立一個分詞器,并訓(xùn)練這個分詞器,以便我們的分詞器能夠正確的完成分詞結(jié)果。訓(xùn)練可以通過提供一個csv文件進行,文件結(jié)構(gòu)如下:

訓(xùn)練完成后,我們就可以進行分詞處理了。示例代碼如下:

執(zhí)行效果如下:


Natural Language understanding
Natural
Language understanding是對自然語言進行語言情景分析的工具,利用該API可以將一段文本自動分類為,實體,關(guān)鍵字,分類,觀點,情緒,關(guān)系等幾個方面。這個API的使用比較簡單,分析的時候只需要把我們要分析的文本和需要分析的方便指定就可以了。情參考下面的代碼:

Language Translator
Language Translator是一個多國語言翻譯的API,我們可以通過get_identifiable_languages()來查看,改API能夠自動識別語言的語種,并將其翻譯成我們的目標語言。這個API的使用同樣在Bluemix上新建一個Service,使用方法如下代碼:

Personality Insights
Personality Insights是根據(jù)一段文本對一個人的人格進行深入分析的API,在分析結(jié)果中可以反饋被分析人的5大人格特質(zhì),需求和價值觀,將這個API可以輔助我們理解客戶,讓我們提供符合客戶需求的服務(wù)。

Document Conversion
Document Conversion是watson的輔助API,用來將各種類型的文檔,轉(zhuǎn)換成watson可以識別的格式。

Retrieve and Rank
Retrieve
and Rank是對一系列文檔進行檢索和排序的API,這個API使用Document Conversion來格式化輸入的文檔。使用之前我們首先要建立一個cluster,等待幾分鐘讓Bluemix來初始化我們建立的cluster,然后新建一個Collections,來存儲我們的文檔資料。然后將我們的文檔上傳Collections,目前能夠接受html,word和PDF文檔。然后,可以上傳我們的questions來train我們自己的Retrieve
and Rank。我們可以利用這個API來定義我們自己的檢索系統(tǒng)。

Tone Analyzer
Tone
Analyzer可以用來分析書面語,通過這個API可以分析出情感,社交趨勢和書寫風(fēng)格。通過分析交流的情感,社交趨勢我們可以讓我們的應(yīng)用可以更加禮貌的回復(fù)客戶的問題。這個API使用時,我們只需要在Bluemix上建立一個service即可,利用SDK進行調(diào)用。
