和风网标志

使用SQL函数通过Amazon Athena,Amazon Translate和Amazon Comprehend翻译和分析文本

日期:

你有 亚马逊简单存储服务 (Amazon S3) 存储桶中充满了多种语言的文件,其中包含传入的客户聊天、产品评论和社交媒体源。 您的任务是识别人们正在谈论的产品,确定他们表达的是快乐的想法还是悲伤的想法,将他们的评论翻译成一种通用语言,并为您的业务分析师创建数据副本,并将这些新信息添加到每条记录。 此外,您需要删除任何个人身份信息 (PII),例如姓名、地址和信用卡号。

您已经知道如何使用 亚马逊雅典娜 使用简单的 SQL 命令和 Athena 中的内置函数转换 Amazon S3 中的数据。 现在您还可以使用 Athena 翻译和分析文本字段,这要归功于 亚马逊翻译, 亚马逊领悟以及 Athena 用户定义函数 (UDF) 的强大功能。

Athena 是一项交互式查询服务,可让您轻松使用 SQL 分析 Amazon S3 中存储的数据。 Amazon Comprehend 是一项自然语言处理 (NLP) 服务,可让您轻松从文本中发现见解。 Amazon Translate 是一项神经机器翻译服务,可提供快速、高质量、经济实惠且可定制的语言翻译。 在这篇文章中,我将向您展示如何将它们结合使用来执行以下操作:

  • 检测文本字段的主要语言
  • 检测所表达的普遍情绪——积极、消极、两者都不是或两者兼而有之
  • 检测或编辑实体(例如项目、地点或数量)
  • 检测或编辑 PII
  • 将文本从一种语言翻译成另一种语言

这篇文章实现了以下目标:

  • 向您展示如何在您自己的 AWS 账户中快速设置文本分析功能(既快速又简单!)
  • 简单解释一下函数的工作原理
  • 讨论性能和成本
  • 提供一个教程,我们对亚马逊产品评论进行一些文本分析
  • 描述所有可用的功能

我们在帖子末尾提供了所有可用功能的列表; 以下代码显示了一些示例查询和结果:

