Python、NLTKによる言語処理のための個人的tips。NLTKをインストールした上で以下の記事を読んでください。最新のバージョンでのインストールについてはこちらなどが参考になるでしょう。バージョンがあがったため、インストール方法に若干の変更があります。後々のことも考えて、これまでと同じくPyYAML、matplotlib、NumPyなども入れておきましょう(この記事では特にNLTK以外は必要にはなりませんが)。
単語の数え方
from nltk.book import * # text6はMonty Python(Pythonという言語名の由来になった作品) print len(text6) # 単語数(スペース区切り)のカウント print len(set(text6)) # ユニークな単語数をカウント
語彙の多様性の計算、および簡単なメソッド作成
print len(text6)*1.0 / len(set(text6)) # 語彙の豊富さ # 文章中の単語の多様性のメソッド # メソッドにすることにより、同じことを繰り返す手間が省ける。というか、 # バグがあったときの修正も楽になるので、繰り返し利用するならメソッドにするべき。 # def メソッド名(引数): で始める。 def lexical_diversity(text): return len(text) * 1.0 / len(set(text)) # totalに対するcountの割合 def percentage(count, total): return 100.0 * count / total
リストの扱い方
# +はリストの結合 week = ['Mon', 'Tue', 'Wed', 'Thr', 'Fri'] + ['Sat', 'Sun'] print week print sorted(week) # 内容で昇順にソート prime = [2, 3, 5, 7] prime.append(9) # appendは最後尾への結合 print prime # [2, 3, 5, 7, 9] # 添え字によるアクセス # 先頭を添え字0とするので3番目のデータにアクセス print prime[2] # 5 # スライシング # array[n:m]でarray[n]~array[m-1]を取り出す print prime[1:3] # [3, 5] # :の前半の添え字を省略すると、前半は0とみなされる print prime[:2] # [2, 3] # :の後半の添え字を省略すると、後半は配列の最後の添え字+1とみなされる print prime[3:] # [7, 9]
文字列の扱い方
lang = 'Python' print lang[:3] # スライシングできる print lang * 2 # 繰り返し print 'Hello ' + lang + '!' # +による結合 # 複数行にわたる表記(改行も入る) number = '''one two three''' print number
リスト内包表記
from nltk.book import * # text6の各単語をwとして、wの長さが10になるwの集合 word10 = [w for w in text6 if len(w) == 10] print sorted(word10)[:10] # ソートした結果の先頭10語のみ出力
条件分岐
age = 26 if age < 12: # ageが12未満ならchildと表示 print "child" elif age < 20: # 20未満ならyoungと表示 print "young" else: # それ以外(この場合20以上になる)ならadultと表示 print "adult"
0 件のコメント:
コメントを投稿