Страницы: 1
RSS
Синонимайзер, Возможно ли создать макрос синонимизации?
 
Время доброе.

Частенько посещаю эту планету и время от времени черпаю всякие полезности. И знания, и готовые решения.
Однако, ни разу ни встретил и намека на данную тему. А она бывает порой весьма актуальна и хлопотна.

Вот, к примеру, приходится работать с очень большим объемом документов из совершенно разных источников - производители, поставщики, заказчики и тд и тп. А в них, порой, десятки тысяч совершенно неадекватных наименований.
Сокращения: одно и то же слово или фраза, введены с категорически разными правилами. Например:
Автоматический выключатель дифференциального тока - авт.выкл.диф.т; автом. вык дифф. т.; диф авт....
Еще, встречаются слова с ошибками конвертации из PDF. А это, неправильно распознанные символы, убитыеили вставленные проб елы.
В общем, думаю ясно изложил.

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

Взял человечек, например, в работу подобный документ. По мере обработки нарывается на сокращение или неуместный символ, открывает лист базы синонимов и вносит обнаруженное непотребство в ячеечку из колонки А. А в соседнюю колонку вносит правильное значение и жмет кнопку "ЗАМЕНИТЬ". Поскольку, листов в книге может оказаться великое множество, то его спрашивают: - К какому листу применить? А он, тык в закладку листа и, вжик, все заменилось.

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

Другая полезняшка - в приведенных выше примерах видно, что сокращения пишутся порой без пробела после точки.И было бы полезно, при синонимизации заменять ее пробелом. А затем проверить, не оказалось ли в ячейке подвергнутой обработке лишних пробелов и по обнаружении таковых, убить.

Господа мастеры, не подумайте, что я хочу кого-то развести на бесплатное создание и предоставление в личное пользование ценного продукта. Если кому не слабо, можете за так его не отдавать, а громогласно заявить: Я ТАКОЕ СОТВОРИЛ И ХОЧУ ВОТ СТОЛЬКО ДЕНЕГ! И по идее, это будет правильно. Каждый в праве ценить свой труд или оценить свой продукт. Если босс субсидирует приобретение, охотно обзаведусь. Но так или иначе, у вас всегда окажется, что еще предложить. Вдруг, кому-то шибко надо, а он не подозревал, что такое в природе может быть.

Но однако, как вам задачка, а?
 
работа с текстом, ИМХО, в VBA (да и в любом наверно языке программирования) дело крайне тяжелое и не дающее 100% гарантию в правильности кода. Было дело написал я программку, которая числа, написанные текстом, переводит в само число (с учетом падежей естественно). И все бы хорошо, но например предложение "Один - главный бог скандинаво-германской мифологии" программа естественно переводила в "1 - главный бог скандинаво-германской мифологии" или напр. "Я люблю свою семью" в "Я люблю свою 7". К чему я это? ИМХО, данный синонимайзер написать нереально.
Учимся сами и помогаем другим...
 
ber$erk, +1
 
Цитата
ber$erk пишет:
мифологии" или напр. "Я люблю свою семью" в "Я люблю свою 7". К чему я это? ИМХО, данный синонимайзер написать нереально.
написать реально... работать со 100% точностью нет. Более реально сделать такое под определенную задачу. Почти не реально сделать универсальный вариант.
 
Возможно, я не достаточно ясно выразил мысль, по-тому как не узрел взаимосвязи с приведенным примером.
Касаемо чисел, ваш пример закономерен, к нему еще можно добавить пример просто -> про100.
Но я вел речь о сокращенных словах.

Гипотетически, есть лист - синонимайзер.
1.  В нем, в А1 вношу авт., в В1 вношу автомат
2.  Выделяю А1 и жму запуск макроса, мне выводится окно с запросом для ввода листа для применения макроса. Жму на вкладку с названием листа прайс1 и в окно подставляется =прайс1!, жму ОК! И на листе прайс1 происходит поиск и замена значения авт. на значение из =синонимайзер!В1
Данная процедура выполняется штатной функцией поиска и замены без ошибок.

Да, если в заменяемой значение будет внесено авт без точки, то из слова автомат получится автавтомамат Но это уже целиком зависит от самого пользователя. Если кто-то решить лечить мышьяком и мигрень и понос, это ведь не значит, что хладный труп следствие не качественного лекарства. Хотя и избавит, и от одного, и от другого. Одновременно.
 
Делал макрос для автозамены по списку. т.е. Вы выделяете "словарь" , а макрос делает поиск и замену по этому словарю.
http://pharmaprofi.ru/downloads/MyAddin.zip

кнопка: MultiChange
Пакетный поиск и замена. Необходимо указать диапазон со словарем (что на что менять) и диапазон где менять.
 
а если кто-то в "авт." сократил слово "автоматически" или "автобус" или "автор"?
Учимся сами и помогаем другим...
 
pharmaprofi, я имел в виду именно универсальный вариант, т.к. это сквозило по тексту ТС :-)
Учимся сами и помогаем другим...
 
