Хотел написать скрипт, чтобы в публикуемых статьях на сайте boychoir.ru автоматически проставлялись тэги по всем именам собственным (сейчас тэги проставляютя вручную, и авторы часто ленятся это делать). Ведь, в принципе, найти имена собственные не так сложно: нужно искать все слова, начинающиеся с прописной буквы и стоящие не после точки. Можно
(
Read more... )
Comments 16
у меня работает, если че... по крайней мере для реализации алгоритма из п.2 степень кривизны приемлимая ;)
2. "искать все слова, начинающиеся с прописной буквы и стоящие не после точки" сработает не всегда - например, точно не сработает на предложении "Павел пошел на...", если оно будет не первым в тексте ;)
более надежно будет искать вхождения имен из базы персон, уже упомянутых на сайте.
возможно, "нечетким" поиском - тем самым убирая проблемы со склонениями.
Reply
2. Да, имена, стоящие в начале фраз, скрипт проигнорирует. Но это встречается довольно редко.
Искать вхождения из базы персон - тоже вариант, но дополнительный. Попробую. Хотя искать нечётким поиском я не умею. Ты знаешь варианты? В любом случае, это именно дополнительный вариант, поскольку часто в статьях упоминаются имена собственные, отсутствующие в базе: левые действующие лица, композитор, географические названия и т. д.
Пока что всё это дело работает вот так: http://boychoir.ru/test/tagsearch/?articleId=437
Соответственно, тэги, которые уже есть в базе, оформлены, как ссылки. Их можно добавлять безоговорочно. С остальными надо что-то делать.
Reply
Ну а по-поводу определения имён - мне кажется достаточно выбирать любые слова, которые начинаются с заглавной буквы, т.к. имя может стоять и в начале предложения.
Я бы реализовывал эту задачу в отложенном режиме. Т.е. после написания статьи запускал бы асинхронную обработку, которая по результатам разбора текста отправляла бы автору уведомление: найдены такие-то имена собственные, зайдите отредактируйте если что не так.
Reply
Имена в начале предложения встречаются довольно редко. Всё-таки из двух вариантов - удалять каждое начальное слово из строки тэгов или добавить в тэги не найденные начальные имена - админ, скорее, будет больше чертыхаться в первом случае.
Асинхронная обработка - да, идея хорошая, спасибо. Наверное, так и сделаю.
Reply
Reply
Кстати, сделал проверку начальных слов в предложениях на наличие в базе тэгов. Это довольно просто, поскольку, как правило, если имя собственное находится в начале предложения, оно стоит в именительном падеже.
Теперь всё работает вот так: http://boychoir.ru/test/tagsearch/?articleId=439
(тэги, имеющиеся в базе, подчёркнуты, как ссылки)
Перебор во всех склонениях, да ещё и в базе иметь, это, по-моему, жестоко по отношению к базе. Можно ведь, наверное, имена из базы просто на лету склонять и сравнивать с кандидатами?
Reply
Leave a comment