文字不规范

时间:2009-02-06 08:10:18

标签: text compression text-parsing similarity identification

有人知道那里的图书馆或软件会找到文本中的不正确之处吗?例如,假设我有......

1. Name 1, Comment
2. Name 2, Comment
3. Name 3 , Comment
5. Name 10, Comment

这个软件或库首先会删除它会发现类似的文本部分(非常类似于一段压缩软件会编码重复的类似文本部分来压缩它)但是使用变量进行容错可能会发现类似文本的一部分,现在非常相似的文本比较应用程序或差异/合并工具,它实际上可以突出它看到的不同。我正在考虑制作这个工具,但我不想重新发明轮子。如果有任何东西可以远程实现这一点,我真的想知道可能有助于这个项目或至少知道不做一个。更不用说这个答案可能会帮助其他人寻找同样的东西,我认为需求量足以供应供应,这就是为什么让我难以理解我根本找不到任何东西。

3 个答案:

答案 0 :(得分:2)

如果您使用的是Python,可以尝试difflib

这不是您问题的确切解决方案,但可能会有所帮助。

答案 1 :(得分:2)

根据您想要找到或纠正的现实生活中的违规行为,这个问题完全不同。

以下是使用真实文本更新的示例:

1. Lazarus Long, Get the first shot off fast.
2. Hiro Protagonist, Greatest swordfighter[sic] in the world.
3. Alice , Down the rabbit hole.
5. Orem, Sink of power.

在这个例子中,错误可以通过一个体面的文本编辑器修复,找到替换。如果您通过通配符获得创意,文本编辑器和十六进制编辑器可以创造奇迹。只要您的分隔因素存在(。或,),问题仍然很简单。你可能已经知道了;一旦其中一个缺失,问题就变得复杂得多。

难题的例子:

1. Lazarus Long, Get the first shot off fast.
 2. Hiro Protagonist  Greatest swordfighter[sic] in the world.
3. Alice , Down the rabbit hole.
5 . Orem, , Sink of power.

我可能会在几个步骤中攻击它。 1.清理多余的空间。 2.找出关键统计数据,例如每行的分隔符数和每个分隔列的单词或字符的平均数。大多数名字都是一两个单词,评论未知或受输入限制。 3.查找具有统计上不可能数量的关键特征的行。 4.尽力纠正它们。

我知道这不是直接解决你的问题,但也许一个想法可以解决你的问题。过去的轮胎可能从未完成任何设计。

答案 2 :(得分:0)

听起来基本上就像你想要使用正则表达式来创建一个“理想的响应”,然后将其余的行与它进行比较。

或者您可以编写一个更复杂的程序,将每行归结为Regex查询,然后将查询相互比较以查看哪些不同。