我試圖從包含大量單詞的ArrayList中創建一個N-gram列表。 我當前的代碼如下所示:從ArrayList創建一個n-gram列表
public void ngram(int n){
int i = 0;
for(String a : arraylist){
if (i < arraylist.size() - 2) {
ngramlist.add(arraylist.get(i) + " " + arraylist.get(i+1) + " " + arraylist.get(i+2));
i++;
}
}
System.out.println(ngramlist);
}
其中的ArrayList是用言語和ngramlist列表是列表我想從數組列表創建。 此代碼有效,但不是我想要的。如果我輸入像「貓狗鳥椅桌」這樣的文字,輸出將是「貓狗鳥,狗鳥椅,鳥椅桌」。 我試圖完成的事情是,我可以使用變量n輸入我想要在一行中添加的字數。所以如果我把2換成n,那它就是「貓狗,狗鳥,鳥椅,椅子桌子」。
所以我想我的代碼是這樣的:
public void ngram(int n){
int i = 0;
for(String a : arraylist){
if (i < arraylist.size() - n) {
(add all the words between i and i+n, so if n is 3 it adds 0-2, 1-3, 2-4 etc.)
i++;
}
}
System.out.println(ngramlist);
}
對代碼塊使用一致的邏輯縮進。代碼的縮進旨在幫助人們理解程序流程。 –