![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 09.05.2008
Сообщений: 8
|
![]()
Задача такая - есть 2 списка слов.
Список длинных словосочетаний http://img166.imageshack.us/img166/9912/93541991vg9.jpg Список слов и коротких словосочетаний http://img403.imageshack.us/img403/5305/88241488du9.jpg Нужно брать каждое слово из второго списка и выбирать словосочетания из первого списка, его содержащие, чтобы в результате получилось что-то типа такого http://img403.imageshack.us/img403/1412/79250610bs1.jpg Оранжевым выделены слова, по которым велся поиск. Я делал фильтрацию вручную через закладку Data, пункт Filter в 2007 экселе. Возможно как-то автоматизировать процесс, чтобы бралось каждое слово по очереди из второго списка, искало словосочетания в первом списке и сохранялись результаты в таком виде как на странице результатов? При этом необходима возможность указывать слова фильтры, которые бы не попадали бы в список результов даже если в словосочетании из первого списка содержится искомая фраза. Например есть фраза мужская одеждая Есть словосочетания, которые мы будем фильтровать хорошая мужская одежда плохая мужская одежда качестванная мужская одежда Нужно сделать так чтобы при включении слова фильтра плохая словосочетание - плохая мужская одежда не попадала в результаты, несмотря на то что оно содержит искомую фразу мужская одежда В архиве пример того, что хотелось бы получить. sample.rar Буду очень благодарен за помощь. |
![]() |
![]() |
#2 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Попробовал решить Вашу задачу. Столкнулся вот с какими проблемами:
1) Например, первое же слово во второй таблице (ringtone) встречается в очень большом количестве словосочетаний первой таблицы. В результате уже после поиска совпадений первого слова получаем огромный столбец. И т.д. 2) Было бы все красиво, если искать совпадения по словосочетанию целиком. Иначе - приходится брать первое слово - искать все, что содержит его, затем, из того, что нашли - отбирать по второму слову и т.д. Это о-очень долго. Поясню. Проводим поиск словосочетания "mosquito ringtone". Если искать полностью, то в результат не попадет словосочетание "17000 hz mosquito cell phone ringtone", т.к. слова в искомом словосочетании разделены другими словами. При поиске "целиком" - время работы моей процедуры (на "неплохом" компьютере) около 10 сек. При поиске по п.2 - не дождался. Урезал Вашу таблицу в 4 раза - получил время 4 мин. Прокомментируйте п.п.1 и 2. Какой вариант устроит? С фильтром проблем нет, за исключением вопроса как вводить (или где брать) слова для фильтра?
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
#3 | |
Форумчанин
Регистрация: 06.03.2008
Сообщений: 352
|
![]() Цитата:
А вот, например, словосочетание (из одного слова) ringtones второй таблицы встречается в 416 словосочетаниях второй же таблицы. Зачем, интересно, эти 416 словосочетаний нужны? |
|
![]() |
![]() |
#4 | |
Регистрация: 09.05.2008
Сообщений: 8
|
![]() Цитата:
1. Думаю если не использовать слова из второго списка, а только словосочетания - то эта проблема отпадает. Такой вариант подойдет. 2. Почему так происходит? Когда ищу вручную через Data - Filter - Contains ( английская версия у меня) и ввожу слова - то результат моментально выдается. Конечно очень хорошо было бы, если бы искались фразы, которые содержат искомую фразу в любом виде, в том числе разделенную другими словами, как в вашем примере с 17000 hz mosquito cell phone ringtone. Слова-фильтры будут указыватся вручную, так что можно сделать чтобы просто указывались ячейки куда их буду вбивать или как-то так. |
|
![]() |
![]() |
#5 | |
Регистрация: 09.05.2008
Сообщений: 8
|
![]() Цитата:
Например если запрос "Зимняя куртка Nike" - то объявление с заголовком "Распродажа зимних курток Nike" естественно более заинтересует чем объявление с заголовком "Одежда". Такая разбивка ключевых слов делается для более точного соответствия запроса к объявлению. |
|
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 26.11.2006
Сообщений: 584
|
![]()
В примере http://slil.ru/25790416
В ячейке C2 выбираем нужное словосочетание mosquito ringtone ringtone встречается 17542 раза mosquito встречается 3 раза mosquito ringtone встречается 2 раза ringtone и mosquito вместе, в любом порядке или разделенные словами встречаются 3 раза: buy mosquito ringtone listen to the mosquito ringtone 17000 hz mosquito cell phone ringtone Сколько раз встречается (СЧЁТЗ) можно увидеть в ячейке A2. Если мы хотим увидеть словосочетания, в которых встречаются все слова из выбранного словосочетания в С2, то мы просто выбираем в A4 фильтр= кол-во_слов в словочетании. В моем примере =2 Также можно выбирать в A4 любое кол-во слов из словосочетания,которые есть в списке или выбирать 1(единицу) под нужными словами. P.S. Еще раз спасибо за функцию выдергивания слов на VBA от SAS888 Здесь нашёл еще одну Последний раз редактировалось ZORRO2005; 15.05.2008 в 03:36. |
![]() |
![]() |
#7 |
Регистрация: 09.05.2008
Сообщений: 8
|
![]()
Zorro в твоей табличке возможен автоматический поиск по всем словам из второго списка и группировка результатов ?
Последний раз редактировалось John Pepper; 15.05.2008 в 19:35. |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
автоматизация в столовой | Egavga | Microsoft Office Excel | 1 | 15.07.2008 14:02 |
Автоматизация юр фирмы | NeZамужем | Помощь студентам | 1 | 27.03.2008 01:30 |
Автоматизация учёта в библиотеке | ivp88 | БД в Delphi | 2 | 09.11.2007 15:37 |
Ребят, помогите прогу сделать для авто-группировки таблиц dbf | HIC | БД в Delphi | 6 | 22.06.2007 14:37 |