Counterクラスを用いた出現数のカウント
頻出のトークンを抽出するために、Counterクラスの勉強をしています。
import collections
import more_itertools
f = open('minpo.txt')
data1 = f.read()
f.close()
# n-gramでのトークン化(前記事で記載)
l =["".join(lst) for lst in list(more_itertools.windowed(data1, n=6, step=1))]
# [(トークン, 出現数)]の形の、タプルのリストを取得
c = collections.Counter(l)
# タプルの2つ目(tap[1]、出現数)が100以上の1つ目(tap[0]、トークン)をリストにする
[tap[0] for tap in c.items() if tap[1] >= 100]
出力結果は以下です。何に使えるかわからない結果になりました。
個人的な目標は、裁判などで利用できる書面作成支援アプリであり、よくある言い回しに使えるかもしれないなと思っています。
['しなければな',
'なければなら',
'ければならな',
'ればならない',
'ばならない。',
'ならない。\n',
'の規定により',
'ったときは、',
'たときは、そ',
'ときは、その',
'。\nただし、',
'については、',
'は、この限り',
'、この限りで',
'この限りでな',
'の限りでない',
'限りでない。',
'りでない。\n',
'ことができる',
'とができる。',
'ができる。\n',
'することがで',
'ることができ',
'の場合におい',
'場合において',
'合において、',
'ことができな',
'とができない',
'あるときは、',
'をすることが',
'る。\nただし',
'したときは、',
'ないときは、',
'項の規定は、',
'について準用',
'ついて準用す',
'いて準用する',
'て準用する。',
'準用する。\n',
'。\nこの場合',
'\nこの場合に',
'この場合にお',
'ができない。',
'できない。\n',
'項の規定によ',
'の規定による',
'を請求するこ',
'請求すること',
'求することが']
コーパス
コーパスは、githubに置いていますが、まだまだ整備中です。