Википедия:Форум/Архив/Старый/2004-11-23/Лекарственные средства 1554

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Здесь находятся завершившиеся обсуждения. Просьба не вносить изменений.

Внутренние ссылки[править код]

Такой вопрос: зачем нужно хотя бы одна внутрення ссылка в статье? Мои статьи про мед. препараты их не содержат, но в статистике считаются... Нужели то что у них есть категория считается за внутреннюю ссылку? Morpheios Melas 07:10, 2 Дек 2004 (UTC)

Да, категория — это уже внутренняя ссылка. HedgeHog 10:06, 2 Дек 2004 (UTC)
Я думаю что за внутреннюю ссылку считается та, что идёт из шаблона {{wikify}}. Категории за внутренние ссылки не считаются насколько я знаю. MaxiMaxiMax 12:49, 2 Дек 2004 (UTC)
Проверено опытным путём: сслыка на любую категорию, даже несуществующую делает статью «полноценной» (дает внутренний линк). HedgeHog 17:55, 3 Дек 2004 (UTC)

Мозговой штурм[править код]

Отсюда вопрос, следуюет ли заморчаиваться с тем чтобы бот автоматически делал следующее: "первый раз встреченное назваие другого лекарства в именительном падеже делать ссылкой"?. Или не тратить время и поскреее достигнуть 10К статей. Morpheios Melas 10:32, 2 Дек 2004 (UTC)

