Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import java.util.*;
- import java.lang.Object;
- /**
- * Write a description of class Index here.
- *
- * @author Olivier Glaus
- * @version 06.04.2014
- */
- public class Deconstructeur_de_mots
- {
- //private Map<String,Integer> m;
- private final static Map<String,Integer> m = new HashMap<String,Integer>();
- private final static Map<String,Integer> words = new HashMap<String,Integer>();
- private ArrayList<String> stopWords;
- /**
- * Constructor for objects of class Index
- */
- public Deconstructeur_de_mots()
- {
- //HashMap<String,Integer> words
- // L'arrayList stopWords ou les éléments du fichier txt seront enregistrés
- ArrayList<String> stopWords = new ArrayList<String>();
- }
- /**
- * On enregistre les StopWords dans l'ArrayList stopWords
- */
- public void stopWords()
- {
- FileReader words = null;
- BufferedReader BF = null;
- String text;
- String element;
- try{
- words = new FileReader("stopwords.txt");
- BF = new BufferedReader(words);
- while((text = BF.readLine())!=null)
- {
- String delimiters = " ";
- StringTokenizer collection = new StringTokenizer(text, delimiters);
- element = (String)collection.nextElement();
- stopWords.add(element);
- }
- System.out.println("StopWords enregistrés correctement!");
- }
- catch(IOException e)
- {
- System.out.println(e);
- }
- }
- /////////////////////////////////////////////////////////////////////////////////
- /**
- * Compte chaque mot d'un fichier donné.
- */
- public void count(String fileName)
- {
- //stopWords();
- FileReader Fr = null;
- BufferedReader BF = null;
- String texte;
- String element;
- //Map<String,Integer> m = new HashMap<String,Integer>();
- try {
- Fr = new FileReader("corpus_de_documents/FR/" + fileName);
- BF = new BufferedReader(Fr);
- while((texte=BF.readLine())!=null)
- {
- String delimiters = "\",.;:?!()*[]' <>/_{}#%-@";
- StringTokenizer collection = new StringTokenizer(texte, delimiters);
- while (collection.hasMoreElements())
- {
- element = (String)collection.nextElement();
- Integer count = m.get(element);
- //if(!stopWords.contains(element)){
- if(count == null)
- {
- m.put(element, 1);
- }
- else
- {
- m.put(element, ++count);
- }
- // }
- }
- //words.putAll(m);
- }
- }
- catch(IOException e)
- {
- System.out.println(e);
- }
- finally
- {
- // //System.out.println("lefichier : "+fileName+" contient : ");
- // //System.out.println("Nombre d'occurences de chaque mot :");
- // Set<Map.Entry<String, Integer>> mots = words.entrySet();
- // Iterator<Map.Entry<String, Integer>> iter = mots.iterator();
- // while(iter.hasNext())
- // {
- // Map.Entry<String, Integer> paire = iter.next();
- // //System.out.println(paire);
- // }
- // //words.putAll(m);
- try
- {
- if(Fr!=null)
- {
- Fr.close();
- }
- }catch(IOException e){}
- }
- }
- /////////////////////////////////////////////////////////////////////////////////
- /**
- * Cette méthode permet l'extraction de plusieurs fichiers à la fois et enregistre
- * leurs mots dans la même hash table
- */
- public void Extracteur (String fichiers)
- {
- String delimiters = " ";
- StringTokenizer collection = new StringTokenizer(fichiers, delimiters);
- String element;
- while(collection.hasMoreElements()){
- element = (String)collection.nextElement();
- count(element);
- Set<Map.Entry<String, Integer>> mots = m.entrySet();
- //Iterator<Map.Entry<String, Integer>> iter = mots.iterator();
- Iterator<Map.Entry<String, Integer>> iter = mots.iterator();
- while(iter.hasNext())
- {
- Map.Entry<String, Integer> paire = iter.next();
- System.out.println(paire);
- }
- //
- }
- //
- // while(m.hasNext())
- // {
- // System.out.println(m.get(i));
- // }
- }
- public void showWords ()
- {
- //Set<Integer> keySet = words.keySet();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement