05. n-gram
問題
与えられたシーケンス(文字列やリストなど)からn-gramを作る関数を作成せよ.この関数を用い,“I am an NLPer”という文から単語bi-gram,文字bi-gramを得よ.
回答例
ここをクリックして回答を見る
# 文字列sを、数字nでn-gramする関数def ngram(s, n): result = [] last = len(s) - n + 1 # n個ずつに分割できる最後の位置
for i in range(last): result.append(s[i:i+n]) # スライスを使って、i から i+n までを切り取る
return result
s = "I am an NLPer"print(ngram(s, 2)) # 関数ngramを2で呼び出すと、bi-gramとなる