Это наверное больше ключевые слова. Тэги в частности.
Кстати, интересно, а уж тогда не так? :)
Input: «Мой дядя самых честных правил, когда не в шутку занемог...»
Output: [родстенники],[болезнь],[честные правила], [пушкин]
Небольшое дополнение:
Пространство аналитики замкнуто пространством предложения
(с возможностью использования стандартизированных ограниченных словарей)
TF-IDF и релевантность основанная на частоте данного слова в большом тексте — это немного другое.
Здесь анализ происходит внутри замкнутного предложения, в котором ключевые слова в большинстве случаев единичны.
Да и, кроме собственно вопроса, интересно было бы узнать людей, которые в подобных
вещах продвинулись.
Мне кажется, частота и релевантность особой роли не играют — тут вполне работает поиск по тексту с учетом морфологии, и теги не нужны совсем. По сути тег — это способ объединения по смыслу, то есть обобщение. Соответственно, нужно пользоваться словарем обобщений для подстановки тега — список понятий -> обобщение.
Как точно заметил denver — в этом конкретном вопросе у тегов проявляется только его внутренняя составляющая — «краткое описание чего-то более большого». Внешняя составляющая — «поиск и объединение разнородных элементов» — не важна.
Судя по примеру, приведенному автором вопроса, достаточно лишь выделить ПОДЛЕЖАЩЕЕ и СКАЗУЕМОЕ в исходном предложении.
В Яндексе есть готовый бесплатный инструмент MYSTEM.EXE для морфологического анализа предложений на русском языке.
[http://company.yandex.ru/technology/mystem]
если запустить без параметров для данного примера, то выдаст:
мой{мой|мыть}дядя{дядя}самых{самый}честных{честной|честный}правил{правило|править}когда{когда}не{не}в{в}шутку{шутка}занемог{занемогать}
Яндексу — несомненно огромное спасибо за столь хороший инструмент. Но как раз с морфологией проблем возникает немного.
А вот с «Подлежащим» и «Сказуемым» — направление правильное, но и эффективная автоматизация «синтаксиса языка» задача вроде как совсем не простая.
Лично я для себя рассматриваю «предложение» как сцену, на которой есть:
— главные действующие лица (часто это как раз — «подлежащее»)
— вспомогательные/второстепенные объекты («обстоятельства, дополнения»)
— действия/связи (часто — «сказуемые»)
Можно, с большой степенью уверенности, говорить о разном весе каждого типа для генерации «ключевых слов», но создание эффективного алгоритма для разложения «сцены» на кирпичики задача совсем не тривиальная — собственно это и есть основная задача данного вопроса.
Я приведу еще один «простой» пример, чтобы все было чуть понятнее:
«Собака сцепилась с кошкой во дворе дома»
— Если попытаться описать это «предложение» одним ключевым словом — например, [Собака], это уже что-то,
но этого будет явно не достаточно.
— Если ключевые слова описывают все действующие лица сцены — [Собака],[Кошка] — то массив ключевых слов становится куда более качественным при минимальном их количестве.
— Можно идти и дальше и добавить связующее элементы — [Собака],[Кошка],[Сцепились] — а можно посчитать что это «дорого» для системы, и не идти. Вопрос минимального/оптимального количества ключевых слов тоже не такой простой.
По этой выдаче с высокой долей вероятности можно провести и синтаксический разбор:
Подлежащее определим как существительное в именительном падеже.
Сказуемое — как глагол.
Повторюсь MYSTEM — хорошая штука. Но одних словарей — явно не достаточно, чтобы
создать эффективный инструмент.
Возвращаясь, к кошке с собакой.
Допустим мы задаемся вопросом — «как бы выделить главных действующих лиц»:
1) Например, обозначив их существительным в именительном падеже, но у вас
тут же возникнут другие вопросы:
— почему «кошка» в творительном падеже не менее значима, чем собака в именительном
— чем существительное «двор» хуже существительных «кошка» и «собака»
2) Можно, пойти дальше — и сказать что одушевленные существительные «кошка» и «собака»
важнее не одушевленных — «двор»:
— здесь может быть и да.
А если предложение будет чуть-чуть другим:
«Собака сцепилась с кошкой во дворе известного исторического дома»
— акценты уже изменились и одним из главных дествующих лиц стал неодушевленный «известный дом»
3) Еще лучше будет работать — если существительные разделять на определенные и не определенные (примерно как в английском языке — с артиклем «the», и «a»). Определенные гораздо чаще играют
роль главных действующих лиц.
4) Но все это — только начало. И если вы хотите двигаться дальше, вам приходится менять подходы.
Еще один пример:
«Собака сцепилась с кошкой, так что клочья летили в разные стороны»
Так вот, самым эффективным в этом варианте окажется именно
производное от сказуемого «сцепились» — [драка]. А «кошка» с «собакой»
чуть-чуть да ушли на второй план.
«Прилагательное, существительное, глагол», «Падежи, одушевленность, определенность»
и даже сложные разделения на «Подлежащее, сказуемое, обстоятельство и дополнение»
— все это не позволяет определять суть с высокой точностью.
Я повторюсь: «предложение» как сцена — элементы которой связаны между собой,
и нужно найти не столько вес каждого элемента в отдельности, сколько вес
с учетом всех его связей в общей картине предложения.
Как вариант — поэкспериментировать, посчитав самые часто употребляемые слова в статистике Яндекса wordstat.yandex.ru/?. Должно быть несколько факторов…
Не знаю цели вашей затеи, но мне почему-то кажется, что ключевые слова для каждого предложения — это чересчур. Почему не по абзацам?
Смысл вроде как имеет — и даже не малый.
Эффективное решение этого вопроса можно использовать в различных прикладных моментах.
Как самый простой пример, у Яндекса — этот вопрос один из элементов его хорошего поиска.
Вообще, если интересно, www.aot.ru/technology.html — у них очень подробно и интересно написано
про вяские «плюшки» связанные c анализом русского языка и как они ко всему этому подходят.
Голова (а лучше во множественном числе). А вот принципы авторефератов (многие из которых основаны на количестве повторенний) — здесь не работают.
Сама задача несомненно имеет решение:
например,
одно из простых решений, когда нужен единичный массив ключевых слов для русского языка — первое существительное в предложении . Кстати, для «Моего дяди самых честных правил, который не в шутку занемог» — на выходе получите вполне разумное [дядя].
Но когда начинаешь касаться этой темы детально, то понимаешь что разнообразию, стремлению к эффективности и гибкости решений — нет предела.
Я не встречал открытых систем авторефератов заточенных на работу с одним «предложением» отделенным от основной массы. Большинство из них работает с большими объема текста. Здесь же суть вопроса сосредаточенна внутри предложения.
тогда только голова — я бы ориентировался не на слова из предложения, а на их обобщающие синонимы (дядя — родственник, занемог — болезнь, честных правил — м.б., циник)