Серьезный вопрос про строки

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Серьезный вопрос про строки

Сообщение |kerish| » 20.04.2005 (Ср) 1:19

Даны 2 похожие строки.

К примеру:

1) "Вася пошел собирать грибы."
2) "Пошел вчера Вася грибы собирать."

Внимание, вопрос:
Как выяснить, что они похожи.
Не нужно на сколько процентов, а просто примерно схожи или нет.

Вопрос сложный, но может есть варианты?

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 20.04.2005 (Ср) 1:27

Разделить строку на слова. Потом сравнивать. Нужно составить страницу шаблонов лексики и под такие шаблоны подставить имеющиеся слова. Совпало на 70% и более - значит то.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 20.04.2005 (Ср) 1:33

Поясню: под шаблонами лексики я имел ввиду возможные вариации предложений с одними и теми же словами. Напр. %1 %3 %5 %6; %6 %3 %5 %2 %1; ну и т.д. Если не ошибаюсь, то именно так работают современные подобия ИИ, например тот же "Болтун".

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 20.04.2005 (Ср) 1:48

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

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 20.04.2005 (Ср) 2:01

|kerish|
А почему тебя не устроит нахождение(в процентах) количества слов первого предложения, присутствующего во втором?
А при сравнении будешь задавать процентную точность, при каком количестве процентов считать фразы схожими....
А вообще, "схожеть" - это довольно размытое понятие... Я вон набью в случайном порядке слова из фразы 1, и компьютер, посчтитает, что этот набор слов - схожая фраза....... А по смыслу сравнивать это..... :roll: Тяжеловато....
А тебе для чего? Тут, ИМХО, от нужд зависит....
Может хватить первого варианта, с процентами, а может и нет....

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 20.04.2005 (Ср) 2:38

С процентами тоже прокатит...

marvan
Бывалый
Бывалый
 
Сообщения: 269
Зарегистрирован: 22.06.2004 (Вт) 13:26
Откуда: Москва

Сообщение marvan » 20.04.2005 (Ср) 8:51

2 kerish
тебе сюда. Здесь есть статьи по теме.
а вообще два варианта:
простой - парсить строку по спец символам и работать с двумя массивами слов
сложный - абстагироваться от того, что надо сравнить два текста и искать схожесть двух байтовых последовательностей. И ещё, не плохо, задать разный вес для байтов, соответствующих заглавным и строчным буквам, цифрам и символам.

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 20.04.2005 (Ср) 13:47

marvan
Это в итоге привидет к одному и тому же. К простому поиску количества частей(не будем говорить "слов", можно и слогов, букв и т.д. :wink: ) первой строки, присутствующей во второй.
А это не всегда устраивает - пример я уже показал: берем первую строку, переставляем слова до полной бессмыслицы, скармливаем программе - она с радостью сообщает о похожести........

Другое дело, сравнивать по смыслу.... Но это уже пересекается с ИИ чата, который так рьяно предлагал BV :)

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 20.04.2005 (Ср) 15:14

2 Ariman

Да :lol: ...
Ну так вот :) Начнём! На |kerish| будет лежать разработка общения ИИ...

marvan
Бывалый
Бывалый
 
Сообщения: 269
Зарегистрирован: 22.06.2004 (Вт) 13:26
Откуда: Москва

Сообщение marvan » 20.04.2005 (Ср) 16:36

2 BV
Если предметная область, к которой относятся анализируемые строки не велика - можно и по смыслу.
Но всё равно придётся париться с морфологическим и синтаксическим анализом.

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 20.04.2005 (Ср) 16:43

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

Более того, получается, что фразы:
1) "Вася пошел собирать грибы."
2) "Вася НЕ пошел собирать грибы."
практически совпадают по словам, но имеют абсолютно противоположный смысл...
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 20.04.2005 (Ср) 16:45

Вопросы смысловой и лексической схожести диаметрально противоположны. Что нужно аффтару? Чтобы сравнение строк

1) "Вася пошел собирать грибы."
2) "Вася НЕ пошел собирать грибы."

давало около 100% или около 0%?

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 21.04.2005 (Чт) 14:18

Что-то меня наводит на мысль о первом. Потому что второе - просто архисложная задача.
Последний раз редактировалось xolod 21.04.2005 (Чт) 15:56, всего редактировалось 1 раз.

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 21.04.2005 (Чт) 14:42

xolod писал(а):Что-то меня наводит на мысль о втором. Потому что первое - просто архисложная задача.
А меня что-то наводит на мысль, что ты первое со вторым перепутал :)

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 21.04.2005 (Чт) 15:56

Есть такое дело ;)

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

Sasha_karasov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 436
Зарегистрирован: 03.03.2005 (Чт) 19:38
Откуда: ua.dp

Сообщение Sasha_karasov » 24.04.2005 (Вс) 2:17

Глянь на задачниках по информатике (олимпиадные задачи).
Я просто с подобной задачей встречался где-то.
Удачи!
С уважением, Алексадр.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 139

    TopList