Алгоритмы схожести текста

Я работаю над Java-проектом, в котором мне нужно создать программу сопоставления текстов. Я хочу, чтобы он взял 2 текстовых документа, затем сравнил их друг с другом и получил сходство. Насколько они похожи друг на друга.

Позже я добавлю уже существующую базу данных, которая может находить синонимы для слов и просматривать текст, чтобы увидеть, не изменил ли один из авторов текстового документа только слова на другие синонимы, в то время как текст точно такой же. То же самое и с перемещением параграфов вверх или вниз. Насколько они похожи друг на друга.

Позже я добавлю уже существующую базу данных, которая может находить синонимы для слов и просматривать текст, чтобы увидеть, не изменил ли один из авторов текстового документа только слова на другие синонимы, в то время как текст точно такой же. То же самое и с перемещением параграфов вверх или вниз. Насколько они похожи друг на друга.

Позже я добавлю уже существующую базу данных, которая может находить синонимы для слов и просматривать текст, чтобы увидеть, не изменил ли один из авторов текстового документа только слова на другие синонимы, в то время как текст точно такой же. То же самое и с перемещением параграфов вверх или вниз. Да, поскольку это была программа плагаризма ...

Я хочу услышать от вас, люди, какие алгоритмы вы бы порекомендовали.

Я обнаружил сходство Левенштейна и Косинуса, посмотрев здесь и в других местах. Кажется, их обоих много упоминают. Расстояние Хэмминга - еще одно, о чем мне рассказал мой учитель.

У меня есть несколько вопросов, связанных с ними, так как я действительно не получаю Википедию. Может ли кто-нибудь объяснить мне эти вещи?

Левенштейн : Этот алгоритм изменен на подпрограмму, добавление и удаление слова и проверка того, насколько оно близко к другому слову в текстовом документе. Но как это можно использовать для всего текстового файла? Я вижу, как это можно использовать для слова, но не для предложения или всего текстового документа от одного к другому.

Косинус : Это ' s мера сходства между двумя векторами путем измерения косинуса угла между ними. Чего я здесь не понимаю, как два текста могут стать 2 векторами и как насчет слов / предложений в них?

Хэмминг : Это расстояние кажется лучше, чем у Левенштейна, но только на равных струнах. Почему это важно, когда два документа и даже предложения в них не являются двумя строками одинаковой длины?

Википедия должна иметь смысл, но это не так. Прошу прощения, если вопросы звучат слишком глупо, но это меня сбивает, и я думаю, что здесь есть люди, которые вполне способны объяснить это, так что даже новички в этой области могут это понять.

Спасибо за ваше время.

18
задан Chris Jester-Young 26 April 2011 в 17:29
поделиться