2010-01-04 2 views
10

Я ищу что-то вроде Google Sets, но в форме API. Google Sets не позволяет соскабливать и не имеет API.Что такое хороший способ получить слова, связанные с данным словом?

Например, я бы хотел найти «электронику» и вернуть ее «cd-плеер, телевизор, телефон, компьютер и т. Д.». Возможно, как и в Google Sets, нужно взять пару слов.

Любые идеи? Есть ли какой-нибудь открытый API или другой способ извлечь данные?

+0

Я голосую, чтобы закрыть этот вопрос не по теме, потому что 1) он запроса инструмент, и 2) ссылки все мертвы – YvesLeBorg

+0

Я голосую, чтобы не закрывать его, потому что 1) он не запросить инструмент, и 2) я потратил 2 минуты на установление мертвой ссылки вместо голосования, чтобы закрыть вопрос, и, наконец, 3) Вот я через пять лет с несколькими вариантами, чтобы добавить новый ответ. – TheSoftwareJedi

ответ

6

Посмотрите на Большом Огромном Thesaurus API:

http://words.bighugelabs.com/api.php

http://blog.programmableweb.com/2008/09/04/big-huge-thesaurus-api-access-145000-words-and-phrases/

Надеется, что это будет работать .... Вы также можете проверить WordNet, но если вы хотите веб-службу вам необходимо разместить свой собственный (но есть код для этого!): http://wnws.sourceforge.net/

1

Похоже, что вы ищете не тезаурус, так как вы не ищете альтернативные слова со схожими значениями но вы на самом деле ищете слова, которые имеют некоторые касательные отношения.

Не пробовал это сам, но это может быть хорошим местом для начала

http://www.wait-till-i.com/2008/11/13/yahoo-boss-keyword-extraction-api-wrappers-jsphp/

2

Может быть, что WordNet может помочь вам: http://wordnet.princeton.edu/

В лице WordNet является большая лексическая база данных английского языка, здесь слова взаимосвязаны с помощью концептуально-семантических и лексических отношений.

0

Для этого нет надежного API, но вы можете построить его самостоятельно, если вы амбициозны.

1) Создайте веб-искатель, который может сканировать как минимум миллион веб-страниц. Вы можете остановить его, как только он достигнет этой точки. Используйте парсер NLP для извлечения существительных/существительных фраз из заголовков и текста и их хранения в индекс поиска, такой как ElasticSearch. Для индекса поиска, есть поле «теги», который содержит все существительного фразы для веб-страницы:

IE:

tags: ["ruby", "rails", "programming", "dev"] 
tags: ["mlb", "baseball", "fans", "stadium", "miguel cabrera"] 

Затем сделать граненый поиск на поле тегов. Поэтому, если вы выполните поиск термина «mlb», он вернет самые популярные термины, которые были на той же веб-странице, что и MLB.

0

Если существующего API недостаточно, существует множество веб-сервисов, которые позволяют вам размывать контент и делать с ними аккуратные вещи, причем одним из самых мощных является YQL. Вы можете использовать YQL для извлечения контента с любой веб-страницы и в основном превратить его в свой персональный веб-сервис.

Предположим, вы хотите использовать WordNet в качестве источника для родственных слов, и вы хотите получить список слов, связанных с «grok» в формате JSON.Вот как:

  1. Посмотрите "обращал внимания" на WordNet, чтобы захватить URL:

    http://wordnetweb.princeton.edu/perl/webwn?s=grok

  2. Осмотреть элемент (ы), которые содержат соответствующие слова (<ul> в данном случае) получить XPath.

  3. Используйте информацию, собранную в шагах 1-2, чтобы построить свой YQL заявление в YQL Console:

    select * from html where url="http://wordnetweb.princeton.edu/perl/webwn?s=grok" and xpath="//ul"

  4. Нажмите кнопку «JSON» для форматирования извлеченного содержимого в виде JSON в ответ , При желании вы также можете снять флажок «Диагностика», чтобы исключить диагностические данные и уменьшить размер ответа JSON.

  5. Нажмите кнопку «Тест», чтобы просмотреть извлеченное содержимое. Вы заметите, что содержимое форматируется как JSON, со связанными словами, хранящимися в массиве объектов. Возвращенные данные не идеальны, так как он также имеет белый шум (контент вам не нужен), но он работоспособен.

Если вы довольны результатом, то URL «веб-сервис» предоставляется для вас в нижней части страницы в разделе «THE REST QUERY». Вы можете использовать этот URL-адрес в своем вызове $.ajax() - вам просто нужно заменить «grok» в URL-адресе любым словом, которое вы хотите посмотреть.

ПРИМЕЧАНИЕ. Если веб-форма на шаге 1 использует POST вместо GET, то также возможно scrape the results of a form POST.

Существуют, однако, некоторые ограничения при таком подходе. Основные из них:

  • Это зависит от чего-то сверх вашего контроля, что никогда не бывает хорошим. Например, если структура HTML изменится, ваш запрос, скорее всего, сломается.

  • Зачастую возвращенный объект JSON будет более сложным, чем вы бы предпочли, требуя дополнительной логики последующей обработки, чтобы получить точные данные, которые вы хотите.

 Смежные вопросы

  • Нет связанных вопросов^_^