読者です 読者をやめる 読者になる 読者になる

【言語処理100本ノック】05. n-gram

はじめに

最近Pythonを使い始めたので、勉強がてらこいつをやってみようとおもいまっす

www.cl.ecei.tohoku.ac.jp


どこまで続くかわからないですが、がんばりますよ~!


05. n-gram

要件

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

できたコード

解説

n-gramってなに?って感じだったのでn-gramについて調べました

任意の文字列や文書を連続したn個の文字で分割するテキスト分割方法.特に,nが1の場合をユニグラム(uni-gram),2の場合をバイグラム(bi-gram),3の場合をトライグラム(tri-gram)と呼ぶ

kotobank.jp

となんだかよくわかりませんが、ようするにこういうことらしい

例えば,「図書館情報学」をバイグラムで分割すると,「図書」「書館」「館情」「情報」「報学」となる.

なので今回の場合は以下のような結果になれば良いということですね

# 単語bi-gram
[['I', 'am'], ['am', 'an'], ['an', 'NLPer']]

# 文字bi-gram
['I ', ' a', 'am', 'm ', ' a', 'an', 'n ', ' N', 'NL', 'LP', 'Pe', 'er']


おわりに

一応、Githubにもリポジトリ作ったのでここにあげていくスタイルで!

github.com


その他のノックについてはこちら!

tocyuki.hatenablog.com