Google Cloud 自然语言算子¶
Google Cloud 自然语言可用于通过强大的机器学习模型揭示文本的结构和含义。你可以使用它来提取文本文档、新闻文章或博客文章中提到的有关人物、地点、事件等的详细信息。你可以使用它来了解社交媒体上对你的产品的看法,或分析呼叫中心或消息应用程序中客户对话的意图。
先决任务¶
要使用这些算子,你必须执行一些操作
使用Cloud 控制台选择或创建 Cloud Platform 项目。
为你的项目启用帐单,如Google Cloud 文档中所述。
启用 API,如Cloud 控制台文档中所述。
通过pip安装 API 库。
pip install 'apache-airflow[google]'有关安装的详细信息,请参阅。
文档¶
每个算子都使用Document
来表示文本。
下面是作为字符串提供的文本文档示例
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 中的内容。
GCS_CONTENT_URI = "gs://INVALID BUCKET NAME/sentiment-me.txt"
document_gcs = Document(gcs_content_uri=GCS_CONTENT_URI, type="PLAIN_TEXT")
分析实体¶
实体分析检查给定文本中已知的实体(诸如公众人物、地标等专有名词),并返回有关这些实体的信息。实体分析使用 CloudNaturalLanguageAnalyzeEntitiesOperator
运算符执行。
analyze_entities = CloudNaturalLanguageAnalyzeEntitiesOperator(
document=document, task_id="analyze_entities"
)
你可以将 Jinja 模板 与 document
, gcp_conn_id
, impersonation_chain
参数一起使用,这些参数允许你动态确定值。结果保存到 XCom 中,这允许其他运算符使用它。
analyze_entities_result = BashOperator(
bash_command=f"echo {analyze_entities.output}",
task_id="analyze_entities_result",
)
分析实体情绪¶
情绪分析检查给定文本并识别文本中普遍存在的情绪观点,特别是确定作者的态度是积极、消极还是中立。情绪分析通过 CloudNaturalLanguageAnalyzeEntitySentimentOperator
运算符执行。
analyze_entity_sentiment = CloudNaturalLanguageAnalyzeEntitySentimentOperator(
document=document, task_id="analyze_entity_sentiment"
)
你可以将 Jinja 模板 与 document
, gcp_conn_id
, impersonation_chain
参数一起使用,这些参数允许你动态确定值。结果保存到 XCom 中,这允许其他运算符使用它。
analyze_entity_sentiment_result = BashOperator(
bash_command=f"echo {analyze_entity_sentiment.output}",
task_id="analyze_entity_sentiment_result",
)
分析情绪¶
情感分析检查给定的文本并识别文本中普遍的情感观点,特别是确定作者的态度是积极、消极还是中立。情感分析通过CloudNaturalLanguageAnalyzeSentimentOperator
运算符执行。
analyze_sentiment = CloudNaturalLanguageAnalyzeSentimentOperator(
document=document, task_id="analyze_sentiment"
)
你可以将 Jinja 模板 与 document
, gcp_conn_id
, impersonation_chain
参数一起使用,这些参数允许你动态确定值。结果保存到 XCom 中,这允许其他运算符使用它。
analyze_sentiment_result = BashOperator(
bash_command=f"echo {analyze_sentiment.output}",
task_id="analyze_sentiment_result",
)
分类内容¶
内容分类分析文档并返回适用于文档中找到的文本的内容类别列表。要对文档中的内容进行分类,请使用CloudNaturalLanguageClassifyTextOperator
运算符。
analyze_classify_text = CloudNaturalLanguageClassifyTextOperator(
document=document, task_id="analyze_classify_text"
)
你可以将 Jinja 模板 与 document
, gcp_conn_id
, impersonation_chain
参数一起使用,这些参数允许你动态确定值。结果保存到 XCom 中,这允许其他运算符使用它。
analyze_classify_text_result = BashOperator(
bash_command=f"echo {analyze_classify_text.output}",
task_id="analyze_classify_text_result",
)