Java N-Gram创建者未检索最终单词

Java N-Gram创建者未检索最终单词,java,arraylist,n-gram,Java,Arraylist,N Gram,我正在做一个项目,我需要创建“n-grams”进行分析。我目前有一种方法可以对int'n'执行此操作,并将所有术语整理在一起,除了ArrayList中的最后一个单词,它完全忽略了它,我不确定为什么?这是输出 Original: Making pancakes today? Need a recipe? Check https://t.co/lsrRy8CW22 #PancakeDay https://t.co/WiPX4joM4v Bag of Words: [make, pancak,

我正在做一个项目,我需要创建“n-grams”进行分析。我目前有一种方法可以对
int
'n'执行此操作,并将所有术语整理在一起,除了ArrayList中的最后一个单词,它完全忽略了它,我不确定为什么?这是输出

Original:  Making pancakes today? Need a recipe? Check https://t.co/lsrRy8CW22  #PancakeDay https://t.co/WiPX4joM4v

Bag of Words:  [make, pancak, today, recip, check, pancakeday]

2-gram: [make pancak, pancak today, today recip, recip check]

3- gram: [make pancak today, pancak today recip, today recip check]
正如你所看到的,它跳过了最后一个单词“煎饼日”,我不知道为什么

这里是方法

    public void ngramCreator(int n){
    ngramList = new ArrayList<String>();
    for(String word : bagOfWords){
        if (int i = 0 < bagOfWords.size() - n) {
            String ngram = "";
            for (int j = 0; j < n-1; j++)
                ngram += bagOfWords.get(i + j) + " ";
            ngram += bagOfWords.get(i + n - 1);
            ngramList.add(ngram);
            i++;
        }
    }
    System.out.println(ngramList);
}
public-void-ngramCreator(int-n){
ngramList=newarraylist();
for(字符串字:bagOfWords){
if(int i=0

感谢所有的帮助,非常感谢。

由于您的BagoWords包含n个元素,您应该迭代整个列表。 下面的代码应该可以做到这一点

if (int i = 0 <= bagOfWords.size() - n) {
    // The rest ngrams implementation is correct
}

if(int i=0)试试这个工作的人!干杯:)@istovatis您应该添加它作为答案,因为它解决了OP的问题