Azure 认知服务:Python SDK 中文本分析 PII 端点的问题

Azure Cognitive Services: Problem with Text Analytics PII Endpoint in Python SDK

我正在尝试执行一些更深入的 PII 检测作为可能在此处找到的标准代码:https://docs.microsoft.com/en-us/azure/cognitive-services/language-service/personally-identifiable-information/quickstart?pivots=programming-language-python 无法找到一些更详细的实体(例如法国车牌号) .

当我使用标准端点时一切正常:'https://whatever.cognitiveservices.azure.com/'

但是,当我切换到“https://whatever.cognitiveservices.azure.com/text/analytics/v3.1/entities/recognition/pii?piiCategories=default,FRDriversLicenseNumber”时(这里有一个例子:https://docs.microsoft.com/en-us/azure/cognitive-services/language-service/personally-identifiable-information/how-to-call ) 我收到 404 错误。

我认为这可能是 Python SDK 问题,因为当我尝试 API 控制台时 - 它工作正常。 https://westus2.dev.cognitive.microsoft.com/docs/services/TextAnalytics-v3-1/operations/EntitiesRecognitionPii

代码:

key = "key"
endpoint = "https://whatever.cognitiveservices.azure.com/text/analytics/v3.1/entities/recognition/pii?piiCategories=default,FRDriversLicenseNumber/"

from azure.ai.textanalytics import TextAnalyticsClient
from azure.core.credentials import AzureKeyCredential

# Authenticate the client using your key and endpoint 
def authenticate_client():
    ta_credential = AzureKeyCredential(key)
    text_analytics_client = TextAnalyticsClient(
            endpoint=endpoint, 
            credential=ta_credential)
    return text_analytics_client

client = authenticate_client()

# Example method for detecting sensitive information (PII) from text 
def pii_recognition_example(client):
    documents = [
        "The employee's SSN is 859-98-0987.",
        "The employee's phone number is 555-555-5555."
    ]
    response = client.recognize_pii_entities(documents, language="en")
    result = [doc for doc in response if not doc.is_error]
    for doc in result:
        print("Redacted Text: {}".format(doc.redacted_text))
        for entity in doc.entities:
            print("Entity: {}".format(entity.text))
            print("\tCategory: {}".format(entity.category))
            print("\tConfidence Score: {}".format(entity.confidence_score))
            print("\tOffset: {}".format(entity.offset))
            print("\tLength: {}".format(entity.length))
pii_recognition_example(client)

由于 MS 文档中尚未说明,端点应保持简单:

endpoint = "https://.cognitiveservices.azure.com"

传递给响应的详细信息=client.recognize_pii_entities()。

下面的代码工作正常:

 key = "key"
 endpoint = "https://<name>.cognitiveservices.azure.com"
    
 from azure.ai.textanalytics import TextAnalyticsClient
 from azure.core.credentials import AzureKeyCredential
    
 # Authenticate the client using your key and endpoint 
 def authenticate_client():
     ta_credential = AzureKeyCredential(key)
     text_analytics_client = TextAnalyticsClient(
             endpoint=endpoint, 
             credential=ta_credential)
     return text_analytics_client
    
 client = authenticate_client()
    
 # Example method for detecting sensitive information (PII) from text 
 def pii_recognition_example(client):
     documents = [
         "The employee's SSN is 859-98-0987.",
         "The employee's phone number is 555-555-5555."
     ]
     response = client.recognize_pii_entities(documents, language="en", categories_filter=["default", "FRDriversLicenseNumber"])
     result = [doc for doc in response if not doc.is_error]
     for doc in result:
         print("Redacted Text: {}".format(doc.redacted_text))
         for entity in doc.entities:
             print("Entity: {}".format(entity.text))
             print("\tCategory: {}".format(entity.category))
             print("\tConfidence Score: {}".format(entity.confidence_score))
             print("\tOffset: {}".format(entity.offset))
             print("\tLength: {}".format(entity.length))
 pii_recognition_example(client)