我试图从包含大量单词的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);
}
对代码块使用一致的逻辑缩进。代码的缩进旨在帮助人们理解程序流程。 –