Как преобразовать информационную функцию в вектор для модуля sklearn.svm [дубликат]

Вместо 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();
}
5
задан Andrew LaPrise 15 September 2015 в 16:57
поделиться

1 ответ

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

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

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

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

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

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

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

8
ответ дан Andrew LaPrise 28 August 2018 в 03:58
поделиться
Другие вопросы по тегам:

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