USING FUNCTION detect_sentiment(text_col VARCHAR, lang VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT detect_sentiment('I am very happy', 'en') as sentiment sentiment POSITIVE USING FUNCTION detect_pii_entities(text_col VARCHAR, lang VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT detect_pii_entities('I am Bob, I live in Herndon VA, and I love cars', 'en') as pii pii [["NAME","Bob"],["ADDRESS","Herndon VA"]] USING FUNCTION redact_pii_entities(text_col VARCHAR, lang VARCHAR, type VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT redact_pii_entities('I am Bob, I live in Herndon VA, and I love cars', 'en', 'NAME,ADDRESS') as pii_redacted pii_redacted I am [NAME], I live in [ADDRESS], and I love cars USING FUNCTION translate_text(text_col VARCHAR, sourcelang VARCHAR, targetlang VARCHAR, terminologyname VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT translate_text('It is a beautiful day in the neighborhood', 'auto', 'fr', NULL) as translated_text translated_text C'est une belle journée dans le quartier

安装文本分析 UDF

Athena UDF 使用 AWS Lambda 实现功能能力。 我稍后将在本文中讨论更多详细信息,但您不需要了解内部工作原理即可使用文本分析 UDF,所以让我们开始吧。

通过以下步骤安装预构建的 Lambda 函数:

  1. 导航到 文本分析UDFHandler 在中的应用 AWS无服务器应用程序存储库.
  2. 在里面 应用程序设置 部分,将设置保留为默认值。
  3. 选择 我承认该应用会创建自定义IAM角色.
  4. 部署.

就是这样! 现在您有了一个名为的新 Lambda 函数 textanalytics-udf。 您已准备好在 Athena 中尝试一些文本分析查询。

如果您更喜欢从源代码构建和部署,请参阅本文末尾的说明 GitHub 存储库自述文件.

运行您的第一个文本分析查询

如果您是 Athena 新手,您可能需要查看 入门 指南。

截至撰写本文时,Athena UDF 功能仍处于预览状态。 要启用它,请创建一个名为的 Athena 工作组 AmazonAthenaPreviewFunctionality 并运行该工作组中的所有 UDF 查询。

在 SQL 编辑器中输入以下查询:

USING FUNCTION detect_sentiment(text_col VARCHAR, lang VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT detect_sentiment('I am very happy', 'en') as sentiment

你得到一个简单的 POSITIVE 结果。 现在再试一次,改变输入文本 - 尝试一些不太积极的内容来查看返回的情绪值如何变化。

要获取每个潜在情绪值的情绪以及置信度分数,请改用以下查询:

USING FUNCTION detect_sentiment_all(text_col VARCHAR, lang VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT detect_sentiment_all('I am very happy', 'en') as sentiment

现在您将获得一个包含情绪和所有情绪分数的 JSON 字符串:

{"sentiment":"POSITIVE","sentimentScore":{"positive":0.999519,"negative":7.407639E-5,"neutral":2.7478999E-4,"mixed":1.3210243E-4}}

您可以使用 内置 JSON 提取函数 在 Athena 中根据此结果提取字段以进行进一步分析。

UDF如何工作

有关 Athena UDF 框架的更多信息,请参阅 使用用户定义的函数进行查询.

Java类 文本分析UDFHandler 实现我们的 UDF Lambda 函数处理程序。 每个文本分析函数在此类中都有一个相应的公共方法。

Athena 使用批量输入记录调用我们的 UDF Lambda 函数。 这 TextAnalyticsUDFHandler 将这些批次细分为最多 25 行的较小批次,以利用可用的 Amazon Comprehend 同步多文档批次 API(例如,用于检测语言、实体和情绪)。 当没有可用的同步多文档 API 时(例如 DetectPiiEntityTranslateText),我们改用单文档 API。

亚马逊理解 API 服务配额 提供护栏来限制无意的高使用率带来的成本风险(我们将在下一节中对此进行更多讨论)。 默认情况下,多文档批处理 API 每秒最多处理 250 条记录,单文档 API 每秒最多处理 20 条记录。 我们的 UDF 使用指数退避和重试来限制请求速率以保持在这些限制内。 您可以使用以下命令请求增加 API 的每秒事务配额 配额请求模板AWS管理控制台.

Amazon Comprehend和Amazon Translate各自强制输入字符串的最大长度为5,000 utf-8字节。 长度超过5,000 utf-8字节的文本字段将被截断为5,000字节,以进行语言和情感检测,并在句子边界上拆分为多个5,000字节以下的文本块,以进行翻译以及实体或PII检测和编辑。 然后将结果合并。

优化成本

除了 Athena 查询成本之外,文本分析 UDF 还会产生 Lambda、Amazon Comprehend 和 Amazon Translate 的使用成本。 您支付的金额是您使用 UDF 处理的记录和字符总数的一个因素。 有关更多信息,请参阅 AWS Lambda定价, 亚马逊全面定价亚马逊翻译定价.

为了最大限度地降低成本,我建议您避免多次处理相同的记录。 相反,通过使用 CREATE TABLE AS SELECT (CTAS) 查询将结果捕获到单独的表中,然后您可以根据需要经济高效地查询该表,从而具体化文本分析 UDF 的结果,而不会产生额外的 UDF 费用。 使用 INSERT IGNORE INTO…SELECT 查询增量处理新到达的记录,以仅分析和丰富新记录并将其添加到目标表中。

避免对随后将丢弃的记录不必要地调用文本分析函数。 首先使用临时表、视图或嵌套查询编写查询来过滤数据集,然后将文本分析函数应用于生成的过滤记录。

在对包含大量记录的表运行文本分析查询之前,请务必评估潜在成本。

在本节中,我们提供两个成本评估示例。

示例1:分析推文的语言和情感

假设您有 10,000 条推文记录,每条推文的平均长度为 100 个字符。 您的 SQL 查询会检测每条推文的主要语言和情绪。 您已进入服务第二年(免费套餐不再适用)。 费用明细如下:

  • 每条推文的大小= 100个字符
  • 每条记录的单位数(100个字符)(最少为3个单位)= 3
  • 总单位数:10,000(记录)x 3(每条记录的单位数)x 2(每条记录的 Amazon Comprehend 请求数)= 60,000
  • 每单位价格= $ 0.0001
  • Amazon Comprehend的总成本= [单位数量] x [每单位成本] = 60,000 x $ 0.0001 = $ 6.00 

示例2:翻译推文

假设您的推文中有2,000条不是您的本地语言,因此您运行第二个SQL查询来翻译它们。 成本明细如下:

  • 每条推文的大小= 100个字符
  • 总字符数:2,000(记录)* 100(每条记录的字符数)x 1(每条记录的翻译请求数)= 200,000
  • 每个角色的价格= $ 0.000015
  • Amazon Translate的总成本= [字符数] x [每个字符的成本] = 200,000 x $ 0.000015 = $ 3.00

分析来自客户评论的见解

是时候使用我们新的文本分析查询了。

有关从客户评论中获取可行见解的教程,请参阅 教程:使用 Amazon Comprehend 分析客户评论的见解。 本文提供了应对同一挑战的替代方法:使用由 Athena 和 Amazon Comprehend 提供支持的 SQL 查询。

完成本教程大约需要 10 分钟,Amazon Comprehend 的费用最高为 6 美元 - 如果您符合免费套餐的资格,则无需支付任何费用。

在 Athena 中创建新数据库

在 Athena 查询编辑器中运行以下查询:

CREATE DATABASE IF NOT EXISTS comprehendresults;

连接数据源时,选择新数据库。

创建包含客户评论数据的源表

我们使用 亚马逊客户评论数据集,方便地托管在 Amazon S3 中供公共访问。

  1. 在 Athena 查询编辑器中运行以下查询:
    CREATE EXTERNAL TABLE amazon_reviews_parquet( marketplace string, customer_id string, review_id string, product_id string, product_parent string, product_title string, star_rating int, helpful_votes int, total_votes int, vine string, verified_purchase string, review_headline string, review_body string, review_date bigint, year int)
    PARTITIONED BY (product_category string)
    ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
    LOCATION 's3://amazon-reviews-pds/parquet/'
    

  1. ,找到新表 amazon_reviews_parquet。
  2. 从选项菜单中选择 加载分区.
  1. 预览新表, amazon_reviews_parquet.
  1. 运行以下查询来评估平均评论长度:
    SELECT AVG(LENGTH(review_body)) AS average_review_length FROM amazon_reviews_parquet

平均评论长度约为 365 个字符。 这相当于每条记录 4 个 Amazon Comprehend 单元(1 个单元 = 100 个字符)。

检测每条评论的语言

要检测每条评论的语言,请在 Athena 查询编辑器中运行以下查询 - 运行时间只需 1 分钟多一点,费用为 2 美元:

CREATE TABLE amazon_reviews_with_language WITH (format='parquet') AS
USING FUNCTION detect_dominant_language(col1 VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf')
SELECT *, detect_dominant_language(review_body) AS language
FROM amazon_reviews_parquet
LIMIT 5000

该查询创建一个新表, amazon_reviews_with_language,添加了一个新列: language。 LIMIT 子句将记录数限制为 5,000 条。

成本计算公式为:5,000(记录)x 4(每条记录的单位)x 1(每条记录的请求)x 0.0001 美元(每单位的 Amazon Comprehend 价格)= 2 美元。 

运行以下查询以查看检测到的语言代码,以及每种语言相应的评论数量:

SELECT language, count(*) AS count FROM amazon_reviews_with_language GROUP BY language ORDER BY count DESC

检测每条评论的情绪和实体

要检测情绪,请在 Athena 查询编辑器中运行以下查询 - 它使用两个文本分析函数,运行时间大约为 1 分钟,成本为 4 美元:

CREATE TABLE amazon_reviews_with_text_analysis WITH (format='parquet') AS
USING FUNCTION detect_sentiment_all(col1 VARCHAR, lang VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf'), FUNCTION detect_entities_all(col1 VARCHAR, lang VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf')
SELECT *, detect_sentiment_all(review_body, language) AS sentiment, detect_entities_all(review_body, language) AS entities
FROM amazon_reviews_with_language
WHERE language IN ('ar', 'hi', 'ko', 'zh-TW', 'ja', 'zh', 'de', 'pt', 'en', 'it', 'fr', 'es')

该查询创建一个新表, amazon_reviews_with_text_analysis,添加了另外两列: sentimententities。 WHERE 子句将结果集限制为 Amazon Comprehend 情感和实体检测支持的语言列表。

成本计算公式为:5,000(记录)x 4(每条记录的单位)x 2(每条记录的请求)x 0.0001 美元(每单位的 Amazon Comprehend 价格)= 4 美元。

预览新表并检查新表的一些值 sentimententities 列。 它们包含具有嵌套结构和字段的 JSON 字符串。

以下屏幕截图显示了 sentiment 栏目详细信息。

以下屏幕截图显示了实体列详细信息。

接下来,我们使用 Athena 中的 JSON 函数来准备这些列以供分析。

准备情绪进行分析

运行以下 SQL 查询来创建一个新表,其中包含扩展到单独列中的情绪和情绪分数:

CREATE TABLE sentiment_results_final WITH (format='parquet') AS
SELECT review_date, year, product_title, star_rating, language, CAST(JSON_EXTRACT(sentiment,'$.sentiment') AS VARCHAR) AS sentiment, CAST(JSON_EXTRACT(sentiment,'$.sentimentScore.positive') AS DOUBLE ) AS positive_score, CAST(JSON_EXTRACT(sentiment,'$.sentimentScore.negative') AS DOUBLE ) AS negative_score, CAST(JSON_EXTRACT(sentiment,'$.sentimentScore.neutral') AS DOUBLE ) AS neutral_score, CAST(JSON_EXTRACT(sentiment,'$.sentimentScore.mixed') AS DOUBLE ) AS mixed_score, review_headline, review_body
FROM amazon_reviews_with_text_analysis

预览新的 sentiment_results_final 表(参见下面的屏幕截图)。 情绪总体上与文本相符吗? review_body 场地? 它与 star_rating? 如果您发现任何可疑的情绪分配,请检查置信度分数以查看该情绪是否被分配为低置信度。

准备用于分析的实体

运行以下 SQL 查询来创建一个新表,其中包含未嵌套到单独行(内部子查询)中的检测到的实体,每个字段位于单独的列中(外部查询):

CREATE TABLE entities_results_final WITH (format='parquet') AS
SELECT review_date, year, product_title, star_rating, language, CAST(JSON_EXTRACT(entity_element, '$.text') AS VARCHAR ) AS entity, CAST(JSON_EXTRACT(entity_element, '$.type') AS VARCHAR ) AS category, CAST(JSON_EXTRACT(entity_element, '$.score') AS DOUBLE ) AS score, CAST(JSON_EXTRACT(entity_element, '$.beginOffset') AS INTEGER ) AS beginoffset, CAST(JSON_EXTRACT(entity_element, '$.endOffset') AS INTEGER ) AS endoffset, review_headline, review_body
FROM
( SELECT * FROM ( SELECT *, CAST(JSON_PARSE(entities) AS ARRAY(json)) AS entities_array FROM amazon_reviews_with_text_analysis ) CROSS JOIN UNNEST(entities_array) AS t(entity_element)
)

预览新表的内容, entities_results_final (见下面的截图).

在 Amazon QuickSight 中可视化(可选)

作为可选步骤,您可以使用以下命令可视化结果 亚马逊QuickSight。 有关说明,请参见 步骤 5:在 Amazon QuickSight 中可视化 Amazon Comprehend 输出.

您可以对实体使用新的词云视觉类型,而不是树形图。 在词云图菜单中,选择 隐藏“其他”类别.

您现在拥有一个包含情绪和实体可视化的仪表板,类似于以下屏幕截图。

故障排除

如果查询失败,请检查 亚马逊CloudWatch UDF Lambda 函数生成的指标和日志。

  1. 在 Lambda 控制台上,找到 textanalytics-udf 功能。
  2. 灭菌监测.

您可以查看 CloudWatch 指标,显示函数运行的频率、运行的时间、失败的频率等。

  1. 在CloudWatch中查看日志 打开函数日志流以获得更多故障排除见解。

有关通过 Lambda 查看 CloudWatch 指标的更多信息,请参阅 使用 Lambda 控制台.

其他用例

SQL 文本分析功能有许多用例。 除了本文中显示的示例之外,请考虑以下事项:

  • 通过使用增量 SQL 查询来丰富带有情感和实体的文本数据,例如流式传输社交媒体流,从而简化 ETL 管道 亚马逊 Kinesis 数据流水线
  • 使用 SQL 查询探索客户支持文本、电子邮件和支持案例中的情绪和实体
  • 通过从客户或患者互动中编辑 PII 来准备研究就绪的数据集
  • 将多种语言标准化为单一通用语言

您可能有这些功能的其他用例,或者您想看到添加的其他功能,例如:

  • 用于调用 Amazon Comprehend 中的自定义实体识别和自定义分类模型的 SQL 函数
  • 用于去标识化的 SQL 函数 - 扩展实体和 PII 编辑函数以用备用唯一标识符替换实体

此外,该实现是开源的,这意味着您可以克隆存储库,根据需要修改和扩展功能,并(希望)向我们发送拉取请求,以便我们可以将您的改进合并回项目中,并使其更好每个人。

打扫干净

完成本教程后,您可能想要清除不再使用的任何AWS资源。 有效的AWS资源可能会继续在您的帐户中产生费用。

  1. 在 Athena 中,运行以下查询以删除数据库和所有表:
    DROP DATABASE comprehendresults CASCADE

  1. 在 AWS CloudFormation 中,删除堆栈 serverlessrepo-TextAnalyticsUDFHandler.
  2. 取消您的QuickSight订阅.

结论

我向您展示了如何安装适用于 Athena 的示例文本分析 UDF Lambda 函数,以便您可以使用简单的 SQL 查询来使用 Amazon Translate 翻译文本、使用 Amazon Comprehend 从文本中生成见解以及编辑敏感信息。 我希望您发现这很有用,并分享如何使用它来简化架构并为您的业务实现新功能的示例。

请在“评论”部分或该项目的“问题”部分与我们分享您的想法 GitHub存储库.

附录:可用功能参考

本节总结了当前提供的功能。 这 读我 文件提供了更多详细信息。

检测语言

此功能使用Amazon Comprehend 批量检测主导语言 用于根据输入文本的前 5,000 个字节识别主要语言的 API。

以下代码返回语言代码,例如 fr 代表法语,en 代表英语:

USING FUNCTION detect_dominant_language(text_col VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT detect_dominant_language('il fait beau à Orlando') as language

以下代码返回 JSON 格式的语言代码数组和相应的置信度分数:

USING FUNCTION detect_dominant_language_all(text_col VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT detect_dominant_language_all('il fait beau à Orlando') as language_all

检测情绪

此功能使用Amazon Comprehend 批量检测情绪 用于根据输入文本的前 5,000 个字节识别情绪的 API。

以下代码返回 POSITIVE、NEGATIVE、NEUTRAL 或 MIXED 情绪:

USING FUNCTION detect_sentiment(text_col VARCHAR, lang VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT detect_sentiment('Joe is very happy', 'en') as sentiment

以下代码返回一个 JSON 格式的对象,其中包含检测到的每个情绪值的情绪和置信度分数:

USING FUNCTION detect_sentiment_all(text_col VARCHAR, lang VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT detect_sentiment_all('Joe is very happy', 'en') as sentiment_all

检测实体

此功能使用Amazon Comprehend 检测实体 用于识别 PII 的 API。 输入文本长度超过 5,000 字节会导致多次 Amazon Comprehend API 调用。

以下代码返回一个 JSON 格式的对象,其中包含数组 实体类型 和值:

USING FUNCTION detect_entities(text_col VARCHAR, lang VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT detect_entities('His name is Joe, he lives in Richmond VA, he bought an Amazon Echo Show on January 5th, and he loves it', 'en') as entities

以下代码返回一个 JSON 格式的对象,其中包含 PII 实体类型及其值、分数和字符偏移量的数组:

USING FUNCTION detect_entities_all(text_col VARCHAR, lang VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT detect_entities_all('His name is Joe, he lives in Richmond VA, he bought an Amazon Echo Show on January 5th, and he loves it', 'en') as entities_all

编辑实体

此函数将指定实体类型的实体值替换为“[ENTITY_TYPE]”。 输入文本长度超过 5,000 字节会导致多次 Amazon Comprehend API 调用。 请看下面的代码:

USING FUNCTION redact_entities(text_col VARCHAR, lang VARCHAR, types VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT redact_entities('His name is Joe, he lives in Richmond VA, he bought an Amazon Echo Show on January 5th, and he loves it', 'en', 'ALL') as entities_redacted

该命令返回输入字符串的编辑版本。 指定一个或多个 实体类型 通过提供以逗号分隔的有效列表来进行编辑 types 在类型字符串参数中,或者 ALL 编辑所有类型。

检测PII

此功能使用 检测Pii实体 用于识别 PII 的 API。 输入文本长度超过 5,000 字节会导致多次 Amazon Comprehend API 调用。

以下代码返回一个 JSON 格式的对象,其中包含数组 PII实体类型 和值:

USING FUNCTION detect_pii_entities(text_col VARCHAR, lang VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT detect_pii_entities('His name is Joe, his username is joe123 and he lives in Richmond VA', 'en') as pii

以下代码返回一个 JSON 格式的对象,其中包含 PII 实体类型及其分数和字符偏移量的数组:

USING FUNCTION detect_pii_entities_all(text_col VARCHAR, lang VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT detect_pii_entities_all('His name is Joe, his username is joe123 and he lives in Richmond VA', 'en') as pii_all

编辑PII

此函数将指定 PII 实体类型的 PII 值替换为“[PII_ENTITY_TYPE]”。 输入文本长度超过 5,000 字节会导致多次 Amazon Comprehend API 调用。 请看下面的代码:

USING FUNCTION redact_pii_entities(text_col VARCHAR, lang VARCHAR, types VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT redact_pii_entities('His name is Joe, his username is joe123 and he lives in Richmond VA', 'en', 'ALL') as pii_redacted

该函数返回输入字符串的编辑版本。 指定一个或多个 PII实体类型 通过在中提供以逗号分隔的有效类型列表来进行编辑 type 字符串参数,或者 ALL 编辑所有类型。

翻译文字

此功能将文本从源语言翻译为目标语言。 输入长度超过 5,000 字节的文本会导致多次 Amazon Translate API 调用。 请看下面的代码:

USING FUNCTION translate_text(text_col VARCHAR, sourcelang VARCHAR, targetlang VARCHAR, customterminologyname VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT translate_text('It is a beautiful day in the neighborhood', 'auto', 'fr', NULL) as translated_text

该函数返回翻译后的字符串。 (可选)自动检测源语言(使用 auto 作为语言代码,它使用 Amazon Comprehend),并可以选择指定 习惯术语 (否则使用 NULL customTerminologyName).


关于作者

鲍勃·斯特拉汉鲍勃·斯特拉汉 是AWS Language AI Services团队的首席解决方案架构师。

资料来源:https://aws.amazon.com/blogs/machine-learning/translate-and-analyze-text-using-sql-functions-with-amazon-athena-amazon-translate-and-amazon-comprehend/

现货图片

最新情报

现货图片