Bonjour,

Je travaille sur une méthode qui permet d'enlever d'une String les mots présent dans un fichier .txt (mots tous à la ligne dans ce fichier). En fait je cherche à coder une méthode de stop words removal pour ceux qui en aurait entendu parler.

Voilà ma méthode :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
//enlève les stopWords de la string
public static String removeStopWords(String s) throws IOException{
			ArrayList<String> wordArrayList = textToWords(s);
			BufferedReader reader;
			String Line;
			String newString = "";
 
			try {
				reader = new BufferedReader(new FileReader("StopWords.txt"));
			while(reader.readLine() != null){
				Iterator<String> iterator = wordArrayList.iterator();
			while(iterator.hasNext() ){
				try {
					while((Line = reader.readLine())!=null){
						String n = iterator.next();
						if(n.equals(reader))
							iterator.remove();
					}
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			//convert ArrayList to string
			for(String str : wordArrayList){
				newString += str + "\t";
			}		}
		} catch (FileNotFoundException e1) {
 
			e1.printStackTrace();
		}
 
			return newString;
		}
Sachant que j'ai créé une petit méthode (textToWord) en-dessous qui permet de convertir une String en arraylist:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
//créer une Arraylist de mot à partir d'une string
		public static ArrayList<String> textToWords(String s){
			String[] tab = s.split(" ");
		    ArrayList<String> WordArrayList = new ArrayList<String>(Arrays.asList(tab));  
			return WordArrayList;		
			}
Maintenant, je test mon code en appelant la méthode dans un main :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
public static void main(String[] args) throws IOException {
 
		System.out.println(removeStopWords("Un 1er-Mai syndical en demi-teinte qui montre la difficulté persistante des syndicats à mobiliser. A Paris, la CGT avance le chiffre de 65 000 (15 500 selon la police), ce qui montre que le renfort de FO n'a pas impulsé de vraie dynamique."));
 
	}



Et je pensais avoir géré toute les exceptions mais j'ai toujours un "Nosuchelementexception"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Exception in thread "main" java.util.NoSuchElementException
	at java.util.AbstractList$Itr.next(Unknown Source)
	at test.removeStopWords(test.java:33)
	at test.main(test.java:14)
Bref je ne sais pas d'où vient cette erreur, et je ne sais même pas si ce que j'ai fait fonctionne.
Si quelqu'un pourrait jeter un coup d'oeil, ça serait sympa
Bonne soirée !