テキストマイニング入門
の編集
Top
/
テキストマイニング入門
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
島部/menu/template
[[小野田]] ここでは主にテキストマイニングの環境構築について述べる 言語は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 # 単語ラベルをインデックスにして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
タイムスタンプを変更しない
[[小野田]] ここでは主にテキストマイニングの環境構築について述べる 言語は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 # 単語ラベルをインデックスにして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
テキスト整形のルールを表示する