StringToWordVector не генерирует слово вектор - PullRequest
0 голосов
/ 09 сентября 2018

Я пытаюсь создать вектор функций TF-IDF в Weka, похожий на тот, что сгенерирован TfidfVectorizer в scikit learn (позже я хочу получить матрицу, похожую на матрицу, сгенерированную fit_transform).

До сих пор я только адаптировал пример, полученный из Интернета. Однако созданный вектор неверен. Я потерян здесь. Я искал решение, и ничего не работает.

Мой файл arff

@relation balanceado

@attribute description string
@attribute rate numeric

@data
 'The hotel was excellent in all aspects.',5
 'overall an 8, breakfast was acceptable',5
 'slept like a baby!!! :)',5
 'Bad hotel',1
 'I will not come back',1
 'Horrible experience',1
 'Awful experience',1
 'Probably the best hotel in Waterville',5
 'slept like a baby!!! :)',5
 'The worst service',1

Мой код

Instances dataset = source.getDataSet();
dataset.setClassIndex(1);

StringToWordVector filter = new StringToWordVector();    

filter.setWordsToKeep(1000000);

NGramTokenizer t = new NGramTokenizer();
t.setNGramMaxSize(1);
t.setNGramMinSize(1);   
filter.setTokenizer(t);

filter.setTFTransform(true);
filter.setIDFTransform(true);           
filter.setLowerCaseTokens(true);
filter.setOutputWordCounts(true);
filter.setStopwords(new File("stopwords/english-stop-words.txt"));

filter.setInputFormat(data);

filter.batchFinished();
output = Filter.useFilter(data, filter);

Мой код генерирует этот вывод:

@data
{0 5}
{0 5}
{0 5}
{0 1}
{0 1}
{0 1}
{0 1}
{0 5}
{0 5}
{0 1}

Выходные данные показывают, что частота не была рассчитана. Только классы были выбраны и поставлены после нуля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...