Azure 內容審查器之文本審查

內容審查器

Azure 內容審查器也是一項認知服務。它支援對文本、圖形、影片進行內容審核。可以過濾出某些不健康的內容,關鍵詞。使你的網站內容符合當地的法律法規,提供更好的用戶體驗。

文本內容審核

其中文本內容的審核應用比較廣泛。比如在審核遊戲中的群聊內容,過濾掉不健康關鍵詞;在社交媒體發布的內容過濾關鍵詞等。Azure 內容審查器支援對絕大多數語言的審核,當然也包括中文。它已經內置了中文常用關鍵詞列表,當然也可以自定義關鍵詞列表。下面讓我們看看如何

創建內容審查器

在portal管理平台找到內容審查器,點擊「創建」。
0e9N4I.png
區域選擇離你最近的。
定價層選擇免費F0。

內容審查器的免費策略為:5000事務/月,1次/s 。

0e9tUA.png
創建完資源後,點擊資源左邊菜單:密碼與終結點。複製好密鑰跟終結點資訊後面會用到。

使用.NET調用文本審核API

創建控制台項目

使用VS創建一個控制台項目。我們來簡單演示下如何使用C#程式碼來實現文本審核。
創建完控制台項目後,在nuget管理工具里找到:Microsoft.Azure.CognitiveServices.ContentModerator這個包安裝之。
0e9aCt.png

編寫程式碼進行審核

修改main方法為以下內容:

    static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            var endpoint = "//x.cognitiveservices.azure.com/";
            var subscriptionkey = "x";

            var client = new ContentModeratorClient(new ApiKeyServiceClientCredentials(subscriptionkey));
            client.Endpoint = endpoint;


            var text = @"哈哈,從前有個xx,他喜歡吃山芋。他喜歡罵人xxx的,xxx什麼的。";
            Console.WriteLine(text);
            var screen =
                      client.TextModeration.ScreenText(
                          "text/plain", 
                          new MemoryStream(Encoding.UTF8.GetBytes(text)),
                          "zho", 
                          true, 
                          true,
                          null,
                          true);

            foreach (var term in screen.Terms)
            {
                Console.WriteLine(term.Term);
            }

            Console.ReadLine();
        }

程式碼很簡單。實例化一個ContentModeratorClient之後把罵人的話傳進去調用ScreenText方法就會返回包含的關鍵詞。

注意第三個參數lang要穿 zho ,不然識別不出來。

讓我們看一下識別的結果。可以看到髒話都給識別出來了,哈哈。
0e9YEd.png

自定義關鍵詞列表

Azure已經內置了常用的關鍵詞列表。如果想要加入自定義的關鍵詞可以自己創建關鍵詞列表。在調用ScreenText的時候傳入列表的id就可以了。

//自定義過濾關鍵詞列表
static string CreateList(ContentModeratorClient client)
        {
            Body body = new Body("blacklist", "Term list description");
            TermList list = client.ListManagementTermLists.Create("application/json", body);
            client.ListManagementTerm.AddTerm(list.Id.ToString(), "二愣子", null);

            return list.Id.ToString();
        }
 var screen =
                      client.TextModeration.ScreenText(
                          "text/plain", 
                          new MemoryStream(Encoding.UTF8.GetBytes(text)),
                          "zho", 
                          true, 
                          true,
                          listId,//自定義關鍵詞listId
                          true);

總結

Azure 內容審查器是除了文本審核還包括圖片影片內容的審核。本次簡單介紹了如何使用.Net平台來實現文本內容的審核。由於Azure已經內置了大量常用關鍵詞,也封裝了SDK所以基本上可以做到開箱即用。當然了它還支援REST API方式來調用,這樣就不受語言限制了。接下來還會介紹如何進行圖片、影片的識別,敬請期待。

關注我的公眾號一起玩轉技術

Tags: