Читать форум. Этот вопрос уже
обсуждался и не раз.
Да нет, форум переиндексируется регулярно, раз в день. Что-то не так с обработкой предлога "на" - он где-то выпадает, а поиск по умолчанию идет по "AND". Подправил, до выяснения причины выпадания.
Ну и намутил...
echo preg_replace ("/(<a.+?href.*?\=).+?(>.+?<\/a>)/", "\$1$replacement\$2", $text);
Не совсем понятно, что на что нужно поменять и по какому алгоритму.
$text = "something <a href=http://something.com>Something text</a>";
while ($text=~s/<a.+?href\=(.+?)>(.+?)<\/a>//i)
{
my ($url, $description) = ($1, $2);
print "$url => $description\n";
}
Присоединяюсь! С днем рождения!
Сложность задачи я прекрасно представляю. Рассчитать близости каждого объекта каждому задача, конечно, фантастическая, но кому сейчас легко. :)
Кое-что я пробовал сделать, что-то получилось, что-то нет. В общем-то, у меня была возможность создать подобную систему, но числиться в соавторах докторской и тянуть все на себе у меня особого желания не было.
Думаю, в том, что одна и та же морфологическая лексема может иметь бесконечное количество лексических значений, в зависимости от контекста, не говоря уже о словосочетаниях. Поэтому сразу же у Вас и возник вопрос о глобальности моей модели - в ней нет конечных условий, а каких либо ограничений априори я не задаю.
Но никто ведь не мешает задать граничные условия, например, определив коррелируемость различных термов друг с другом с пределах связанных фрагментов текста.
Я описал свои субъективные представления о данной проблеме. Но ведь
изначально правильная объемная модель здесь неизвестна, не так ли?
Вот-вот :) Вообще на подобную нечеткую формулировку обычно бывают такие же нечеткие ответы. Как у Райкина: "они пытались нас поставить в тупик своими вопросами, но мы поставили их в тупик своими ответами" :)
Вот содержательно и сформулируйте - какие задачи должны решать подобные утилиты?
Что ж, я не виноват, Вы сами напросились :) Для неподготовленного читателя все это, скорее всего, будет восприниматься как бред, но что поделаешь, тема очень специфическая.
Я буду использовать терминологию, принятую в прикладном анализе данных, и опираться на понятия объекта и его свойства (описания или признаки) и гипотезу компактности.
В основе гипотезы компактности положена идея сжатия данных, состоящая в том, что если найден способ сжатого описания множества объектов, то получены эмпирические закономерности, существующие между объектами, а значит и сходство между ними. Соответственно, чем сильнее удается сжать данные, тем это сходство больше.
Для того, чтобы можно было использовать гипотезу компактности, используется специальная таблица объект-свойство (ТОС), содержащая описания объектов в качестве строк и признаки этих объектов в качестве столбцов. Таким образом, реальные объекты заменяются специальным описанием - вектор-строкой ТОС, в результате чего создается образ каждого объекта в пространстве признаков.
Согласно Гипотезе, объекты можно считать похожими, если они находятся рядом в этом пространстве.
Ну, это все, естественно, чистая теория. Попробую привести к этой гипотезе Ваши исследования, направленные на извлечение наиболее важных терминов из текстов, и свести вместе две различных области науки. :)
Итак, Вы оперируете понятием лексические цепочки, которые складываются из повторений, синонимов, итераций и тематически связанных термов. Однако, по причине того, что каждый терм может быть включен в любую лексическую цепочку, имея при этом различное лексическое значение, такую цепочку нельзя собирать в отрыве от контекста анализируемого фрагмента текста.
Поэтому в этом месте Вы, в лучших традициях ООП, используете абстракцию, то есть отбираете только те свойства объектов, которые представляют интерес - подключаете тезаурус, заточенный на политических и социологических документах. Кое-кто для этого использует подмножество WordNet, чтобы объединить термы с одним и тем же смыслом. С точки же зрения Гипотезы Вы задаете начальные расстояния между термами и определяете их тематическую связность.
В результате образуется пространство признаков, а близкие термы объединяются в лексические цепочки. Самое интересное, что в эти цепочки включаются и названия самого объекта, который они описывают (по-Вашему, макроконцепции).
Так как любой текст базируется на отношениях между различными объектами, то их и нужно рассчитывать. Если формализовать связанные с каждым объектом лексические цепочки, например, оценив состав термов в них, то теоретически можно найти "расстояние" между ними и определить меру сходства каждого объекта. Похожие объекты будут составлять тезаурус предметной области, какой - будет понятно по названиям макроконцепций, содержащихся в лексических цепочках. :)
Можно использовать стемминг
портера