在Python中对两个文件进行双重灰显?

在Python中对两个文件进行双重灰显?,python,nlp,nltk,Python,Nlp,Nltk,也许我的意思不是“双格雷普”,而是“近似字符串匹配”或“模糊文本匹配”?基本上,我希望有一个类似grep的程序,但搜索长度为X的短语,它们在两个文本中以大致相同的形式出现,并返回这些短语及其原始上下文。这就是我目前所拥有的。(这也取决于 用法: myMatch = Matcher('milton.txt', 'kjv.txt', 2, 3) myMatch.match() 它基本上是有效的,但它相当尴尬,因为它必须1)找到一个与n-gram匹配的字符串,2)找出这些n-gram在文本中的来源。

也许我的意思不是“双格雷普”,而是“近似字符串匹配”或“模糊文本匹配”?基本上,我希望有一个类似grep的程序,但搜索长度为X的短语,它们在两个文本中以大致相同的形式出现,并返回这些短语及其原始上下文。这就是我目前所拥有的。(这也取决于

用法:

myMatch = Matcher('milton.txt', 'kjv.txt', 2, 3)
myMatch.match()

它基本上是有效的,但它相当尴尬,因为它必须1)找到一个与n-gram匹配的字符串,2)找出这些n-gram在文本中的来源。有时程序会找到匹配项,但无法找出匹配项在原始文本中对应的位置。如果有一种方法可以从搜索文件本身开始,而不是搜索n-gram列表,那么整个过程就可以简化。有办法吗?或者,是否有一种方法将n-grams列表与其在原始文本中的位置相关联

在建立ngram列表时,创建一个字典,n-gram作为键,原始文本中的位置作为值列表。但是我如何获得原始文本中的位置呢?您首先是如何获得ngram的?你不是从原文中得到的吗?在列表中添加ngram时,同时在文本中保存位置。您应该知道从何处复制它。
span_tokenize()
提供每个令牌的开始/结束偏移量。谢谢,@lenz。我如何使用它
nltk.span_tokenize()
似乎不存在,nltk中的其他地方似乎没有实现。在构建ngram列表时,请创建一个字典,其中n-gram作为键,原始文本中的位置作为值列表。但是我如何获得原始文本中的位置?您首先是如何获得ngram的?你不是从原文中得到的吗?在列表中添加ngram时,同时在文本中保存位置。您应该知道从何处复制它。
span_tokenize()
提供每个令牌的开始/结束偏移量。谢谢,@lenz。我如何使用它
nltk.span_tokenize()
似乎不存在,在nltk的其他地方,它看起来没有实现。
myMatch = Matcher('milton.txt', 'kjv.txt', 2, 3)
myMatch.match()