Мне кажется, что не стоит так уж гнаться за количеством в ущерб качеству если можешь расставить нормальные внутренние ссылки, лучше сделай это. --Kaganer 10:55, 2 Дек 2004 (UTC)
В том и беда что я пока что еще смутно преставляю, как это запрограмиировать... мозговой штур пока еще идет, хотя предется видимо решать в лоб, для каждой статьи обработать цикл по всем названиям лекарств, для каждого попытаться найти первое вхождение в текст... медленно, но ничего не поделаешь...
А по поводу количества и качества: мне кажется коль скоро мы хотим к новому году прийти к 10 тысячам статей, и издать по этому поводу пресс-релиз, то надо это сделать не перед самым новым годом, потому как иначе он потонет в новогодней информации, а если не потонет, то потеряется в кратковременной памяти читателей после новогодних пьянок... Morpheios Melas 11:06, 2 Дек 2004 (UTC)
Я бы посоветовал использовать скриптовые языки с поддержной регулярных выражений. Не надо циклов, достаточно построить регулярное выражение, которое «мэтчит» все известные названия лекарств. А по поводу того, зачем нужны ссылки — ровно затем же, что и на обычных страницах: чтобы можно было легко просмотреть логически связанную статью. Paul Pogonyshev 15:22, 2 Дек 2004 (UTC)
"Если вы гражданские такие умные, почему вы строем не ходите?" (с) Неизвестный прапорщик. Без обид, у меня база на 1600 лекарств, соотвественно 1600 регэкспов... Скриптик будет зашибись... а если перейти на уровень интерпретатора/копилятора, что я сделал прогу на дэльфе, что бы написал скрипт на Перле, одни и те же ассемблерские инструкции выполнялись бы, и в одном и том же количестве... Morpheios Melas 07:13, 3 Дек 2004 (UTC)
Попробуйте sed, вам понравится:
$ sed -f re < статья-in > статья-out
а в файле re:
s/название 1/[[&]]/
s/название 2/[[&]]/
...
s/название n/[[&]]/
(Замена всех вхождений шаблонов. Чтобы заменить не все, можно использовать awk).
--DIG 08:28, 3 Дек 2004 (UTC)
Зачем же столько регэкспов? Достаточно одного: (название 1|название 2|…). Думаю, в процессе создания регэкспа это всё очень хорошо оптимизируется. А в Emacs, где типа «регулярное выражение» нет (просто строчки), есть даже функция regexp-opt, которая строит вышеприведённое регулярное выражение (точнее его строковый формат) и сражу зе его оптимизирует. — Paul Pogonyshev 16:23, 3 Дек 2004 (UTC)
Можно и так. Правда, если там 1600 лекарств, то длинная строчка получается.
Предложение к Morpheios Melas: преобразуйте базу в статьи, заархивируйте их, а Paul Pogonyshev или я викифицируем разрядку и внутренние ссылки. А Вы потом их разом опубликуете?
--DIG 20:36, 3 Дек 2004 (UTC)
Можно и вылить в статьи... в каком формате делать? Кучу текстовых файлов? Или единый файл с разделителем? Как быть лучше с наименованием файлов, называть по имени статьи или просто цифровой номер чтобы был именем? Какой перевод строки Unix, Dos? Какая кодировка? Morpheios Melas 06:54, 6 Дек 2004 (UTC)
При прочих равных, я бы предпочёл (за-zip-ованную) кучу файлов, названных по имени лекарственного препарата, в кодировке KOI8-R. Перевод строки несущественен (но лучше юникс :-)). И адрес -- откуда скачать?
--DIG 07:46, 6 Дек 2004 (UTC)
Это можно, но давай только с именами файлов подумаем еще как нибудь, я не уверен что моя винда имена файлов в КОИ-8 переварит... Давай файлы будут в кои-8, а имена виндовые или просто в виде цифр и отдельный файл с соответствием имен файлов и названиям статей? Morpheios Melas 07:49, 6 Дек 2004 (UTC)
Залил, на адрес [1]. В зип архиве с Методом сжатия Бест, лежит зип архив с сжатием Сторе, в нем каталог BASE: файлы 0001.txt - 1554.txt статьи с препаратами, baselist.txt - соотвествия имени фала и названия статьи. К сожалению все в формате винды... Тут работы много некогда возиться, извините уж. Morpheios Melas 08:37, 6 Дек 2004 (UTC)
Спасибо! Всё замечательно скачалось и читается (я же там приписал -- "при прочих равных", так что всё хорошо получилось). Обратно я тогда тоже верну в CP-1251. Если я его в виде tar.gz верну -- Ваш WinZip его распакует?
--DIG 09:06, 6 Дек 2004 (UTC)
Не за что... "Общее дело делаем" (С) Не помню кто... :) У меня WinRar - он их как орешки щелкает... Как удобно. Morpheios Melas 09:20, 6 Дек 2004 (UTC)
Встряну и я: если пропадёт желание постить все эти статьи руками, то я могу закинуть их роботом — написа́ть соответствующий модуль будет несложно. HedgeHog 22:09, 6 Дек 2004 (UTC)
А оно уже не руками... оно генерит страничку со встроенным ДжаваСкриптом, который в свою очередь сам нажимает кнопку "Сохранить статью", а потом сам закрывает. Единственная проблема приходится следить за ним, у меня диал-ап и связь не очень устойчивая, так что я ему даю задачу постить по 20 штук, а потом пересчитываю... :) А вообще предложение хорошее, если к тому времени как DIG базу конвертнет, моего бота не сделают ботом, тогда лучше конечно пусть HedgeBot постит. Morpheios Melas 07:11, 7 Дек 2004 (UTC)

Выделение[править код]

Замена р а з р я д к и на выделение и превращение названий препаратов в ссылки получились. Я сейчас пробую вычистить цифры (замена О на 0 и удаление лишних пробелов) и проставить ссылки на все более-менее "непонятные" слова. Завтра попробую вернуть то, что получится.

P.S. Перекрёстных ссылок получается маловато...
--DIG 11:57, 7 Дек 2004 (UTC)

А нельзя ли сильное выделение заменить на нормальное выделение? Про нежелательность злоупотреблять полужирным шрифтом и Лебедев писал. - Paul Pogonyshev 19:30, 8 Дек 2004 (UTC)
Конечно, можно. Предлагаю это обсудить. Соображения, по которым я сделал выделение, а не выделение:
  • Злоупотреблять -- вообще нехорошо, будь то полужирным шрифтом или курсивом.
  • Разрядкой были выделены только высшая * доза (высшая суточная доза и подобные). Встречается даже не во всех статьях -- так что злоупотребления не будет. Например, «максимальная доза» не выделяется никак.
  • Во многих статьях есть латинские названия -- препаратов или организмов. Их принято печатать курсивом.
  • Если у кого-то есть хороший справочник по лекарственным средствам, то было бы неплохо посмотреть -- выделяются ли там сочетания «высшая доза», и если выделяются -- то как?
