检测文档中重复的句子或短语

软件推荐 数据分析
2021-10-27 04:17:24

我想检测文档中重复的句子、长短语和可能的段落。我一直在处理一份文档,并想确保我没有将相同或相似的文本复制到多个位置。

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

我遇到了Pro Writing Aid,但它的“重复单词和短语”在我看来非常嘈杂——它突出显示了一些单独的单词,只是因为出现了一点点。

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

这个问题不同于在文本文档中搜索单词重复的程序和在 Word 文档中搜索单词重复的程序,因为它们询问的是一个单词被下一个单词重复。

2个回答

也许你可以试试这段代码:

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

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

cat ./THEFILE.txt | tr '\n' ' ' | tr -d '\b\r' | tr -s ' ' | gsed 's/\([.!?]\) \(.\)/\1\n\2/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/\([.!?]\) \(.\)/\1\n\2/g' -> one phrase in each line (punctuation based)
grep -v -e '^$' -> strip blank lines
sort | uniq -c | sort -nr | head -20 -> statistics

两种解决方案都假定输入纯文本文件。

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

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

https://i.imgur.com/1giwJZ1.jpg