http://www.perlmonks.org?node_id=1009894


in reply to Re: Is it possible to find the matching words and the percentage of matching words between two texts?
in thread Is it possible to find the matching words and the percentage of matching words between two texts?

Hi rovf

Thanks for your quick reply. I need case 2. As a teacher, I want to find out to what extent any two students in my class have copied each other's assignment. Majority of the students (out of 30) are sincere and hard working. But it appears to me that nearly four students often plagiarize their written assignments i.e. I think they copy from others' assignments without visiting library or consulting textbooks/research papers. That is why I need a working perl script which can detect the degree of plagiarism adopted by the doubtful students. This is a very personal case. I just want to tell the students that I am not satisfied with their assignments should I detect more than 80% matched words. I don't know whether perl script can solve this problem faced by me. I want to make those (four) students more hard-working not only in studies but also in other spheres of life.

Regards

Replies are listed 'Best First'.
Re^3: Is it possible to find the matching words and the percentage of matching words between two texts?
by uncoolbob (Novice) on Dec 21, 2012 at 11:52 UTC

    What you really need is to align the two texts with a "dynamic programming" algorithm. This is a common task in bioinformatics - but the atomic unit there is a single character - and there is a small number of expected characters (usually 4 or 20). You would have to hack it a fair bit to work with an array of words from an essentially unlimited "character set" - but I haven't looked in detail at the code:

    Bio::Tools::dpAlign

    For quick and dirty I would extend the hash comparison approach to handle words, word pairs, triplets and maybe more. Also maybe keep searching CPAN maybe there's something else out there.

      Hi uncoolbob,

      Thanks for providing information about Bio::Tools.

      With regards