Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как определить схожесть текстов? 
:(
    Опции темы
SoWa
Дата 21.11.2006, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



За контрольные суммы не согласен  smile 

А вот далее у тебя написано мое мнение строгим языком.

Это сообщение отредактировал(а) SoWa - 21.11.2006, 11:35


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
esperant0
Дата 21.11.2006, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 714
Регистрация: 20.5.2005

Репутация: 4
Всего: 14



Цитата(Fin @ 21.11.2006,  09:57)
Есть способ для быстрого определения 100 процентной схожести. Для каждого текста считаются контрольные суммы, например по методу CRC32. И затем по базе уже производить поиск всех текстов с равной контрольной суммой и равной длиной. И уже над этими записями делать дополнительную проверку.

Для анализа текстов на процент меньшей схожести. Я думаю нужно разбивать текст на логические лексемы (слова) И делать словарь, в каких текстах в базе данные лексемы встречаются. Для английского языка это будет практически легко сделать. Для русского намного сложнее: так как иногда форма слова очень сильно изменяется в зависимости от склонений и т.п.

первый раз слышу про контрольную сумму процента схожести.


--------------------
 
 Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer 

Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором  а затем стерто и которое он - пользователь не мог видеть. 
PM MAIL   Вверх
SoWa
Дата 21.11.2006, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Fin
Ага, а еще не будем забывать, что CRC для различных входных данных разная. И как сравнивать будем?
С тем же успехом MD5 захешируем и будем довольны, а?


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Fin
Дата 21.11.2006, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


Профиль
Группа: Участник
Сообщений: 687
Регистрация: 4.1.2006

Репутация: 1
Всего: 10



SoWa и esperant0 иногда думать надо, прежде чем осуждать. Контрольная сумма это  Хэш функция, по которой можно определить 100 процентно схожие тексты. Да бывают коллизии. Но уже не нужно просматривать полностью всю базу, а только те тексты, у которых совпали Хэш. Чтобы не было расхождений Хэшов, например из-за лишнего пробела. Можно текст приводить к единому стилю. Например 1 пробел между словами , все буквы заглавные, никаких переносов строк. Для этого приведенного текста считается Хэш. Но в базе можно хранить текст уже в произвольном виде. 



--------------------
Пролетал мимо.
PM MAIL   Вверх
SoWa
Дата 21.11.2006, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Но смотри, хеш двух таких текстов ведь будет разным:
Код

СОВА КУШАЕТ МЕДВЕД
---
МЕДВЕД КУШАЕТ СОВА

А смысл разный: Сова кушает блюдо под названием "МЕДВЕД"
А Медвед кушает блюдо под названием "СОВА"
По количественной оцеке- текты одинаковы.
По смысловой- разные.
По хешу- черти-что вообще.

PS Мы не осуждаем, мы опровергаем smile

Кстати, esperant0, я был не прав, говоря о сложностях алгоритмов. У моего алгоритма сложность выше, чем у брутфорса. Ибо мой алгоритм- то же брутфорс, но не по тексту, а по логическим высказываниям. Т.е. я должен перебрать, а по мимо этого еще и высказывания построить(тем же брутфорсом).
Но все равно останусь при мнении, что мой алгоритм определит схожесть точнее.

Это сообщение отредактировал(а) SoWa - 21.11.2006, 14:46


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
maxim1000
Дата 21.11.2006, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



кстати, хеш можно использовать и для того, чтобы определить, не "навыдирали" ли части анализируемой статьи из статей в базе - разделить статью на блоки (можно с перекрытием) выбранного размера и записать их хеши...

а если по смыслу...

можно ещё попробовать посмотреть статистику попарных (или более "арных") появлений слов в одном предложении - грубая аппроксимация (если вообще аппроксимация) связей между понятиями, используемыми в статье...


--------------------
qqq
PM WWW   Вверх
SoWa
Дата 21.11.2006, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Я был бы благодарен, если бы ты объяснил, что такое аппроксимация. Я бы подумал над твоим предложением.
Звучит дельно smile


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
maxim1000
Дата 21.11.2006, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



Цитата(SoWa @  21.11.2006,  13:48 Найти цитируемый пост)
аппроксимация

приближение
в данном случае я имел в виду, что эта статистика может нести полезную информацию о связях между понятиями и (если уж совсем оптимистами быть) всё это будет представлено в практически прямой форме: пара слов и степень связанности между ними

Это сообщение отредактировал(а) maxim1000 - 21.11.2006, 15:26


--------------------
qqq
PM WWW   Вверх
SoWa
Дата 21.11.2006, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Ясно. Тогда мне кажется, что чем больше слов, тем меньше они связаны, если рассматривать аппроксимацию.
Рассматривать пары или тройки- самый оптимальный вариант.


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
maxim1000
Дата 21.11.2006, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



хороший вариант был бы выделить тройку <понятие1> <тип связи> <понятие2>


--------------------
qqq
PM WWW   Вверх
SoWa
Дата 21.11.2006, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



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

А так, было предложение сделать неполный словарь и дополнять его во время работы.


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
maxim1000
Дата 21.11.2006, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



когда я предлагал, то имел в виду без словарика
т.е., конечно, мысли о разделении слов по частям речи были, но в качестве предварительного варианта - можно без словаря вообще

то, что я предложил, - не метод решения задачи
это всего лишь какие-то характеристики, которые можно померять, и которые могут подсказать, в какую сторону двигаться

Добавлено @ 19:53 
что касается дополняемого словарика, возникнут проблемы с автоматическим отнесением нового слова к какой-либо части речи

Добавлено @ 19:54 
так что я бы сначала сделал "по-тупому" для всех слов без разбора (включая союзы smile), а потом бы уже смотрел, в какую сторону двигаться, на основании экспериментальных данных


--------------------
qqq
PM WWW   Вверх
SoWa
Дата 21.11.2006, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Хм. Как без словарика можно определить такую структуру?
Цитата(maxim1000 @  21.11.2006,  16:38 Найти цитируемый пост)
<понятие1> <тип связи> <понятие2>

Не понимаю.

Цитата(maxim1000 @  21.11.2006,  19:51 Найти цитируемый пост)
что касается дополняемого словарика, возникнут проблемы с автоматическим отнесением нового слова к какой-либо части речи

Это легко. Слово встретил незнакомое- выдаст запрос- это что: существительное, глагол, наречие, др...
О! Кстати, можно попробовать научить прогу различать существительные и глаголы. Тогда как определить структуру- понятно.


Цитата(maxim1000 @  21.11.2006,  19:51 Найти цитируемый пост)
так что я бы сначала сделал "по-тупому" для всех слов без разбора (включая союзы ), а потом бы уже смотрел, в какую сторону двигаться, на основании экспериментальных данных

Т.е. составлял бы структуры аппроксимации попарных и более "арных" слов и сравнивал?
Для начала и это прокатит. Но уж совсем не оптимизировано.

Во! Придумал. Берем такие структуры. Хешируем. Составляем текст из них. Гоним сравнение таких текстов брутфорсом. Так можно реализовать твое последнее предложение. А можно еще разок выделить структуры smile Но это я уже только мечтаю. Реализация- понятна. Вот только как работать будет- не знаю smile

Это сообщение отредактировал(а) SoWa - 21.11.2006, 20:07


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
podval
Дата 21.11.2006, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Где я? Кто я?
****


Профиль
Группа: Экс. модератор
Сообщений: 3094
Регистрация: 25.3.2002
Где: СПб

Репутация: 18
Всего: 62



Превед велосипедистам! smile

Где научный подход?


Wowa
Почитай здесь: http://www.smolensk.ru/user/sgma/MMORPH/N-...eev/andreev.htm

У тебя подход, судя по задаче, должен быть похожим. Если, конечно, речь идет о текстах произвольного вида (т.е. пока не затрагиваются вопросы БД, где вид записей строго оговорен). Отталкиваемся от задачи классификации!
PM WWW ICQ   Вверх
sergejzr
Дата 21.11.2006, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 4
Всего: 360



Я бы упростил схему по стандартному методу, который уже много раз использовал в различных задачах. (Как уже писал в теме про антимат smile )

1) Нормализация текста
2) Сравнение