--DIG 21:07, 8 Дек 2004 (UTC)
Ну, в таком случае, может сильное выделение и нормально (если фраза имеет смысл типа «не влезай - убьёт!»). Хотя «высшая» доза для меня не совсем понятно. Я ещё понимаю там «доза высших грибов» или что-нибудь в таком роде ;) - Paul Pogonyshev 23:27, 8 Дек 2004 (UTC)
По-моему, хорошо получится.
Для меня тоже не совсем понятно. Но это легко объяснимо -- у меня нет медицинского образования. :-))
--DIG 07:29, 10 Дек 2004 (UTC)

Перекрёстные ссылки[править код]

Промежуточный итог:

  • р а з р я д к а заменена на выделение;
  • "выловлены" слова с буквой ё (и исправлены);
  • добавлены две категории (общая на все статьи из этого справочника и категория хранения "Список Б");

Теперь о перекрёстных ссылках. У меня есть > 12000 слов, которые не были найдены по словарю (включая, разумеется, поиск по словоформам). Идея заключалась в том, чтобы найти все слова, отсутствующие в словаре. В идеальном мире эти слова были бы терминами. Тогда осталось бы найти эти слова в статьях и сделать их ссылками. В реальном мире получается немного сложнее. Эти "неизвестные" слова могут быть:

терминами и их словоформами
тогда нужно сделать их ссылками;
неправильно написанными терминами
тогда их нужно исправить и сделать то, что сделано с нормальными терминами;
обрывки слов
в тексте встречается довольно много опечаток и замен русских букв на латинские и наоборот => словарь об этом ничего не знает и каждую часть рассматривает как отдельное неизвестное слово;
части слов в названиях
ничего исправлять не надо, просто игнорировать.

Есть несколько вариантов:

всё оставить как есть -- читатели потом поправят
плохо то, что будет мало внутренних ссылок (будут только те, что сделаны руками -- их мало);
найти все термины и сделать их ссылками
уже лучше, но это небыстро;
найти все термины и исправить все ошибки
идеальный вариант => требует очень много времени.

Есть ещё один -- эффективный с точки зрения времени (aka жуликоватый) -- вариант: для каждой из 1554 статей находим 2-3 термина и делаем их ссылками. Всё остальное оставляем как есть.

Какой вариант мы выберем?

P.S. Возможно, кому-то захотелось бы поучаствовать в подготовке этих статей? Было бы особенно хорошо, если бы участник был знаком с медицинскими терминами и названиями. Если такие желающие найдутся, то на странице, соответствующей этом обсуждению, я выложил бы в виде таблиц эти 12000 слов. Совместное усилие позволит подготовить эти статьи быстрее.

Пояснение[править код]

Таблицы имеют 4 столбца:

  • кол-во -- сколько раз встретилось это слово в статьях
  • слово -- само слово
  • термин -- термин, которому соответствует это слово (им. падеж, ед. число)
  • правка -- если термин или слово написано неверно, то здесь должно быть правильное написание

Пример. Таблица "Я"

кол-во слово термин правка
1 явле
1 явлениян
1 явленнй
1 явля
1 являтся
1 язвеннем
7 язвенно
1 язы
1 якорцев
1 яркокрасным
6 яснотковых
1 Ятрен

Предлагается для начала натравить на это дело программку makedict Константина Книжника, к-рая отбирает часто встречающиеся варианты и отсеивает редко встречающиеся, отличающиеся от гораздо более распространённого слова одной-двумя буквами (пытается отсеять опечатки). Вообще, я мог бы попробовать этим заняться, хотя и не гарантирую результата.--Begemotv2718 23:23, 8 Дек 2004 (UTC)

