- 問題
05. n-gram
与えられたシーケンス(文字列やリストなど)からn-gramを作る関数を作成せよ.この関数を用い,"I am an NLPer"という文から単語bi-gram,文字bi-gramを得よ.
- 解答例
def ngram(n, sentence): gram = [] for i in range(len(sentence) - n + 1): gram.append(''.join(sentence[i:i + n])) return gram str = "I am an NLPer" ans1 = ngram(2, str.split()) ans2 = ngram(2, str) print(ans1) print(ans2)
- コメント
splitで単語分割した配列データとして扱えるころができるので,
単語bi-gram,文字bi-gramも同じ関数で扱えるので楽で良いですね.