2013-06-13 3 views
0

У меня есть требование связать математические термины, которые подпадают под общую тему. Напр. углы, cos, tan и т. д., должны относиться к тригонометрии. Поэтому, когда пользователь ищет углы, треугольники и т. Д., Поиск должен также показывать результаты, связанные с тригонометрией. Может ли кто-нибудь предоставить информацию о том, как это сделать в Apache Lucene?Поиск ассоциации слов в Apache Lucene

ответ

2

Существует classification api, который включает в себя K-ближайших соседей и наивные модели Байеса.

Сначала вы должны использовать метод train() с вашим учебным комплектом. После обучения классификатора используйте метод assignClass() для классификации данной строки.

Для тренировочного набора вы можете использовать страницы Википедии для своих классов.

После того как вы попробуете эти две попытки, вы можете использовать интерфейс Classifier для создания конкурирующей модели.

0

Если вы уже знаете ассоциации, вы можете просто добавить их в индекс для определенных терминов - например, индексирование «cos» как «cos», «тригонометрия».

Также, если вы знаете ассоциации, вы можете индексировать родительский термин и все члены брака - то есть индексировать «cos» как «тригонометрию», «cos», «sin» и т. Д. Это больше похоже на то, что вы хотите.

0

В дополнение к хорошему ответу @Josh S. вы также можете использовать более прямой подход, создавая собственный словарь синонимов, например. см. Match a word with similar words using Solr?