Расширение PHP, которое связано с сайтом WordNet, очень старое и устарело - оно претендует на работу с PHP4, поэтому я не думаю, что оно рассматривалось годами.
Других API-интерфейсов для WordNet-> PHP нет, поэтому я выбрал собственное решение.
WordNet можно запустить из командной строки, поэтому функция PHP shell_exec()
может прочитать вывод.
Если вы запустите WordNet из командной строки (перейдите в каталог Wordnet, затем просто wn
) без каких-либо параметров, он покажет вам список возможных функций, которые поддерживает Wordnet.
По-прежнему в командной строке, если затем вы попробуете одну / несколько из этих функций, вы увидите, как Wordnet выводит свои результаты. Например, если вы хотите синонимы для слова «звезда», вы можете попробовать функцию -synsn
:
wn star -synsn
Это даст вывод, который выглядит примерно так:
Синонимы / Гиперниммы (Упорядоченные по Оцененной Частоте) существительного star
8 чувств звезды
смысл 1 звезда
=> Небесное тело, небесное тело
Sense 2 туз, адепт, чемпион, сенсация, мавен, мавин, виртуоз, гений, отчаянный, звезда, суперзвезда, одаренный, одаренный, волшебник, ум
=> эксперт
смысл 3 звезды
=> Небесное тело, небесное тело
смысл 4 звезды
=> плоская фигура, двумерная фигура
Sense 5 звезд, главный, ведущий
=> Актер, Хистрион, Игрок, Thespian, Ролевый игрок
Sense 6 хедлайнер, звезда
=> исполнитель, исполнитель
смысл 7 звездочка, звезда
=> символ, графема, графический символ
Sense 8-звездная топология, звезда
=> топология, топология сети
В PHP вы можете прочитать этот же вывод, используя функцию shell_exec()
.
$result = shell_exec('/path/to/wn '.$word.' -synsn');
Теперь $result
должен содержать блок текста, указанный выше.
На этом этапе вам нужно сделать правильное кодирование. Вам нужно взять этот блок текста и проанализировать его для данных, которые вы хотите.
Здесь все становится сложно. Поскольку данные представлены в формате, предназначенном для чтения человеком, а не программой, сложно выполнить точный анализ.
Важно отметить, что различные параметры поиска отображают свои результаты немного по-разному. И некоторые из результатов, которые возвращаются, могут быть несколько эзотерическими. В итоге я написал систему взвешивания для оценки результатов, но она была достаточно специфична для моих потребностей, поэтому вам придется поэкспериментировать с ней, чтобы создать собственную систему.
Надеюсь, вам достаточно помощи. :)