Набор фильтров для извлечения и выбора ответов?
Я работал над кодом с открытым исходным кодом Ephyra и включил YQL API в качестве нового источника KM. Проблема в том, что Эфира дает очень краткие ответы. Даже на такие открытые вопросы, как "Что такое химия?", Я получаю краткие ответы в одно или два слова, т.е. "изменение материи" или "органический". Но такие вопросы должны иметь более подробные и подробные ответы.
Можно ли как-то изменить это, чтобы получить более подробные ответы? возможно, удалив какой-то набор фильтров и добавив другие.
Это текущий список фильтров по умолчанию:
// - answer extraction filters
AnswerSelection.addFilter(new AnswerTypeFilter());
AnswerSelection.addFilter(new AnswerPatternFilter());
AnswerSelection.addFilter(new WebDocumentFetcherFilter());
AnswerSelection.addFilter(new PredicateExtractionFilter());
AnswerSelection.addFilter(new FactoidsFromPredicatesFilter());
AnswerSelection.addFilter(new TruncationFilter());
// - answer selection filters
AnswerSelection.addFilter(new StopwordFilter());
AnswerSelection.addFilter(new QuestionKeywordsFilter());
AnswerSelection.addFilter(new ScoreNormalizationFilter(NORMALIZER));
AnswerSelection.addFilter(new ScoreCombinationFilter());
AnswerSelection.addFilter(new FactoidSubsetFilter());
AnswerSelection.addFilter(new DuplicateFilter());
AnswerSelection.addFilter(new ScoreSorterFilter());
Дополнительный фильтр, который я могу использовать:
AnswerSelection.addFilter(new NumberOfKeywordsFilter());
AnswerSelection.addFilter(new ResultLengthFilter());
AnswerSelection.addFilter(new AdaptiveNumberOfKeywordsFilter());
AnswerSelection.addFilter(new DirectSpeechFilter());
AnswerSelection.addFilter(new NounPhraseFilter());
AnswerSelection.addFilter(new NuggetEvaluationFilter());
AnswerSelection.addFilter(new PreferNamedEntitiesFilter());
AnswerSelection.addFilter(new ProperNameFilter());
AnswerSelection.addFilter(new ResultLengthFilter());
AnswerSelection.addFilter(new ResultLengthSorterFilter());
AnswerSelection.addFilter(new SentenceSplitterFilter());
AnswerSelection.addFilter(new SubclauseSplitterFilter());
AnswerSelection.addFilter(new TermFilter());
AnswerSelection.addFilter(new TripletFilter());
Но я не знаю, какие из них являются фильтрами извлечения ответов, а какие - выбором ответов. И я думаю, что мы должны следовать некоторому порядку.
Ребята, не могли бы вы предложить какой-нибудь порядок всех этих фильтров? с помощью которого я мог бы получить ответы, которые я хочу (пояснительный). Я не совсем понимаю