#ruby-on-rails #ruby #wordnet
#ruby-on-rails #ruby #wordnet
Вопрос:
Я использую words
gem для поиска в wordnet. Вот мой код:
require 'words'
data = Words::Wordnet.new
word = "geese"
lemma = data.find(word)
puts lemma
lemma
ВОЗВРАТ nil
. Это работает для других слов, таких как «car», но «geese» не работает. Слово существует, я могу выполнить поиск по нему на веб-сайте Wordnet: http://wordnetweb.princeton.edu/perl/webwn?s=geeseamp;sub=Search WordNetamp;o2=amp;o0=amp;o8=1amp;o1=amp;o7=amp;o5=amp;o9=amp;o6=amp;o3=amp;o4=amp;h=00000000000
Что может происходить? Заранее благодарю вас!
Ответ №1:
Я думаю, это потому, что «гуси» — множественное число (причем неправильное), а поиск на веб-сайте WordNet использует morphy. Я думаю, что слова gem — это не так. Попробуйте «cars» и «feet».
Комментарии:
1. Я думаю, что драгоценный камень «words» использует тот же словарь, что и wordnet. Вы уверены, что это по-другому?
2. Они используют один и тот же словарь, но в словаре есть только неотраженные словоформы. Я полагаю, что веб-сайт WordNet выполняет некоторую обработку словоизменительной морфологии, которой нет в words gem. Итак, если вы будете искать такие вещи, как множественное число и формы на -ing, вы найдете базовые формы на веб-сайте WordNet, но слова gem вам ничего не дадут, если только эти формы также не окажутся базовыми формами других слов (это часто случается с глаголами на -ed, превращенными в прилагательные).
3. А, ладно, понял. Это нехорошо… Я думаю, я буду использовать драгоценный камень wordnet. Спасибо за ваш ответ.