Теперь надо "развернуть" этото алгоритм по нашей задаче.
1а) Стеммер, в нижний регистр, елиминация всего, кроме слов, выкидываем предлоги итд.
1б)тезаури (маппинг синонимов);
1в) Создание общего вектора
2) Подсчёт дистанции Hamming'a

Этого должно хватить в 90% случаев. Я сам удивился, когда курсач писал и похожим методом практически точно классифицировал около 500 документов (кстати идея лично моя smile )

Пример:
т1: Мама мыла раму.
т2: Маша мыла пол.
т3: Мама купила мыло.
т4: Папа чистил паркет.

1а)
мам мыл рам
маш мыл пол
мам куп мыл
пап чист паркет

1б)
паркет - пол
мыл - чист
род - мам,пап //родители

1в) //1, если слово присутствует в тексте, 0, если нет

      род мыл рам маш пол куп

т1: 1      1      1      0     0     0  //Мама мыла раму.
т2: 0      1      0      0     1     0  //Маша мыла пол.
т3: 1      1      0      0     0     1  //Мама купила мыло.
т4: 1      1      0      0     1     0  //Папа чистил паркет.

2) //Дистанция - количество позиций, где вектора не совпадают
Дистанция(т1,т2)=3
Дистанция(т1,т3)=2
Дистанция(т1,т4)=2
Дистанция(т2,т3)=3
Дистанция(т2,т4)=1
Дистанция(т3,т4)=2

Чем больше дистанция, тем больше тексты отличаются. 
Этим алгоритмом можно и два текста сравнивать. Если сравниваешь много - то получается почти алгоритм, предложенный подвалом.
Как видим, даже при таком небольшом количестве слов, определяет неплохо.
И, как видим, большая ответственность приходится на тезаури. Но тут ведь многое от контекста зависит. ("Ягуар" - машина, или "Ягуар" - животное)

Цитата(podval @  21.11.2006,  19:05 Найти цитируемый пост)
У тебя подход, судя по задаче, должен быть похожим.

ИМХО не совсем похож.. Кластеризация и классификация текстов это слишком круто здесь. smile Хотя статья интересная.
Но тут текстов не так много и функции дискриминации попроще smile





--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Страницы: (4) Все 1 [2] 3 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0982 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.