Проблема У меня есть список названий компаний / биржевых символов, и я хотел бы распознать их в некотором тексте.
public interface AutoTaggingService () {
public List<Tags> getTags(String fullText);
}
В простейшем варианте реализации можно циклически перебирать все названия компаний и делать точное совпадение, но это медленный процесс (большой список компаний) и не очень хорошо справляется с изменением орфографии.
Возможное решение Один из способов, которым я могу думать об этом, состоит в том, чтобы передать список названий компаний / биржевых символов в индекс Lucene / Solr и использовать полный текст в качестве запроса.Результатом этого запроса будет список документов (компании), который соответствует полному тексту, с оценками релевантности.Пороговое значение может быть определено так, что только компании с высоким баллом будут возвращены в качестве тегов.Для повышения точности можно определить пользовательский составной список и список синонимов названий компаний.
Сомнения Когда в прошлом я использовал Lucene / Solr, документ в поисковом индексе содержал относительно длинныйтекст (например, сборники статей), а запрос будет относительно коротким.То, что я сейчас хочу сделать, ситуация обратная.Повлияет ли это на индекс или релевантность и сделает этот метод ненадежным?
Вопрос
- Являются ли мои решения хорошим способом решения этой проблемы?
- Могу ли я использовать классификатор и использовать список компаний в качестве обучающих данных для достижения этой цели?
- Любые другие предложения о том, как это можно сделать эффективно и с высокой точностью.