векторизация текстового файла - PullRequest
0 голосов
/ 21 марта 2012

Я пытаюсь реализовать векторизацию текстового файла ... Я создал словарь (уникальные слова во всех документах) ... Какой лучший способ реализовать это в Java?

Например - В моем словаре есть следующие слова - {w1, w2, w3, w4} И у меня есть 2 документа, каждый из которых имеет подмножество слов в словаре. Мне нужно записать в текстовый файл матрицу в виде -

1,3,4,0
0,0,2,1

Здесь каждая строка представляет документ, а значения представляют вхождение каждого слова в документ.

Можете ли вы предложить мне наиболее эффективный способ реализовать это на Java?

Ответы [ 2 ]

2 голосов
/ 21 марта 2012
  1. Прочитать в текстовом файле по одному слову за раз
  2. Проверьте, есть ли слово в словаре, увеличьте ли оно количество
  3. Перебрать словарь, выводящий счетчик в выходной файл.

Из-за тега домашней работы я даю вам шаги, а не какой-либо конкретный код (вы можете найти, как сделать все это с помощью быстрого поиска в Google, если вы не знаете, как)

1 голос
/ 21 марта 2012

Попробуйте использовать HashMap, чтобы сопоставить каждое слово с позицией этого слова в векторе. Затем каждая строка может быть построена путем создания int [] для вектора, итерации по всем словам, поиска позиции каждого слова на карте и увеличения соответствующего элемента.

HashMap<String, Integer> dict = new ... // Map word to position
for (String[] doc: docs) {
    int vector[VECTOR_SIZE] = new ....
    for (String word: doc) {
         vector[dict.get(word)]++;
    }
    // Print vector
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...