executar o algoritmo perceptron em um recurso de mapa de hash vecteur: java

Eu tenho o código a seguir, ele lê muitos arquivos de um diretório em um mapa de hash, este é o meucaracterística vecteur. É um tanto ingênuo no sentido de que não provém, mas essa não é minha principal preocupação no momento. Quero saber como posso usar essa estrutura de dados como entrada para o algoritmo perceptron. Acho que chamamos isso de saco de palavras, não é?

public class BagOfWords 
{
        static Map<String, Integer> bag_of_words = new HashMap<>();

        public static void main(String[] args) throws IOException 
        {
            String path = "/home/flavius/atheism;
            File file = new File( path );
            new BagOfWords().iterateDirectory(file);

            for (Map.Entry<String, Integer> entry : bag_of_words.entrySet()) 
            {
                System.out.println(entry.getKey()+" : "+entry.getValue());
            }

        }

        private void iterateDirectory(File file) throws IOException 
        {
            for (File f : file.listFiles()) 
            {
                if (f.isDirectory()) 
                {    
                    iterateDirectory(file);
                } 
                else 
                {
                    String line; 
                    BufferedReader br = new BufferedReader(new FileReader( f ));

                    while ((line = br.readLine()) != null) 
                    {

                        String[] words = line.split(" ");//those are your words

                        String word;

                        for (int i = 0; i < words.length; i++) 
                        {
                            word = words[i];
                            if (!bag_of_words.containsKey(word))
                            {
                                bag_of_words.put(word, 0);
                            }
                            bag_of_words.put(word, bag_of_words.get(word) + 1);
                        }

                    }

                }
            }
        }
    }

Você pode ver que o caminho vai para um diretório chamado 'ateísmo'. Também existe um chamado esportes. Quero tentar separar linearmente essas duas classes de documentos e, em seguida, tentar separar os documentos de teste invisíveis em ambas as categorias.

Como fazer isso? Como conceituar isso. Eu apreciaria uma referência sólida, uma explicação abrangente ou algum tipo de pseudocódigo.

Não encontrei muitas referências informativas e lúcidas na web.

questionAnswers(2)

yourAnswerToTheQuestion