Je suis en train de réaliser un projet où j'analyse des 'ngrams'. J'ai une méthode dans mon programme qui crée des bigrammes et des trigrammes. Cependant, ils ne reçoivent que les mots adjacents consécutifs ensemble où je veux obtenir toutes les combinaisons de mots ...N-Gram avec ArrayList
Par exemple,
Original String - "chilli, start, day, suffer, raynaud, check, raynaudsuk, great, tip, loveyourglov, ram"
Bigram - "chilli start, start day, day suffer, suffer raynaud, raynaud check, check raynaudsuk, raynaudsuk great, great tip, tip loveyourglov, loveyourglov ram"
Mais je le veux pour obtenir une combinaison de tous les mots la chaîne. Par exemple
Expected Bigram - "chilli start,1, chilli day,2, chilli suffer,3, chilli raynaud,4, chilli check,5, chilli raynaudsuk,6, chilli great,7, chilli tip,8, chilli loveyourglov,9, chilli ram,10, start day,1, etc..."
Comment puis-je modifier ma méthode pour produire un bigram comme celui-ci?
public ArrayList<String> bigramList;
ArrayList<String> fullBagOfWords = new ArrayList<String>();
public void bigramCreator(){
int i = 0;
bigramList = new ArrayList<String>();
for(String bi : fullBagOfWords){
int n = 2;
if (i <= fullBagOfWords.size() - n) {
String bigram = "";
for (int j = 0; j < n-1; j++)
bigram += fullBagOfWords.get(i + j) + " ";
bigram += fullBagOfWords.get(i + n - 1);
bigramList.add(bigram);
i++;
}
}
}
Merci beaucoup pour toute aide apportée.
N'êtes-vous pas manque des accolades pour la boucle imbriquée? La boucle n'exécutera que 'bigram + = fullBagOfWords.get (i + j) +" ";' – radoh
@radoh - cela fonctionne bien pour l'exemple supérieur, c'est ce que je reçois mais je veux étendre ma méthode pour obtenir une combinaison de TOUS les mots –
Pourquoi y a-t-il une distance nulle dans 'start day, 0,', ne devrait-elle pas être '1'? – radoh