Language agnostic 用于序列校正的N-Grams

Language agnostic 用于序列校正的N-Grams,language-agnostic,sequences,Language Agnostic,Sequences,对不起,这个问题很难回答 我有一大组序列需要通过添加或替换数字(从不删除任何内容)进行纠正,如下所示: 1,2,3=>1,7,4,3 4,5,6=>4,4,5,6 4,7,8,9=>4,7,8,9,1 4,7=>4,8 4,7,1=>4,7,2 它从一个填充的原始序列和一个样本校正开始 我希望能够通过计算被校正的不同n-gram的频率来自动校正序列,第一个样本将成为 1=>1 2=>7 3=>3 1,2=>1,7 2,3=>7,4,3 1,2,3=>1,7,4,3 我会收集这些n-gra

对不起,这个问题很难回答

我有一大组序列需要通过添加或替换数字(从不删除任何内容)进行纠正,如下所示:

  • 1,2,3=>1,7,4,3
  • 4,5,6=>4,4,5,6
  • 4,7,8,9=>4,7,8,9,1
  • 4,7=>4,8
  • 4,7,1=>4,7,2
它从一个填充的原始序列和一个样本校正开始

我希望能够通过计算被校正的不同n-gram的频率来自动校正序列,第一个样本将成为

  • 1=>1
  • 2=>7
  • 3=>3
  • 1,2=>1,7
  • 2,3=>7,4,3
  • 1,2,3=>1,7,4,3
我会收集这些n-gram修正的频率,我正在寻找一种方法来计算修正样本数据中可能存在或不存在的新输入的最佳方法


这似乎类似于。

根据替换的长度和出现的次数为已知替换分配一个分数。天真地说,我建议将这个分数与长度的平方成比例(在我能想到的大多数情况下,匹配时间越长就越少)和出现次数的平方根成比例,这样一个4项序列的权重就相当于出现16次的2项序列。这需要根据您的实际情况进行调整

给定一个长度为M的序列,有N个长度为1到M的子字符串,其中N=M*(M+1)/2,因此如果字符串相当短,则可以迭代每个子字符串并查找可能的替换。我认为,由这些子字符串组成整个字符串的方法的数量也与M^2成正比

对于原始字符串按子字符串的每个可能组合,将每个子字符串的最佳(最高分数)替换的总分相加


总分最高的作文(考虑到我对流程的假设,可能)将是“最佳”替换后结果。

在你的最后两个例子中,2,3=>7,4,3是否应该是2,3=>7,4,3?此外,空“,”项是否与其他项有任何不同的意义?需要更多信息:这些更正是否递归,是否有要求的求值顺序,以及在应用多个规则时如何处理?例如,对于规则:1,2=>1,2,3和2,3=>2,3,4——当应用于1,2,3时,这是否会产生1,2,3或1,2,3,4或1,2,3,3或1,2,3,4甚至1,2,3?