Closed alexanderpanchenko closed 11 years ago
Ну вроде как работает, но только не с москвой( DBPedia почему-то не даёт определения других смыслов слова "Москва",
Тут есть - http://dbpedia.org/page/Moscow,_Indiana А в версии для API - http://dbpedia.org/data/Moscow,_Indiana.json - уже нету
А вот со словом "Linux" всё ок
Виртуалка на trytoimagine перезагружается по требованию винды( Поднимется через пару минут
Готово
Накатил, вроде бы работает. Быбо бы здорово упорядочить по значимости смыслы -- к примеру сначала apple (яблоко), затем apple (компьютер) и затем все остальные редикие смыслы.... Идеи?
Ты можешь попробовать отранжировать смысли по длине текста соответствующей статьи? Я посмотрел -- это должно работать.
Да, по длине хотя бы упорядоченно будет, сейчас сделаю Вариант по смыслу - пытаться искать связь слова в скобках с тем словом, к которому оно является вариантом смысла О_о Не знаю правда, насколько это будет оправдано))
Думаю нужно начать с длины -- это самое простое.
чего то не то
должно быть apple i < applie ii < apple ii < apple inc
используй длину статьи из википедии напрямую. в dbpedia может быть обрезанная статья
Не понял что-то Что не так?
Должно быть Apple Apple inc .... Apple 1
Посмотри в википедии длину этих статей
А, извиняюсь, я не так прочитал первоначальное предложение, думал по длине самого названия а не статьи.
А для этого придётся запрашивать все статьи, а их может быть много, значительно скажется на времени ответа...
Согласен. Нужно значит загружать асинхронно , как изображения. (показывать список когда загрузятся весь список). Ведь это дополнительная фича на странице.
Ок, я сделаю, но, если честно, мне не кажется это хорошей идеей)
А как ты бы сделал?
Мне кажется по длине вполне упорялоченно
Я думаю что их нужно все же значения отсортировать по значимости. Кажется что длина статьи хорошо отражает эту значимость.
Но ведь так не по смыслу и первые три значения которые показываются могут иметь не распространенный смысл, вроде apple 1, который мало кого интересует.
Да, был не прав, какой-то смысл тут точно проглядывается)
Да, мне кажется так лучше. Но тоже не идеально. Изначально у меня была идея ранжировать их по PageRank-y. Допустим, у меня в хроме есть плагин который показывает ранг страницы. Так вот
http://en.wikipedia.org/wiki/Apple_Inc. = 7 http://en.wikipedia.org/wiki/Apple = 6 http://en.wikipedia.org/wiki/Apple_Corps = 5 http://en.wikipedia.org/wiki/The_Apple_(1980_film) = 4
Это было бы более правильнее чем просто длина, но я не знаю хорошего API который определяет PageRank страницы. Можно еще конечно одновременно учитывать длину и PageRank, но скорее всего это не нужно...
Попробуй вот это...
Сейчас уже не успею, выходить на электричку через 20 минут ( Только если там уже.
И, только что попробовав запустить монго на ноутбуке - обнаружил что не хватает памяти( У него всего 2 Гб
У нас вечером демо -- целый день будет. Но уже с длиной хорошо на самом деле.
Посмотрел еще раз -- нужно думаю делать так. Сначала ранжировать по PageRank, затем по длине. PageRank выдает часто много одинаковых значений (вроде 6, 5, 4 и т.п.).
Запустим на моем тогда. Бери файлы которые нужно просто. У меня 4 гб.
Заметил еще одну вешь которую нужно попроавить. Допустим пользователь нажал на слово из Disambiguates. После этого появится окошко с определением. Однако после того как введен новый запрос окошко от прошлого запроса остается. Окошко должно исчезать и при любом клике на область страницы за пределами него.
Мотивация
Сейчас отображаются определения слова -- это позволяет пользователю лучше понять смысл запроса. Дополнительно можно отображать и множество возможных толкований слова. Многие слова, такие как python или java многозначны. Однако система показывает определение только наиболее распространенного смысла слова (что логично).
Нужно показывать пользователю разные смыслы слова из запроса. Особенно это актуально для таких слов как python или java но может быть интересно и для других, таких как Moscow (существует около 15 городов с таким названием).
Реализация
Нужен дополнительный блок после определения и до ссылок на Google и словари. Данный блок будет отображает ссылки на разные смыслы слова. Брать список многозначных слов можно опять же с dbpedia, например http://dbpedia.org/page/Python
Часто значением атрибута dbpedia-owl:wikiPageDisambiguates будет ссылка на страницу -- dbpedia:Moscow(disambiguation). К примеру как здесь -- http://dbpedia.org/page/Moscow. В этом случае нужно перейти по ссылке и загрузить значения атрибутов со ссылки. Такие ссылки всегда заканчиваются на "(disambiguation)", поэтому их просто вычислить.
Не следует отображать все множество "смыслов" запроса -- их может быть слишком много. Нужно лишь отобразить первые 5 смыслов и сделать ссылку "Отобразить все X значений слова" / "Show all X word senses". В этом случае будут загружаться список всех смыслов.
Следует заменять "_" на пробел в строке задающей смысл слова.
Наконец, при нажатии на ссылку с название смысла слова должно в небольшом окошке (таком же как на страничке http://serelex.cental.be/page/advanced -- знак вопроса) отображаться определение слова взятое опять же из dbpedia (первое по списку значение атрибута dbpedia-owl:abstract).
Например, http://dbpedia.org/page/Moscow,_India: