Cite Unseen
Web Search • Sequence Alignment • Natural Language Processing
Align Like a Protein
Sequence alignment is a common problem in computational biology that has many similarities to challenges in natural language processing.
Smith-Waterman • local alignment • dynamic programming
Spot the Copy
To illustrate the function of each step, a simple example of plagiarism from Wikipedia is used.
Wikipedia original • paraphrased copy • three-word phrases
Break It Down
Cite Unseen detects plagiarism by breaking a submitted document down into short phrases (n-grams) and passing these phrases through a designated search engine.
Unicode segmentation • overlapping trigrams • hash set
Ask the Web
Therefore, most n-grams are rare and if two unrelated documents are compared, they should share relatively few n-grams between them.
When searching for more common n-grams, a plagiarized source may not fall within the first ten, or even fifty search results for that n-gram.
A few phrases everywhere • most phrases rare • ten results per query
Read the Snippets
As each individual search result is processed, Cite Unseen also analyzes the summary text for additional matches.
This summary text is used by Cite Unseen to overcome the limitations of locating common n-grams in search results.
Keyword in context • O(1) hash lookups • first ten results only
Score the Runs
Any n-gram in the submitted document that matches with a particular URL is represented by a positive weight value, while any n-gram that does not match with a particular URL is represented by a negative weight value.
As position information for matched n-grams in the source URL is not known, any break in a match sequence with the submitted document can only be seen as a gap.
+1 match • −1 gap • + (n − 1) for words
Keep the Sum
Finding the subarray of highest net value within an array of values is known as the “maximum subarray problem” and is done quite easily in linear time using Kadane’s algorithm (Bentley, 1984).
Cite Unseen expands on Kadane’s algorithm to locate all significant word sequences for a given URL.
Running total • reset below zero • linear time
Run It Again
It is necessary to run the algorithm repeatedly until all significant subarrays are found.
Thus, subarrays can be missed after a max score has already been found but prior to reaching a point where current drops below zero.
Skip known subarrays • 2ℓ − 1 steps at worst • still O(ℓ)
Flag the Source
Displaying the copied text in the context of the original source provides a convenient method for the user to verify that the copied text came from a source of interest and helps in quickly eliminating false positive matches.
Scoring threshold 15 • highlighted by source • the original in context
Show the Evidence
While plagiarism can be identified with great success programmatically, it ultimately requires a human eye to make any final determinations.
Online tests • trigrams • sequence score 15
Read the thesis↗github.com/0xBrsm/CiteUnseen↗brsm.dev↗| Stage | Precision | Recall | F1 |
|---|