SequencePredict

SequencePredict[{seq1,seq2,}]

基于给定的序列生成 SequencePredictorFunction[].

SequencePredict[training,seq]

试图根据所给的训练序列预测序列 seq 的下一个元素.

SequencePredict[training,{seq1,seq2,}]

给出每一个序列 seqi 的预测.

SequencePredict["name",seq]

使用由 "name" 表示的内置序列预测器.

SequencePredict[,seq,prop]

给出与 seq 相关联的预测的指定属性.

更多信息和选项

  • 序列 seqi 可以是 token 列表或字符串.
  • 序列 seqi 被假定为基本无穷序列的无序子序列.
  • SequencePredict[,seq,prop] 中,属性与 SequencePredictorFunction[] 中给出的一样;有:
  • "NextElement"最可能的下一个元素
    "NextElement"n接下来最可能的 n 个单个元素
    "NextSequence"n接下来最可能的长度为 n 的元素序列
    "RandomNextElement"来自下一个元素分布 (next-element distribution) 的随机样本
    "RandomNextElement"n来自下一个序列分布 (next-sequenct distribution) 的随机样本
    "Probabilities"所有可能的下一个元素的概率的关联
    "SequenceProbability"预测器产生给定序列的概率的对数
    "SequenceLogProbability"预测器产生给定序列的概率的对数
    "Properties"所有可用属性的列表
  • 内置序列预测器的范例有:
  • "Chinese"基于字符的中文文字
    "English"基于字符的英文文字
    "French"基于字符的法语文字
    "German"基于字符的德语文字
    "Portuguese"基于字符的葡萄牙语文字
    "Russian"基于字符的俄语文字
    "Spanish"基于字符的西班牙语文字
  • 可以给出下列选项:
  • FeatureExtractor Automatic怎样对序列进行预处理
    Method Automatic使用何种预测算法
    PerformanceGoal Automatic优化目标
    RandomSeeding1234内部应该怎样对伪随机数字生成器进行播种
  • 字符串的 FeatureExtractor 的常见设置包括:
  • "SegmentedCharacters"把字符串解释为字符序列(默认)
    "SegmentedWords"把字符串解释为单词序列
  • PerformanceGoal 的可能设置包括:
  • "Memory"最小化预测器对存储空间的要求
    "Quality"最大化预测器的准确度
    "Speed"最大化预测器的速度
    "TrainingSpeed"最小化产生预测器所花费的时间
    Automatic自动在速度、准确度和内存之间进行折衷
  • PerformanceGoal{goal1,goal2,} 会自动把 goal1goal2 等组合在一起.
  • RandomSeeding 的可能设置包括:
  • Automatic每次调用函数时自动重新播种
    Inherited使用外部播种的随机数字
    seed明确指定整数或字符串作为种子
  • Method 的可能设置包括:
  • "Markov"Markov 模型
  • SequencePredict[,Method{"Markov","Order"order}] 中,order 对应于 Markov 过程的内存大小.
  • SequencePredict[,"SequenceProbability"] 中,为未知元素保留一些概率质量.
  • SequencePredict[training,{},prop] 中,{} 被解释为序列的空列表,而不是空序列.

范例

打开所有单元关闭所有单元

基本范例  (1)

在一组序列上训练一个序列预测器:

预测新序列的下一个元素:

给定序列,求下一个元素的概率:

根据上述分布随机获取下一个元素:

一次给出多个预测:

预测最可能的下一个元素,并使用这个中间结果预测接下来的元素:

预测接下来最可能的序列:

比较上述序列的概率:

范围  (4)

自定义序列预测器  (3)

在字符串列表上训练序列预测器:

预测给定字符串的下一个字符:

预测下面四个字符:

获取每个字符为给定字符串的下一个字符的概率:

在常见英文单词列表上训练序列预测器,把每个单词作为字符串序列:

预测给定序列最可能的下一个字符:

在之前的例子中,每个单词被视为一个无穷序列的子序列. 用字符 | 作为单词间的标记:

在知道单词边界的基础上建立新的序列预测器:

生成一个类似英文单词的词的开头:

ExampleData 中加载一本书:

利用该书训练序列预测器:

按该书的风格产生随机字符串:

训练另一个序列预测器,把字符串解释为单词序列,而不是字符序列:

用 10 个连续的单词完成前面的字符串(空格和标点符号也算作单词):

内置序列预测器  (1)

下载 "English" 内置序列预测器:

获取给定字符串的对数概率:

选项  (5)

FeatureExtractor  (2)

对训练文字进行预处理来进行单词的预测,而不是在字符层面进行预测:

用 10 个连续的单词完成前面的字符串(空格和标点符号也算作单词):

把训练文字预处理成小写,以便用更多的字母进行更好的统计:

PerformanceGoal  (2)

训练一个分类器,把重点放在所得模型的内存占用上:

与自动生成的模型的大小进行比较:

在探索整个序列的概率空间时,调整计算时间和精度:

快速但不是很精确的探索:

想要进行更深入的探索则需要更长的计算时间:

比较结果:

Method  (1)

指定在训练子序列上训练过的马可夫过程的内存大小为 3:

可能存在的问题  (1)

一个空列表被解析为不含有序列的列表,将会返回 Null:

为了获取空序列的最可能的下一个元素,可以将其嵌套在第二个列表中以消除歧义:

Wolfram Research (2017),SequencePredict,Wolfram 语言函数,https://reference.wolfram.com/language/ref/SequencePredict.html (更新于 2017 年).

文本

Wolfram Research (2017),SequencePredict,Wolfram 语言函数,https://reference.wolfram.com/language/ref/SequencePredict.html (更新于 2017 年).

CMS

Wolfram 语言. 2017. "SequencePredict." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2017. https://reference.wolfram.com/language/ref/SequencePredict.html.

APA

Wolfram 语言. (2017). SequencePredict. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/SequencePredict.html 年

BibTeX

@misc{reference.wolfram_2024_sequencepredict, author="Wolfram Research", title="{SequencePredict}", year="2017", howpublished="\url{https://reference.wolfram.com/language/ref/SequencePredict.html}", note=[Accessed: 21-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_sequencepredict, organization={Wolfram Research}, title={SequencePredict}, year={2017}, url={https://reference.wolfram.com/language/ref/SequencePredict.html}, note=[Accessed: 21-November-2024 ]}