Спасибо за подсказку. Я видел эту програму, но пользоваться не доводилось.
Из описания я понял, что текст должен быть уже "чистый", вычитанный. В данном случае это условие не выполняется. Хотите, я выложу то, что уже сделано (пока просеиваются другие термины)? А потом можно будет сравнить результаты? (У меня результатом будет скрипт для sed'а, который преобразует статью).
--DIG 07:46, 10 Дек 2004 (UTC)

А вообще-то, программа-минимум: отобрать наиболее часто встречающиеся термины при этом порог подобрать так, чтобы получившийся результат был обозреваемым (не больше 1000 терминов). Перекрёстных ссылок на 1000 статей более чем достаточно, а 1000 слов можно просмотреть вручную.--Begemotv2718 23:28, 8 Дек 2004 (UTC)

Там смешная ситуация: всего "неизвестных" слов -- около 13000. Из них только около 3 тыс. встречаются 3 раза и более (хотя бы один раз встречается любое слово -- в заголовке статьи). Я не знаю -- получится ли это превратить в словарь с помощью makedict. Я пока делаю всё с помощью ispell'а, цикл такой: выбрать "неизвестные" слова, учитывая название статьи, отбросить те, которые можно получить с помощью приставок/суффиксов/замен, выбрать из них самые распространённые, сделать их известными терминами, и начать с начала. Пока количество терминов остаётся < 3 для каждой статьи.
--DIG 07:46, 10 Дек 2004 (UTC)
Собственно, я думал использовать такой алгоритм: взять 13000 слов базы Morpheasа (слова, не из словаря), написать их подряд каждое столько раз, сколько оно встречается в тексте, затем прогнать на этом списке makedict, который a)автоматически запишет все слова, отличающиеся формой в одно гнездо. б)Выбросит редкие слова отличающиеся одной буквой от форм главного слова. Естественно, гнёзда меньше чем в три слова общей кратности надо выкидывать сразу.
Кстати, я не совсем понял про "заголовки статей". Как я понимаю, мы пытаемся сделать красные ссылки на термины, которые часто встречаются в описании лекарств. Перекрёстные ссылки на статьи про лекарства - совсем другая история, со своей теорией и методологией.Или я не прав? Притом, перекрёстных ссылок на лекарства должно уже быть 3-4 в каждой статье (справочник кишит фразами типа: "по сравнению с хлороформом циклопропан..." или "при развитии осложнения А немедленно применить препарат Б").--Begemotv2718 22:54, 10 Дек 2004 (UTC)
Да, я понял про словарь. Я его попробовал. Кроме того, что он "находит" смешные формы глаголов (типа, диметил, диметив -- как будто есть глагол "диметить" :-), непонятно -- как потом этот словарь использовать?
Идея в том, чтобы сделать ссылками все терминопохожие слова -- то есть слова, которые не входят в обычный словарь, будь то названия препаратов, которые содержатся в этом справочнике, или просто некие медицинские термины. А ещё хотелось бы исправить хотя бы часть явных опечаток. Медленно получается, потому что приходится много проверять руками (а это долго и скучно :-)). Вчера я погорячился, сказав, что это займёт один день. Это займет по крайней мере два. Есть надежда, что не больше. (В любом случае, у меня это займет не больше двух дней :-))
Руками приходится проверять, так как хотелось бы внести как можно меньше искажений. Именно поэтому у каждой статьи свой набор слов, которые будут заменены на ссылки. Заодно будут исправлены совсем грубые ошибки, типа написания латинского названия лекарства похожими по начертанию русскими буквами. Смотреть приходится ещё и потому, что слова бывают в словосочетании -- поэтому необходимо убедиться (по тексту статьи), что все подстановки будут иметь смысл (например, атриовентрикулярная блокада и атриовентрикулярный узел, противогистаминные средства и противогистаминная активность, гематоэнцефалический барьер).
Пока используется около 30-ти терминов (около 100 словоформ) -- это самые распространённые "неизвестные" слова (встречаются двадцать раз и более). После очередной проверки оказалось, что есть около 500 статей, где не встречается ни одно из этих распространённых "неизвестных" слов. Поэтому теперь выделяю те слова, которые встречаются в этих самых статьях (для которых пока ни одного "ссылаемого" слова не выбрано). Там тоже есть уникальные статьи, где все слова (кроме самого лекарства) -- из обычного словаря. Но тут уж придётся обходиться категориями.
--DIG 13:01, 11 Дек 2004 (UTC)

