Вместо input.nextLine()
используйте input.next()
, что должно решить проблему.
Измененный код:
public static Scanner input = new Scanner(System.in);
public static void main(String[] args)
{
System.out.print("Insert a number: ");
int number = input.nextInt();
System.out.print("Text1: ");
String text1 = input.next();
System.out.print("Text2: ");
String text2 = input.next();
}
Вы можете написать пользовательские функции, чтобы переопределить встроенный препроцессор и токенизатор.
Из документов:
Препроцессор - вызываемый, который принимает весь документ как ввод ( как одна строка) и возвращает возможно преобразованную версию документа, все еще как целую строку. Это можно использовать для удаления тэгов HTML, строчного документа и т. Д.
Tokenizer - вызываемый, который выводит результат из препроцессора и разбивает его на токены, а затем возвращает список из них.
blockquote>В этом случае предварительная обработка не выполняется (потому что нет необработанных документов). Токенизация также не нужна, потому что у нас уже есть массивы функций. Поэтому мы можем сделать следующее:
tfidf = TfidfVectorizer(preprocessor=lambda x: x, tokenizer=lambda x: x) tfidf_matrix = tfidf.fit_transform(corpus)
Мы пропускаем как препроцессор, так и шаги токенизатора, просто передавая весь корпус с
lambda x: x
. Когда встроенный анализатор получает массивы функций, он строит сам словарь и выполняет TF-IDF на «токенизированном» корпусе как обычно.