#author("2019-10-24T08:42:21+00:00","","")
#author("2019-10-24T08:42:44+00:00","","")
[[小野田]]

ここでは主にテキストマイニングの環境構築について述べる

言語はPythonを想定する
OSはwindowsだと文字コードの問題が発生するのでOSXもしくはLinux推奨!

*必要なツール,モジュールリスト [#kdc9920c]


-形態素解析ツール
--MeCab
-MeCabをPythonで使用するためのラッパー
--mecab-python(python3.x系の場合はmecab-python3)
-拡張辞書(これを入れると最新の固有名詞に対応できる)
--mecab-ipadic-neologed



以上は下のサイトに詳細があるのでそちらを参照
https://qiita.com/elm200/items/2c2aa2093e670036bb30



 mecab 
 安倍晋三首相
と入力して

 安倍晋三首相  名詞,固有名詞,一般,*,*,*,安倍晋三,アベシンゾウシュショウ,アベシンゾウシュショー
 EOS
と出力されればmecabと拡張辞書がインストールされたことになる


*Pythonで使う場合 [#kcb29c3f]
 import MeCab
 from yomogi.normalize_neologd import *

辞書を設定
 tagger = MeCab.Tagger("mecabrc") #他には-Ochasen等あるがこれが一番高精度

日本語を解析する場合, 以下の一文を入れないとノイズが入る
 tagger.parse("")

実際に形態素解析を行う
 tagger.parse("今日もしないとね")

出力例
 今日  キョウ   今日  名詞-副詞可能     
 も モ も 助詞-係助詞        
 し シ する  動詞-自立   サ変・スル 未然形
 ない  ナイ  ない  助動詞   特殊・ナイ 基本形
 と ト と 助詞-接続助詞     
 ね ネ ね 助詞-終助詞        
 EOS

*高度な形態素解析 [#kcad540b]
[[こちら>https://github.com/pomcho555/Yomogi]]にmecabをより使いやすくした高レベルAPIがあるのでインストール

ソースファイルをgithub経由でダウンロード
 git clone https://github.com/pomcho555/Yomogi.git
インストールしたディレクトリに移動
 cd <installed directory>
Pythonのパッケージマネージャーpipにモジュールをインストール
 pip install -e .

***使い方 [#i466b88d]
よもぎをimport
 import yomogi
文章のリストを作成
 text = ['よもぎの若葉を干しておいたのちに煎じて飲むと、健胃、腹痛、下痢、貧血、冷え性などに効果がありますよ。']
特定の品詞を抽出してそのリストをもらう(前処理付き)
 word_list = yomogi.extract(text, '名詞')


***山元君用テキスト可視化手法 [#he515de7]
前処理にすべてword2vecを用います

以下記事の使っているテキストデータは山元くんのものに置き換えて考えてください
- [[様々な可視化>https://qiita.com/naotaka1128/items/e617f63907fed035408a]]
- [[ワードクラウド>https://medium.com/ml2vec/using-word2vec-to-analyze-reddit-comments-28945d8cee57]]



**おまけ [#p4655f37]
遅くてもとりあえず分かち書きを含む言語処理を手軽にしたい場合はjanomeがオススメ
http://mocobeta.github.io/janome/


** 分散表現モデルの作り方 [#tb1843ab]

ネットでダウンロードしたTXTファイルと保存先のディレクトリを定義
# load word embedding
 model_dir = './data/glove.840B.300d.txt'
 gensim_model_dir = './gensim_vectors.txt'

import pandas as pd
import numpy as np
 import pandas as pd
 import numpy as np

# 単語ラベルをインデックスにしてDataFrameで読み込む
 vectors = pd.read_csv(model_dir, delimiter=' ', index_col=0, header=None)

 from gensim.models import KeyedVectors

 model =  KeyedVectors.load_word2vec_format(gensim_model_dir, binary=False)

 model.save("./glove.840B.300d.model")

 del model

 model = KeyedVectors.load("./glove.840B.300d.model", mmap='r')
 #word2vec.Word2Vec.load("./wiki.model")

 words = model.wv.vocab
 word_to_ix = {}
 ix_to_word = []
 ix = 0
 for word in words:
     word_to_ix[word] = ix
     ix+=1

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS