MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Computing n-grams


On May 21, 2008, at 2:49 PM, Coleman, Mark wrote:

> Greetings,
>
> Imagine one has a list such as {a,b,c,d,e,f,g}. I'm trying to find an
> efficient way in Mathematica to compute the n-grams of the list.  
> That is, for
> n=2, the n-grams are all the lists of length 2 consisting of  
> consecutive
> elements, e.g.,
>
> {a,b},{b,c},{c,d},{d,e},...
>
> While for n=3,
>
> {a,b,c},{b,c,d},{c,d,e},..., and so on.
>
> As I understand it, the built-in Mathematica commands such as  
> Subsets or
> Permutations compute all possible list of size n, without regard to  
> the
> order of the list elements.

I don't think you need to use Combinatorica,

nGram[l_,n_]:=Table[l[[Range[i,i+n-1]]],{i,Length[l]-n+1}]

will give you the desired list.


  • Prev by Date: Re: Cannot NSolve a system of equations
  • Next by Date: enter key on new Mac MBP
  • Previous by thread: Computing n-grams
  • Next by thread: Re: Computing n-grams