我想检测文档中重复的句子,长短语以及可能的段落。我一直在处理文档,并希望确保没有将相同或相似的文本复制到多个地方。

理想情况下,该应用程序应该在线可用或易于安装在装有Pages但未安装Microsoft Word的OS X Mavericks计算机上。

我遇到了Pro Writing Aid,但是在我看来,它的“重复单词和短语”非常嘈杂-它突出显示了某些单词

我还看过Online-Utility.org的Text Analyzer,这还不错。但是,它的信息有些冗余。如果有一个七个单词的短语重复了两次,它还会提到两个六个单词的短语,其中两个单词分别由1到6和2到7组成。另外,很难将结果可视化,并查看是否有特定部分包含大量重复文本。

这个问题与Program不同,它可以在文本文档中搜索单词重复,而Program可以在Word文档中搜索单词重复,因为他们要求一个单词被下一个单词重复。

评论

如果您的文档是或可以简化为文本文件,则可以在Sublime Text(或其他文本编辑器)中使用正则表达式搜索。正则表达式可以轻松检测重复的单词和行;通过一些工作,您也许可以检测到重复的短语和句子。

这是一门很好的书,我也不是一门很好的语法,这应该有助于我提高写作能力....

有很多不同的工具

您可能需要尝试Levenshtein距离

#1 楼

也许您可以尝试以下代码:

https://github.com/raypereda/repeating-phrases
(我不是“ repeating-phrases”的开发者)

其他选择是尝试一些shell脚本(macOS,Linux)。

cat ./THEFILE.txt | tr '\n' ' ' | tr -d '\b\r' | tr -s ' ' | gsed 's/\([.!?]\) \(.\)/\n/g' | grep -v -e '^$' | sort | uniq -c | sort -nr | head -5


注意:由于macOS,请使用“ gsed”。
解释:

tr '\n' ' ' -> strip "\n" (merge lines)
tr -d '\b\r' -> remove control chars if exists
tr -s ' ' -> multiple spaces in sequence became just one space
gsed 's/\([.!?]\) \(.\)/\n/g' -> one phrase in each line (punctuation based)
grep -v -e '^$' -> strip blank lines
sort | uniq -c | sort -nr | head -20 -> statistics


这两个解决方案均假定输入纯文本文件。

#2 楼

Textanz可以做到这一点(在文档中查找并突出显示重复的文本块)。

http://www.textanz.com/index.php