コンテンツにスキップ

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となる