pharmaprofi, cпасибо за ссылку, посмотрю когда время будет.

ber$erk, мне доподлинно известно, на php работает по принципу:
мама=мамочка,мамуля,мамусик,мамка,мать

В такой конструкции 1 вхождение заменяется 1 синонимом, 2-2, 3-3 и тд. Если вхождений в тексте больше чем синонимов, идет по кругу. Но и над текстами можно бывает поржать.
 
Цитата
favor пишет:
конструкции 1 вхождение заменяется 1 синонимом, 2-2, 3-3 и тд. Если вхождений в тексте больше чем синонимов, идет по кругу. Но и
а "мамка" (материнская плата) он как обработает?  

Вот статья, как это может работать:

Цитата
Алгоритмы нечеткого поиска характеризуются метрикой — функцией расстояния между двумя словами, позволяющей оценить степень их сходства в данном контексте. Строгое математическое определение метрики включает в себя необходимость соответствия условию неравенства треугольника (X — множество слов, p — метрика):

http://habrahabr.ru/post/114997/
 
Цитата
pharmaprofi пишет:
а "мамка" (материнская плата) он как обработает?
Вот прямо так и обработает, как написано.

Поймите, я поднял тему не об искусственном интеллекте, а о синонимизации по саставленной базе самим пользователем.

А если вести речь об универсальности с учетом могучего русского языка, тут уж кто на сколько его понимает, то и получает. Дело-то не в бобине, а в за рулем дубине.
Цитата
favor пишет:
Если кто-то решить лечить мышьяком и мигрень и понос, это ведь не значит, что хладный труп следствие не качественного лекарства. Хотя и избавит, и от одного, и от другого. Одновременно.

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

Если молодой аптекарь решит лечить кашель сильно действующим слабительным, не факт, что он добьется успеха. Но над чем поржать будет точно.
 
Хм, у меня на домашнем компе где-то есть 2 синонимайзера в формате xls. Одним несколько раз пользовался. Качество - так-сяк, но рабочий. Если интересно, после работы могу поискать, выложить.
 
ну тогда программа pharmaprofi вам подойдет
Учимся сами и помогаем другим...
 
Цитата
ber$erk пишет:
ну тогда программа  pharmaprofi  вам подойдет
Пока не могу оценить, т.к. на работе нельзя устанавливать сторонние дополнения. Дома посмотрю. Спасибо.
 
Цитата
pharmaprofi пишет:
кнопка: MultiChange
Пакетный поиск и замена. Необходимо указать диапазон со словарем (что на что менять) и диапазон где менять.

Что-то не удается сделать замену.

Форма появляется, но просит 2 столбца. Не понятно, а почему 2, что с ними делать с двумя?
Выделяю диапазон из 2-х столбцов, выделяю куда вставить и жму кнопку. Пишет Готово!, где и что он сготовил тоже не понятно тк где что стояло, то там и стоит. В общем. визульных изменений не наблюдается. Может там втихаря куда нибудь заменилось...
 
Цитата
favor пишет:
ца. Н
1 стобец: менять что 2- менять на что

по аналогии:

мамочка мама
мамуля мама
мамусик мама
мамка мама
мат мама
Изменено: pharmaprofi - 22.07.2013 18:58:35
 
Если готовы оплатить - могу написать специально под Ваши требования.
ну и конечно делать доработки
Беру недорого)
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
Если интересно, то один из вариантов замен по списку соответствий был рассмотрен здесь
Изменено: ZVI - 23.07.2013 02:00:11
 
Досмотрелся - мои синонимайзеры в формате .doc  :D
 
ZVI, да, это тот вариант, который я имел ввиду. Только он создает новый диапазон со значениями, что несколько не удобно.
А можно ли его научить работать внутри обозначенного диапазона или листа? У меня рабочая книга из десятка листов и это не предел. Иначе придется создавать некий буфер типа: забрать значение -> обработать -> отдать обработанное туда где должно стоять.
 
Хотя, вариант предложенный pharmaprofi достаточно хорош и применим к различным объемам.
 
Цитата
favor пишет:
Если кому не слабо, можете за так его не отдавать, а громогласно заявить: Я ТАКОЕ СОТВОРИЛ И ХОЧУ ВОТ СТОЛЬКО ДЕНЕГ!

Цитата
favor пишет:
вариант предложенный pharmaprofi достаточно хорош

пора счет в швейцарском банке открывать :D
 
Цитата
pharmaprofi пишет:
пора счет в швейцарском банке открывать  
Ну, скажем так. Слегка поспамив на сео форумах о своем продукте, сможете обеспечить некий доходец от шибко озабоченных рерайтеров. Главное, не забудьте указать номер своего швейцарского счета и пароль к нему. ;)

К стати, есть вот такой затейливый манимейкер http://lasto.com/shop/
У него есть магазинчик электронных товаров и можно предложить свой продукт для продажи через его шопчик.
Если Ваш продукт слегка адаптировать, он будет очень пригоден для работы не только c xls.
Ну, и в тему к его продуктам.
Страницы: 1
Читают тему
Наверх