Что я могу использовать для определения похожих слов или ключевых слов? - PullRequest
2 голосов
/ 19 мая 2009

Кто-нибудь знает о алгоритме «похожих слов или ключевых слов», доступном в открытом коде или через API? Я ищу что-то вроде тезауруса, но умнее.

Так, например:

Intel

возвращается:

Процессор
Чип i7,
четырехъядерный чип,
.. и т. д.

Любые идеи или даже что-то, чтобы указать мне правильное направление в C #?


Edit:

Мне бы очень хотелось услышать ваши мысли, но почему мы не можем просто использовать API Google Adwords для создания ключевых слов, соответствующих введенным?

Ответы [ 4 ]

5 голосов
/ 19 мая 2009

Почему бы не отправить поисковый запрос в Google и проанализировать, что он возвращает?

Кроме того, проверьте Google Sets .

2 голосов
/ 19 мая 2009

Нет алгоритма для такой вещи. Вам нужно будет получить данные для тезауруса и загрузить их в структуру данных, тогда это будет простой поиск по словарю (для этого можно использовать класс C # Dictionary). Может быть, вы можете посмотреть Wordnet или Moby Thesaurus в качестве источника данных. Другие варианты: тезаурус-сервер и получение информации по мере необходимости.

0 голосов
/ 28 октября 2009

Я сделал функции тезауруса открытого офиса доступными для .NET в проекте NHunspell. Вы можете использовать файлы тезауруса OO. Вот проект NHunspell

0 голосов
/ 19 мая 2009

Вам понадобится большая база данных, содержащая эту информацию. Все остальное просто - посмотрите на вход и посмотрите, какие слова сохранены.

Сложная часть - это создание базы данных. Выполнение этого вручную может занять годы, если вы хотите охватить большое количество слов и тем.
Генерировать это непривычно нетривиально. Возможно, вы могли бы попытаться загрузить веб-страницы и проанализировать слова, часто встречающиеся вместе, но я предполагаю, что на создание, настройку и, наконец, сбор данных хорошего качества все еще уйдут месяцы Может быть, извлечение ссылок из Википедии может быть хорошим источником информации из-за ее полуструктуры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...