Как моделировать NVL в HQL

Вы можете написать пользовательские функции, чтобы переопределить встроенный препроцессор и токенизатор.

Из документов:

Препроцессор - вызываемый, который принимает весь документ как ввод ( как одна строка) и возвращает возможно преобразованную версию документа, все еще как целую строку. Это можно использовать для удаления тэгов HTML, строчного документа и т. Д.

Tokenizer - вызываемый, который выводит результат из препроцессора и разбивает его на токены, а затем возвращает список из них.

В этом случае предварительная обработка не выполняется (потому что нет необработанных документов). Токенизация также не нужна, потому что у нас уже есть массивы функций. Поэтому мы можем сделать следующее:

tfidf = TfidfVectorizer(preprocessor=lambda x: x, tokenizer=lambda x: x)
tfidf_matrix = tfidf.fit_transform(corpus)

Мы пропускаем как препроцессор, так и шаги токенизатора, просто передавая весь корпус с lambda x: x. Когда встроенный анализатор получает массивы функций, он строит сам словарь и выполняет TF-IDF на «токенизированном» корпусе как обычно.

30
задан 2 March 2009 в 08:22
поделиться

1 ответ

Эквивалентом команды nvl в HQL является команда coalesce. coalesce(a,b) вернет a, если a не равно нулю, в противном случае b.

Итак, вы бы хотели что-то вроде:

from Table where col1 = coalesce(:par1, 'asdf')
62
ответ дан Il-Bhima 11 October 2019 в 13:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: