Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
9
Help us understand the problem. What is going on with this article?
@ysekky

Juliaでテキスト分析をしてみる

More than 5 years have passed since last update.

Juliaアドベントカレンダーの記事です。
先日のJuliaTokyoでLTした内容を記事にさせていただきました.

やること

  • 日本語のテキスト分析をJuliaでやる
  • TextAnalysisというイブラリがあるので, それに日本語文書を投入して分析する
    • 分かち書きすれば日本語も使えるので,@chezouさんのMecab.jlを使う
  • TextAnalysisが夢見がちなライブラリであることをみんなに伝える

使うパッケージ

  • TextAnalysis.jl

johnmyleswhite先生のライブラリ
テキスト分析でやりたいこと大体できるようにREADMEみたら思えるけど、大体は願望

  • MeCab.jl

形態素解析の日本語バインディング

TextAnalysisのCorpusに放り込む

using TextAnalysis
using MeCab

mecab = Mecab()

lines = readlines("titles.txt")
documents = [TokenDocument(parse_surface(mecab, title)) for line in lines]
crps = Corpus(documents)
update_lexicon!(crps)
update_inverse_index!(crps)

TFIDFする

m = DocumentTermMatrix(crps)
tfidfs = tf_idf(m)
  • SparseMatrixで帰ってくる
  • 各indexの語はDocumentTermMatrixから得ることができる
  • READMEに書いてあるkmeansの例は動かないよ!

まだ使えないメソッドたち

LSA

lsa_github.png

  • SVDしてるだけだから次元数減らしとかはやってくれない
  • DocumentTermMatrixをtfidfするとSparseMatrixが帰ってくる.現状svdにSparseMatrixを受け取るのはないので落ちる(悲しい

LDA(Latenr Dirclet Allocation)

lda_github.png

まだ未実装だよ!!!!!

TopicModels.jlというライブラリもある

まとめ

  • Juliaでテキスト分析はまだプレイヤーがそんなにいないので発展途上だけど実装するのはやりやすそう
  • TextAnalysisみんなで貢献しましょう!(次はそれでLTしたい)
9
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ysekky
Gunosy co-founder 推薦エンジンとか作ります
gunosy
情報キュレーションサービス「グノシー」や「ニュースパス」の開発・運営を通じて、情報を世界の人に最適に届けていきます。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
9
Help us understand the problem. What is going on with this article?