gensim

自然言語処理のプログラムを書くなら、gensimというライブラリがとても便利です。

例えば以下のような分かち書きされた2つの文章があるとします。

texts = [[“羽生”, “竜王”, “が”, “藤井”, “五段”, “に”, “負け”, “ました”],
[“羽生”, “さん”, “は”, “金メダル”, “を”, “取り”, “ました”]]

 

この文章を辞書に登録するのは2行で完了してしまいます。

from gensim import corpora
dictionary = corpora.Dictionary(texts)

辞書の中身は以下のように、単語ごとにIDが振られています。

{‘が’: 0, ‘に’: 1, ‘ました’: 2, ‘五段’: 3, ‘竜王’: 4, ‘羽生’: 5, ‘藤井’: 6, ‘負け’: 7, ‘さん’: 8, ‘は’: 9, ‘を’: 10, ‘取り’: 11, ‘金メダル’: 12}

 

bag_of_wordsを作成するのも簡単。

bows = []
for i, text in enumerate(texts):
bows.append(dictionary.doc2bow(text))

bowsの中身は(ID, 出現回数)となっています。

[[(0, 1), (1, 1), (2, 1), (3, 1), (4, 1), (5, 1), (6, 1), (7, 1)], [(2, 1), (5, 1), (8, 1), (9, 1), (10, 1), (11, 1), (12, 1)]]

 

昔、大学での自然言語処理の授業では、rubyを使って文章分類のコードを作成しましたが、
その時はbag_of_wordsを作るための関数を自分で定義していました。
今なら絶対pythonとgensimを使いますね。

自然言語処理がしたいという人はぜひ活用してみてください!

ikunobu
未分類

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です