Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

сравнение коротких фрагментов текста, анализ текста

2.5K
01 июня 2007 года
murat
19 / / 25.02.2004
У меня вот такой случай
есть один фрагмент текста(1-5 слов) назовем его "запрос"
и есть некоторое структурированное множество примерно таких же фрагментов
предложите быстрый метод чтобы найти самый "похожий" на запрос фрагмент из множества
361
03 июня 2007 года
Odissey_
661 / / 19.09.2006
Помоему обычная задача на НОП.
Берешь свой запрос, и прогоняешь его на НОП (наибольшая общая подпоследовательность) со своим словарем. Определяешь порог похожести (ну к примеру 70% от исходного фрагмента, при фразе из 10 букв длина общей подпоследовательности должна быть более 6). Все фрагменты из словаря удовлетворяющие этому условию "похожи" на запрос.
2.5K
03 июня 2007 года
murat
19 / / 25.02.2004
Цитата: Odissey_
Помоему обычная задача на НОП.
Берешь свой запрос, и прогоняешь его на НОП (наибольшая общая подпоследовательность) со своим словарем. Определяешь порог похожести (ну к примеру 70% от исходного фрагмента, при фразе из 10 букв длина общей подпоследовательности должна быть более 6). Все фрагменты из словаря удовлетворяющие этому условию "похожи" на запрос.


но ведь НОП не поможет сравнить строки с точки зрения близости слов т.е. когда нет четкого совпадения последовательностей но есть похожесть

например запрос "большая жопа"

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

будут одинаковы с точки зрения НОП

361
04 июня 2007 года
Odissey_
661 / / 19.09.2006
Да НОП в таком случае работать не будет,да и вообщем идея с НОП теперь мне кажется не очень удачной =), припоминается еще порядок слов.

Кстати, вы сами, в приведенном вами примере, можете ответить что наиболее "похоже" на запрос?
Цитата:
но ведь НОП не поможет сравнить строки с точки зрения близости слов т.е. когда нет четкого совпадения последовательностей но есть похожесть


Четкое совпадение тоже недаст "похожести".
Здесь все зависит от контекста. А вот как определять контекст на таких малых размерах текста? В мою дилетантскую голову приходит такой вариант - разбиваешь свои готовый фразы по темам (война, политика, общество и т.д.), готовишь словарь где, каждое слово принадлижит к определенной тематики - пуля = война (90%), сапоги = война (50%). Словарь можно сделать на основе анализа текста с уже предопределенной тематикой. Далее смотришь какие слова у тебя в запросе, получается к примеру - общество - 45%, война - 25% и т.д.
Ну и на основании этого уже и ставишь соответствие. Но это так, мысли вслух.
Если реально смотреть на вещи, погляди статьи конкурсантов Яндекса на данную тему, например здесь, а особенно списки литературы в каждой. Есть еще вот книженция с запросом на фундаментальность здесь [eng].
Можешь поискать еще такую тема как "когнитивный поиск", там вообщем что то похожее.

5
04 июня 2007 года
hardcase
4.5K / / 09.08.2005
Возможно поможет вот эта статья.
350
05 июня 2007 года
cheburator
589 / / 01.06.2006
Цитата: murat
У меня вот такой случай
есть один фрагмент текста(1-5 слов) назовем его "запрос"
и есть некоторое структурированное множество примерно таких же фрагментов
предложите быстрый метод чтобы найти самый "похожий" на запрос фрагмент из множества


Просто определись с понятием "похожий". Ползадачи тем самым решишь.

63
09 июня 2007 года
Zorkus
2.6K / / 04.11.2006
Цитата: cheburator
Просто определись с понятием "похожий". Ползадачи тем самым решишь.


Здесь это самое основное. Из того примера, что привел автор,понятно, что требуется не синтаксический анализ текста, а в некоторой степени семантический (в примере 2 программа должна распознать, что в предложенном фрагменте элементы запроса не являются частью одной логической конструкции предложения?). Реализовать именно такой вариант крайне сложно - учитывая, что как ты будешь определять логические единицы в произвольном тексте (полагая его осмысленным), и потом анализировать, какие из токенов запроса имеют "больший приоритет" при анализе?
В твоем случае Одиссей прав, скорей тебе подойдет технология, схожая с используемой в интернет - поисковиках.

4.6K
10 июня 2007 года
Tokolist
268 / / 22.03.2007
Цитата: murat
У меня вот такой случай
есть один фрагмент текста(1-5 слов) назовем его "запрос"
и есть некоторое структурированное множество примерно таких же фрагментов
предложите быстрый метод чтобы найти самый "похожий" на запрос фрагмент из множества



Надо использовать функцию Левенштейна
http://ru.wikipedia.org/wiki/Расстояние_Левенштейна

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог