Is there a way to check for similarities within a single text? I am reaching the final stage of my dissertation which means editing, rewriting, and more editing. I am looking for a tool which can help me in this process by checking for similarities within a single text of 150-200 pages. I will probably detect similar phrasings of key points manually, but I could use some automated help to make sure I don't repeat things in the same words. I know Word and other software can compare documents to look for similarities between two documents, but is there a way to look for similarities within a single document?

Thanks.
This may not be the best solution, but there are lots of string alignment software packages readily available. Specifically, biological sequence alignment software is highly abundant. I actually did this once before using EMBOSS.

For many of these you'll need to convert your text to FASTA format, which I've written a script for:

#!/usr/bin/python2.7
import string
from sys import *
from Bio import SeqIO
from Bio.Seq import Seq
from Bio.SeqRecord import SeqRecord

def stripPunct(astr):
    #For now, only output letters to satisfy EMBOSS
    tmpstr = astr.translate(None, string.digits + string.punctuation + string.whitespace)
    #tmpstr = astr.translate(None, string.whitespace)
    return tmpstr

def main():
    txtfile1 = open(argv[1],"r")
    txtfile2 = open(argv[2],"r")
    txt1 = txtfile1.read()
    txt2 = txtfile2.read()
    txtfile1.close()
    txtfile2.close()

    txtstrip1 = stripPunct(txt1)
    txtstrip2 = stripPunct(txt2)
    seq1 = Seq(txtstrip1)
    seq2 = Seq(txtstrip2)
    rec1 = SeqRecord(seq1,id="FILE_ONE")
    rec2 = SeqRecord(seq2,id="FILE_TWO")
    out1 = open(".tmp1.fasta", "w")
    out2 = open(".tmp2.fasta", "w")
    SeqIO.write(rec1, out1, "fasta")
    SeqIO.write(rec2, out2, "fasta")




if __name__ == "__main__":
    main()


Here is what a matching alignment looks like:


My use case was slightly different, and I was comparing between two different but related manuscripts we'd written. For your purpose, you'll want to find a multiple sequence alignment package, since you'll want to find matches other than the best match (which would just be the entire document since you are comparing a document to itself).