python - 为什么 Azure 内容审查器无法检测到自定义术语?
问题描述
我正在尝试使用 Azure 认知服务(更具体地说)检测一大段文本中的自定义标记关键字。azure-cognitiveservices-vision-contentmoderator==1.0.0
代码运行如下:
from azure.cognitiveservices.vision.contentmoderator import ContentModeratorClient
from msrest.authentication import CognitiveServicesCredentials
subscription_key = '<my_key>'
endpoint_url = 'https://westeurope.api.cognitive.microsoft.com/'
client = ContentModeratorClient(endpoint_url, CognitiveServicesCredentials(subscription_key))
之后,我还可以创建一个123
自定义术语列表(名为 )(使用方法client.list_management_term_lists.create
和client.list_management_term.add_term
)
client.list_management_term_lists.create(
content_type="application/json",
body={
"name": "My custom list",
"description": "Monty Python related terms",
}
)
client.list_management_term.add_term(
list_id=123,
term="eggs",
language="eng"
)
我可以验证这是否按预期工作
terms_data = client.list_management_term.get_all_terms(list_id=123, language="eng").data
terms_data.as_dict()
产量
{'language': 'eng', 'terms': [{'term': 'eggs'}, {'term': 'spam'}], 'status': {'code': 3000, 'description': 'OK'}, 'tracking_id': 'some_id'}
但是,如果我尝试检测
import io
TEXT = "Do you like spam and eggs ?"
text_screen = client.text_moderation.screen_text(
text_content_type="text/plain",
text_content=io.StringIO(TEXT),
language="eng",
list_id=123,
classify=True
)
text_screen.as_dict()
没有'Terms'
实体出现,因为我从上面得到的只是:
{'original_text': 'Do you like spam and eggs ?', 'normalized_text': ' you like spam eggs ?', 'classification': {'category1': {'score': 0.028309470042586327}, 'category2': {'score': 0.14004242420196533}, 'category3': {'score': 0.12679287791252136}, 'review_recommended': False}, 'status': {'code': 3000, 'description': 'OK'}, 'language': 'eng'}
我做错了什么,我应该如何正确地做?
另外(不确定是否相关),射击
client.list_management_term_lists.refresh_index_method(list_id=123, language="eng")
给我一个APIErrorException: Operation returned an invalid status code 'Not Found'
解决方案
推荐阅读
- firebase - 如何在函数中包含存储服务帐户密钥
- css - 从动画结束处继续过渡
- c++ - 如何在另一个类中专门化模板类的构造函数?
- xamarin.forms - 致命信号 11 (SIGSEGV),代码 1,tid 2327 中的故障地址 0x20
- javascript - 如何在 json 数组中更改包含 html 标记的文本?(Vue.js)
- python - 使用列和行索引作为变量填充 pandas 数据框
- java - 如何分析以下代码的增长?
- react-native - React-Native SectionList 滚动到Android上的项目
- django - django pandas数据框下载为excel文件
- xproc - XProc 3 可以处理任何 XPath 3.1 值/类型吗?