PythonでN-gramを取り出す
スライシングを使うことで、PythonでN-gramを1行で取り出せる。
入力を単語区切りのリストで与えると、bigramは次のように取り出せる。
input_list = ['This', 'is ', 'a', 'pen'] bigram_list = zip(input_list, input_list[1:])
trigramはこう。
trigram_list = zip(input_list, input_list[1:], input_list[2:])
これを一般化すると、N-gramは次のように取り出せる。
Ngram_list = zip(*[input_list[i:] for i in range(N)])