Я пытаюсь создать вектор функций 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}
Выходные данные показывают, что частота не была рассчитана. Только классы были выбраны и поставлены после нуля.