使用深度学习转换文本 (GeoAI)

摘要

在要素类或表中的文本字段上运行经过训练的序列到序列模型,并使用包含已转换、已变换或已翻译文本的新字段对其进行更新。

了解有关“文本转换”工作原理的详细信息

使用情况

  • 该工具要求安装深度学习框架。 要设置计算机以在 ArcGIS AllSource 中使用深度学习框架,请参阅安装 ArcGIS 的深度学习框架

  • 该工具需要包含经过训练的模型信息的模型定义文件。 可以使用训练文本分类模型工具来训练模型。 输入模型定义文件参数值可以是 Esri 模型定义 JSON 文件 (.emd) 或深度学习模型包 (.dlpk)。 模型文件必须存储在本地。

  • 此工具可以在 CPU 或 GPU 上运行。 但是,深度学习是一项计算密集型任务,因此建议使用 GPU。 要使用 GPU 运行此工具,将处理器类型环境设置为 GPU。 如果您具有多个 GPU,则改为指定 GPU ID 环境

  • 有关运行此工具的要求以及您可能遇到的问题的信息,请参阅深度学习常见问题

参数

标注说明数据类型
输入表

包含将转换文本的输入点、线或面要素类或表。

Feature Layer; Table View
文本字段

输入要素类或表中包含将转换的文本的文本字段。

Field
输入模型定义文件

将用于分类的经过训练的模型。 模型定义文件可以是存储在本地的 Esri 模型定义 JSON 文件 (.emd) 或深度学习模型包 (.dlpk)。

File
结果字段
(可选)

输出要素类或表中包含已转换文本的字段的名称。 默认字段名称为 Result

String
模型参数
(可选)

附加参数(如置信度阈值),将用于调整模型的敏感性。

参数的名称将由工具自动填充。

Value Table
批量大小
(可选)

一次需要处理的训练样本数。 默认值为 4。

增加批量大小可以提高工具性能;但是随着批量大小增加,所用内存也将随之增加。 如果出现内存不足错误,则降低批量大小。

Double
最小序列长度
(可选)

输出文本字符串的最小字符数。 默认值为 20。

Double
最大序列长度
(可选)

输出文本字符串的最大字符数。 默认值为 50。

Double

派生输出

标注说明数据类型
更新的表

包含从输入数据派生的转换文本的输出点、线或面要素类或表。

Table View; Feature Layer

arcpy.geoai.TransformTextUsingDeepLearning(in_table, text_field, in_model_definition_file, {result_field}, {model_arguments}, {batch_size}, {minimum_sequence_length}, {maximum_sequence_length})
名称说明数据类型
in_table

包含将转换文本的输入点、线或面要素类或表。

Feature Layer; Table View
text_field

输入要素类或表中包含将转换的文本的文本字段。

Field
in_model_definition_file

将用于分类的经过训练的模型。 模型定义文件可以是存储在本地的 Esri 模型定义 JSON 文件 (.emd) 或深度学习模型包 (.dlpk)。

File
result_field
(可选)

输出要素类或表中包含已转换文本的字段的名称。 默认字段名称为 Result

String
model_arguments
[model_arguments,...]
(可选)

附加参数(如置信度阈值),将用于调整模型的敏感性。

参数的名称将由工具自动填充。

Value Table
batch_size
(可选)

一次需要处理的训练样本数。 默认值为 4。

增加批量大小可以提高工具性能;但是随着批量大小增加,所用内存也将随之增加。 如果出现内存不足错误,则降低批量大小。

Double
minimum_sequence_length
(可选)

输出文本字符串的最小字符数。 默认值为 20。

Double
maximum_sequence_length
(可选)

输出文本字符串的最大字符数。 默认值为 50。

Double

派生输出

名称说明数据类型
updated_table

包含从输入数据派生的转换文本的输出点、线或面要素类或表。

Table View; Feature Layer

代码示例

TransformTextUsingDeepLearning(Python 窗口)

以下 Python 窗口脚本演示了如何使用 TransformTextUsingDeepLearning 函数。

# Name: TransformText.py
# Description: Translate text from English to German
#
# Requirements: ArcGIS Pro Advanced license

# Import system modules
import arcpy
import os

arcpy.env.workspace = "C:/textanalysisexamples/data"

# Set local variables
in_table = os.path.join("translationdata")
pretrained_model_path_emd = "c:\\translatedata\\Seq2Seq.emd"

# Run Transform Text Using Deep Learning
arcpy.geoai.TransformTextUsingDeepLearning(in_table, "EnglishText", pretrained_model_path_emd)