API, чтобы использовать, чтобы извлечь подобные слова из ключевого слова? - PullRequest
1 голос
/ 25 июня 2010

Я пишу поисковую систему на C #, получая строки из базы данных SQL. Мне бы хотелось, чтобы поиск также включал похожие слова - например, если пользователь ищет слово «инвестирование», поиск также возвращает совпадения для слова «инвестиции», или если пользователь ищет слово «финансовый», поиск также возвращает соответствует "финансам".

Как мне найти похожие слова из ключевых слов для поиска?

Ответы [ 4 ]

3 голосов
/ 25 июня 2010

То, что вы пытаетесь достичь, известно как «Stemming».Прочитайте статью в Википедии для получения дополнительной информации:

http://en.wikipedia.org/wiki/Stemming

3 голосов
/ 25 июня 2010

То, что вы ищете, это stemming .Возможно, вы захотите взглянуть на то, что доступно в Lucene.net ... хотя также возможно, что SQL Server изначально поддерживает это с помощью полнотекстовой индексации.Действительно, это выглядит так, учитывая эту статью .

1 голос
/ 25 июня 2010

Если вы используете SQL Server, вы можете воспользоваться поиском FREETEXT, который поддерживает stemming :

Select * from SomeTable
where FREETEXT(*,'invest')

Приведенный выше поиск во всех столбцах для всех форм слова invest,Это эквивалентно:

Select * from SomeTable
where CONTAINS(*,'"invest" or "invests" or "investor" 
                  or "investing'" or "invested" or "investor's" ... )

Вот статья MSDN с большим количеством примеров и документации.

0 голосов
/ 25 июня 2010

Кроме того, soundex поиск может помочь найти совпадения с похожей фонетикой. Это поддерживается в функции SQL Server SOUNDEX () . .NET не имеет встроенной функции, но CodeProject имеет несколько реализаций .

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