Data representation 给定一个有限的字符词汇表,用什么最简单的方法来表示任意长的等长字符序列?

Data representation 给定一个有限的字符词汇表,用什么最简单的方法来表示任意长的等长字符序列?,data-representation,finite-state-automaton,Data Representation,Finite State Automaton,我试图为一个项目操纵一个有限状态传感器。然而,在构建FST时,我需要输出符号都是来自输入符号的任意长的字符序列,这些字符仅仅是来自相关文本语料库的单个唯一字符。此外,我需要统一表示这些任意长的序列,这样每个组合的 表示具有相同的长度。当然,对于任意长度,可能的最长组合具有无限长,因此让我们假设没有任何组合可以比相关语料库中最长的文档长 换句话说,给定的输入词汇表,的输出词汇表,的输出词汇表,['a',ab',acb',abcb']都需要表示为长度为4的向量,每个向量中的每个项都是输入词汇表中的项

我试图为一个项目操纵一个有限状态传感器。然而,在构建FST时,我需要输出符号都是来自输入符号的任意长的字符序列,这些字符仅仅是来自相关文本语料库的单个唯一字符。此外,我需要统一表示这些任意长的序列,这样每个组合的 表示具有相同的长度。当然,对于任意长度,可能的最长组合具有无限长,因此让我们假设没有任何组合可以比相关语料库中最长的文档长

换句话说,给定
输入词汇表
输出词汇表
输出词汇表
['a',ab',acb',abcb']
都需要表示为长度为4的向量,每个向量中的每个项都是
输入词汇表
中的项。我唯一的想法是使用填充向量,例如,在这个例子中,
[[0,3,3,3],[0,1,3,3],[0,2,1,3],[0,1,2,1]
,其中
3
是一个填充标记,但我对这方面非常陌生,因此非常感谢您的帮助


为了澄清,我想知道是否有一种方法可以在没有pad令牌的情况下实现这一点。

没有明显的错误。您的向量表示似乎足够清晰和简洁,并且似乎为输入字符的每个组合提供了明确的表示。除此之外,我们还必须了解这些数据结构是如何被使用的,以了解它们是否适合您的应用程序--但是,正如其他人所告诉您的,这不是一个讨论设计批评和基于观点的东西的论坛。正如我刚刚编辑的,为了澄清,我想知道是否有一种方法可以在没有pad标记的情况下实现这一点。如果每个向量的长度必须为n,其中n是最长的
output\u词汇表
标记的大小,那么我不认为在某种表示级别上不使用某种形式的padding是可能的。如果您希望使用更少的内存,因为您预见到自己会使用填充标记消耗大量空间,那么您可以从
numpy
中选择稀疏矩阵。或者,如果您可以自由更改表示,您可以简单地将
0
分配给
a
1
分配给
ab
2
分配给
acb
,等等。