Вы на самом деле не хотите skipgram
как таковой, но вы хотите кусок по размеру, попробуйте это:
from lazyme import per_chunk
tokens = "my name is John".split()
list(per_chunk(tokens, 2))
[out]:
[('my', 'name'), ('is', 'John')]
Если вынужно скользящее окно, то есть ngrams
:
from lazyme import per_window
tokens = "my name is John".split()
list(per_window(tokens, 2))
[out]:
[('my', 'name'), ('name', 'is'), ('is', 'John')]
Аналогично в NLTK для ngrams:
from nltk import ngrams
tokens = "my name is John".split()
list(ngrams(tokens, 2))
[out]:
[('my', 'name'), ('name', 'is'), ('is', 'John')]
Если вам нужны реальные скипграммы, Как вычислять скипграммы в python?
from nltk import skipgrams
tokens = "my name is John".split()
list(skipgrams(tokens, n=2, k=1))
[out]:
[('my', 'name'),
('my', 'is'),
('name', 'is'),
('name', 'John'),
('is', 'John')]