1. 程式人生 > >Azure 內容審查器之文字審查

Azure 內容審查器之文字審查

## 內容審查器 Azure 內容審查器也是一項認知服務。它支援對文字、圖形、視訊進行內容稽核。可以過濾出某些不健康的內容,關鍵詞。使你的網站內容符合當地的法律法規,提供更好的使用者體驗。 ## 文字內容稽核 其中文字內容的稽核應用比較廣泛。比如在稽核遊戲中的群聊內容,過濾掉不健康關鍵詞;在社交媒體釋出的內容過濾關鍵詞等。Azure 內容審查器支援對絕大多數語言的稽核,當然也包括中文。它已經內建了中文常用關鍵詞列表,當然也可以自定義關鍵詞列表。下面讓我們看看如何 ## 建立內容審查器 在portal管理平臺找到內容審查器,點選“建立”。 ![0e9N4I.png](https://s1.ax1x.com/2020/09/29/0e9N4I.png) 區域選擇離你最近的。 定價層選擇免費F0。 > 內容審查器的免費策略為:5000事務/月,1次/s 。 ![0e9tUA.png](https://s1.ax1x.com/2020/09/29/0e9tUA.png) 建立完資源後,點選資源左邊選單:密碼與終結點。複製好金鑰跟終結點資訊後面會用到。 ## 使用.NET呼叫文字稽核API ### 建立控制檯專案 使用VS建立一個控制檯專案。我們來簡單演示下如何使用C#程式碼來實現文字稽核。 建立完控制檯專案後,在nuget管理工具裡找到:Microsoft.Azure.CognitiveServices.ContentModerator這個包安裝之。 ![0e9aCt.png](https://s1.ax1x.com/2020/09/29/0e9aCt.png) ### 編寫程式碼進行稽核 修改main方法為以下內容: ``` static void Main(string[] args) { Console.WriteLine("Hello World!"); var endpoint = "https://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](https://s1.ax1x.com/2020/09/29/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方式來呼叫,這樣就不受語言限制了。接下來還會介紹如何進行圖片、視訊的識別,敬請期待。 ## 關注我的公眾號一起玩轉技術 ![](https://s1.ax1x.com/2020/06/29/NfQjds.jpg)