Google Cloud Natural Language 运算符

Google Cloud Natural Language 可以通过强大的机器学习模型来揭示文本的结构和含义。您可以使用它来提取文本文件、新闻文章或博客文章中提到的人物、地点、事件等信息。您可以使用它来了解社交媒体上关于您产品的观点,或者解析在呼叫中心或消息传递应用中发生的客户对话的意图。

先决条件任务

要使用这些运算符,您必须执行以下几项操作

文档

每个运算符都使用一个 Document 来表示文本。

这是一个将文本作为字符串提供的文档示例

tests/system/google/cloud/natural_language/example_natural_language.py[源代码]

TEXT = """Airflow is a platform to programmatically author, schedule and monitor workflows.

Use Airflow to author workflows as Directed Acyclic Graphs (DAGs) of tasks. The Airflow scheduler executes
 your tasks on an array of workers while following the specified dependencies. Rich command line utilities
 make performing complex surgeries on DAGs a snap. The rich user interface makes it easy to visualize
 pipelines running in production, monitor progress, and troubleshoot issues when needed.
"""
document = Document(content=TEXT, type="PLAIN_TEXT")

除了提供字符串外,文档还可以引用存储在 Google Cloud Storage 中的内容。

tests/system/google/cloud/natural_language/example_natural_language.py[源代码]

GCS_CONTENT_URI = "gs://INVALID BUCKET NAME/sentiment-me.txt"
document_gcs = Document(gcs_content_uri=GCS_CONTENT_URI, type="PLAIN_TEXT")

分析实体

实体分析检查给定的文本以查找已知的实体(例如公众人物、地标等专有名词),并返回有关这些实体的信息。实体分析是通过 CloudNaturalLanguageAnalyzeEntitiesOperator 运算符执行的。

tests/system/google/cloud/natural_language/example_natural_language.py[源代码]

analyze_entities = CloudNaturalLanguageAnalyzeEntitiesOperator(
    document=document, task_id="analyze_entities"
)

您可以将 Jinja 模板document, gcp_conn_id, impersonation_chain 参数一起使用,这允许您动态确定值。结果将保存到 XCom,这使得其他运算符可以使用它。

tests/system/google/cloud/natural_language/example_natural_language.py[源代码]

analyze_entities_result = BashOperator(
    bash_command=f"echo {analyze_entities.output}",
    task_id="analyze_entities_result",
)

分析实体情感

情感分析检查给定的文本并识别文本中普遍存在的情绪观点,特别是确定作者的态度是积极、消极还是中立。情感分析是通过 CloudNaturalLanguageAnalyzeEntitySentimentOperator 运算符执行的。

tests/system/google/cloud/natural_language/example_natural_language.py[源代码]

analyze_entity_sentiment = CloudNaturalLanguageAnalyzeEntitySentimentOperator(
    document=document, task_id="analyze_entity_sentiment"
)

您可以将 Jinja 模板document, gcp_conn_id, impersonation_chain 参数一起使用,这允许您动态确定值。结果将保存到 XCom,这使得其他运算符可以使用它。

tests/system/google/cloud/natural_language/example_natural_language.py[源代码]

analyze_entity_sentiment_result = BashOperator(
    bash_command=f"echo {analyze_entity_sentiment.output}",
    task_id="analyze_entity_sentiment_result",
)

分析情感

情感分析检查给定的文本并识别文本中普遍存在的情绪观点,特别是确定作者的态度是积极、消极还是中立。情感分析是通过 CloudNaturalLanguageAnalyzeSentimentOperator 运算符执行的。

tests/system/google/cloud/natural_language/example_natural_language.py[源代码]

analyze_sentiment = CloudNaturalLanguageAnalyzeSentimentOperator(
    document=document, task_id="analyze_sentiment"
)

您可以将 Jinja 模板document, gcp_conn_id, impersonation_chain 参数一起使用,这允许您动态确定值。结果将保存到 XCom,这使得其他运算符可以使用它。

tests/system/google/cloud/natural_language/example_natural_language.py[源代码]

analyze_sentiment_result = BashOperator(
    bash_command=f"echo {analyze_sentiment.output}",
    task_id="analyze_sentiment_result",
)

分类内容

内容分类分析文档并返回适用于文档中找到的文本的内容类别列表。要对文档中的内容进行分类,请使用 CloudNaturalLanguageClassifyTextOperator 运算符。

tests/system/google/cloud/natural_language/example_natural_language.py[源代码]

analyze_classify_text = CloudNaturalLanguageClassifyTextOperator(
    document=document, task_id="analyze_classify_text"
)

您可以将 Jinja 模板document, gcp_conn_id, impersonation_chain 参数一起使用,这允许您动态确定值。结果将保存到 XCom,这使得其他运算符可以使用它。

tests/system/google/cloud/natural_language/example_natural_language.py[源代码]

analyze_classify_text_result = BashOperator(
    bash_command=f"echo {analyze_classify_text.output}",
    task_id="analyze_classify_text_result",
)

参考

有关详细信息,请查看

此条目是否有帮助?