DEV Community

loading...

Results of Various Tests of K-Nearest-Neighbour to Recognise a Paraphrased Statement

luciangreen profile image Lucian Green ・5 min read

Alt Text

I wanted an algorithm that could recognise a paraphrased version of a statement.
This was part of my Essay Helper GitHub Repository, which recognises reused statements while questioning the user to write a humanities-style essay.

The point of paragraph 2 is to introduce KNNs... I found them after querying "Prolog machine learning" on YouTube. K-Nearest-Neighbour was the successful candidate to select the best answer using machine learning while not sacrificing rule writing with the result. (They produce a list of results, i.e. 0 for exact match and increase with "greater distance" away from this.)

In the tests, I wanted to test for success in finding that a statement contains a paraphrased statement.

First, Control: this test should return true if the statement is exactly the paraphrased statement:

?- Phrase="I'd like that very much",downcase_and_split(Phrase,Key_Phrase),get_string("",either,one,"",Key_Phrase,String).

|: I'd like that very much
Attempt 1
[found,[i,d,like,that,very,much],[i]]
Success

Good! Now on to the tests.

I tested for paraphrased statements in 6 word statements (surrounded by other words), where the replacement, addition or deletion of word(s) occurred at the start, middle or end of the 6 word paraphrased version of the statements.

Replacing 1 word with 1 word

  • Find "I'd like that very much." in "It goes unsaid that you'd like that very much my dear."
    [found,[i,d,like,that,very,much],[you,d,like,that,very,much]]

  • Find "I'd like that very much." in "It goes unsaid that I'd like those very much my dear."
    [found,[i,d,like,that,very,much],[i]]

  • Find "I'd like that very much." in "It goes unsaid that I'd like that very happily my dear."
    [found,[i,d,like,that,very,much],[i]]

Replacing 1 word with 2 words

  • Find "I'd like that very much." in "It goes unsaid that you will like that very much my dear."
    Failed

  • Find "I'd like that very much." in "It goes unsaid that I'd like those greatly much my dear."
    [found,[i,d,like,that,very,much],[i]]

  • Find "I'd like that very much." in "It goes unsaid that I'd like that very happily most dear."
    [found,[i,d,like,that,very,much],[i]]

Replacing 2 words with 1 word

  • Find "I'd like that very much." in "It goes unsaid that you like that very much my dear."
    Failed

  • Find "I'd like that very much." in "It goes unsaid that I'd like those much my dear."
    [found,[i,d,like,that,very,much],[i]]

  • Find "I'd like that very much." in "It goes unsaid that I'd like that very happily dear."
    [found,[i,d,like,that,very,much],[i]]

Adding 1 word

  • Find "I'd like that very much." in "It goes unsaid that nevertheless I'd like that very much my dear."
    [found,[i,d,like,that,very,much],[i]]

  • Find "I'd like that very much." in "It goes unsaid that I'd like that one very much my dear."
    [found,[i,d,like,that,very,much],[i]]

  • Find "I'd like that very much." in "It goes unsaid that I'd like that very much love my dear."
    [found,[i,d,like,that,very,much],[i]]

Adding 2 words

  • Find "I'd like that very much." in "It goes unsaid that in time I'd like that very much my dear."
    [found,[i,d,like,that,very,much],[i]]

  • Find "I'd like that very much." in "It goes unsaid that I'd like that one there very much my dear."
    [found,[i,d,like,that,very,much],[i]]

  • Find "I'd like that very much." in "It goes unsaid that I'd like that very much loved one my dear."
    [found,[i,d,like,that,very,much],[i]]

Deleting 1 word

  • Find "I'd like that very much." in "It goes unsaid that I like that very much my dear."
    [found,[i,d,like,that,very,much],[i]]

  • Find "I'd like that very much." in "It goes unsaid that I'd like very much my dear."
    [found,[i,d,like,that,very,much],[i]]

  • Find "I'd like that very much." in "It goes unsaid that I'd like that much my dear."
    [found,[i,d,like,that,very,much],[i]]

Deleting 2 words

  • Find "I'd like that very much." in "It goes unsaid that like that very much my dear."
    Failed

  • Find "I'd like that very much." in "It goes unsaid that I'd like much my dear."
    [found,[i,d,like,that,very,much],[i]]

  • Find "I'd like that very much." in "It goes unsaid that I'd like that my dear."
    [found,[i,d,like,that,very,much],[i]]

Combinations

Replacing 1 word with 1 word at start
and adding 2 words in middle

  • Find "I'd like that very much." in "It goes unsaid that you'd like, indubitably so, that very much my dear." Failed

Replacing 1 word with 1 word in middle
and adding 2 words at start

  • Find "I'd like that very much." in "It goes unsaid that in time I'd like those very much my dear." [found,[i,d,like,that,very,much],[i]]

Adding 1 word in middle and

Deleting 2 words at start

  • Find "I'd like that very much." in "It goes unsaid that like that, timely, very much my dear." Failed

Replacing 1 word with 2 words at start and
Deleting 1 word at end

  • Find "I'd like that very much." in "It goes unsaid that I definitely equally like that very my dear." [found,[i,d,like,that,very,much],[i]]

Replacing 1 word with 2 words at end,
adding 1 word at start and
deleting 2 words in middle

  • Find "I'd like that very much." in "It goes unsaid that timelily I'd like definitely so my dear." [found,[i,d,like,that,very,much],[i]]

Replacing 1 word with 2 words at start,
adding 1 word at middle and
deleting 2 words in end

  • Find "I'd like that very much." in "It goes unsaid that I definitely nonequally like that infinitesimally my dear." [found,[i,d,like,that,very,much],[i]]

In summary, the best result came from replacing the first word of the statement with another word. The failures came from doing these at the start:

  • replacing 1 word with 2 words
  • replacing 2 words with 1 word
  • deleting 2 words (but not always, as the combinations show).

See my GitHub Repository.

Photo by Ralph Dupoux (krezi-32471) FreeImages

Discussion (0)

pic
Editor guide