言語処理100本ノック

05. n-gram

与えられたシーケンス(文字列やリストなど)からn-gramを作る関数を作成せよ.この関数を用い,"I am an NLPer"という文から単語bi-gram,文字bi-gramを得よ

def n_gram(s,n):
    sentence = s.split()
    result = []
    len_sentence = len(sentence)
    for start in range(len_sentence - n + 1):
        result.append(sentence[start:start+n])
    return result

n_gram("I am an NLPer",2)

<結果>
[['I', 'am'], ['am', 'an'], ['an', 'NLPer']]