И снова морфология

Оказывается, написать морфологический анализатор не так и просто. Впрочем, кто бы сомневался! Поэтому я пошел другим путем и стал рыскать в интернете в поисках уже готового решения. Нашлось несколько решений, которые подходят в той или иной мере.

Решение первое: программа написана на прологе, скомпилирована в DLL и даже имеет файл хендлера для С++. У программы есть большой словарь, что является плюсом. Правда, не совсем понятно, как она работает. Но то, что она работает хорошо, видно по журналу отчета - сложносочиненные предложения она щелкает “на раз”, выделяя основные и вспомогательные члены предложения и указывая связи между ними. Например фраза “Российская Федерация обеспечивает целостность и неприкосновенность своей территории” разбирается в вот такую структуру:

+– # [существительные, объединеные союзом,им.пад.]
+– # [первая часть союза,третье лицо,ж.род,ед.число,им.пад.]
+– и [союз и,третье лицо,ж.род,ед.число,им.пад.]
¦ +– федерация [существительное,третье лицо,ж.род,ед.число,им.пад.]
¦ +– российская [прилагательное,третье лицо,ж.род,ед.число,им.пад.]
¦ +– обеспечивает [глагол,третье лицо,ж.род,ед.число,Н вр.,невозв.]
¦ +– целостность [существительное,третье лицо,ж.род,ед.число,вин.пад.]
+– неприкосновенность [существительное,третье лицо,ж.род,ед.число,им.пад.]
+– территории [существительное,третье лицо,ж.род,ед.число,род.пад.]
+– своей [местоименное прилагательное,третье лицо,ж.род,ед.число,род.пад.]

Что с этим можно сделать я пока еще не знаю, но в целом программа очень хороша! Кроме того, у меня возникли трудности с подключением этой DLL к своему коду.
Continue reading »