Я предлагаю более простой вариант: ведь для вводимых статей наиболее актуальными являются ссылки на другие препараты и болезни. Список и тех и других легко можно получить из базы справочника (могу я сделать). Первые вхождения этих слов (в разных формах) пролинковывать — думаю, будет вполне достаточно. HedgeHog 14:13, 12 Дек 2004 (UTC)

Мне нравится Ваш вариант. Но статьи оказались очень "грязными" -- автоматом удалось найти только самые часто встречающиеся слова. В общем, в конечном итоге всё пришлось делать практически руками.
Часть ошибок/опечаток удалось выявить. Думаю, что в настоящем (вычитанном) виде статьи уже можно начать выкладывать -- потому что в их настоящем виде правка offline ничем не лучше правки online (даже хуже).
"Список и тех и других легко можно получить из базы справочника (могу я сделать)" -- если у Вас ещё не прошло это желание, то давайте попробуем. У меня легко не получается -- приходится всё равно все списки "терминоподобных" слов просматривать глазами. Если Ваша идея сработает -- то мы могли бы сравнить результаты.
Ок. Буду дома -- сделаю и выложу. --HedgeHog 13:42, 30 Дек 2004 (UTC)
Выложил список препаратов и болезней. По традиции файлы в KOI8-R и CP1251. Брать тут: http://av.i4central.com/wiki/sls_list.zip . --HedgeHog 01:36, 31 Дек 2004 (UTC)
О, замечательно!
Списки лекарств у нас эквивалентны (противоположный результат удивил бы).
Список болезней у Вас очень хороший. Меня, правда, берут сомнения, что это -- результат работы скрипта, а не глаз. Но не это важно. Важно -- сколько у Вас получается найти и викифицировать названий в статьях?
Если этих названий находится достаточно для первоначального помещения статьи в ВП, то, может, Вы взялись бы за обработку тех статей, для которых у меня получается мало викифицируемых слов? На всякий случай, выкладываю список файлов для викификации (выкладываю в КОИ -- каждый сам преобразует в удобную ему форму).
Пока у меня в обработку входит следующее: "честная" викификация двух-трёх слов, добавление категории "Список А" и/или "Список Б" (с викификацией этих Списков), замена буквы "ё", коррекция ошибок и опечаток (по возможности), особенно в названиях, в цифрах и т.д. (чаще всего встречаются замены: 0 <-> O, 3 <-> З и похожие по начертанию буквы из латиницы и кириллицы).
--DIG 21:44, 31 Дек 2004 (UTC)
Сейчас у меня расклад такой: около 500 статей вообще не имеют многочисленных линкуемых слов. Это не значит, что их там нет, это просто значит, что мои скрипты их не находят, или находят, но слова встречаются только один раз, и выявить их автоматически (не проверив глазами) не получается. Следующие 500 статей -- это те, в которых найдены частовстречающиеся термины (то есть такие, которые встретились более одного-двух раз в других статьях). Остальные 500 -- термины встречаются 2 или более раз.
Первая сотня из этих последних 500 лежит здесь http://wiki.nm.ru/1554/ -- в КОИ и Вин кодировках. Если ни у кого из заинтересованных участников не возникнет возражений, то можно было бы выложить хотя бы эту сотню (чтобы перекрыть 10К с запасом).
--DIG 11:51, 30 Дек 2004 (UTC)

Мне кажется нам прямо сейчас надо определиться, спешиь нам или нет. Если мы добъем эти статьи, то у нас будет 10К статей - повод пиариться, но пиариться перед самым новым годом, или сразу после него глупо, наши усилия пропадут даром. Нужно определиться успеем ли мы до 20 декабря. если нет, то предлагаю не торопиться. Morpheios Melas 06:35, 10 Дек 2004 (UTC)

По-моему, мы успеем. Я верну сегодня то, что получится: выделенные термины, и несколько категорий.
В Новый Год с Новой Викой. Вика-10К.
--DIG 07:50, 10 Дек 2004 (UTC)

Попробуем...[править код]

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