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

摘要

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

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

使用情况

  • 该工具要求安装深度学习框架。 要设置计算机以在 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)