MQL4 と外部アプリの連携 ;( その 2) 別稿 2 amenbo the 3rd (C) 2011 amenbo the 3rd 構成要素別プログラム ; 日本語形態素解析プログラム ( 例 ) 本稿では テキスト データを形態素に分解する一番簡単と思われる 手法 を解説

Similar documents
テキストマイニングの登場 テキストデータのような定性データは 大量のデータ を分析することで安定した傾向が見いだせますが 人 手で大量のテキストデータを分析することは現実的に はほとんど不可能でした テキストマイニングの登場によって 大量のデータを 統一的な視点 基準から少ない労力で分析することが

1. ログイン 1-1 管理画面へのログイン 施設の作成 編集 削除や承認 公開には その操作権限を持つアカウントでログイン します アカウントについての詳細は 管理者にお問い合わせください (1) [ ユーザー ID またはメールアドレス ] と [ パスワード ] を入力後 [ ログイン ] を

Microsoft Word - CygwinでPython.docx

SAS_user_2015_fukiya01

画像ファイルを扱う これまでに学んだ条件分岐, 繰り返し, 配列, ファイル入出力を使って, 画像を扱うプログラムにチャレンジしてみよう

0_テキストマイニング環境構築_mac

nlp1-12.key

目次 JAVIS Appli の基本機能... 3 JAVIS Appli について... 3 音声確認機能 JAVIS Appli( 有償版 ) の機能... 4 音声で読みの確認をする... 4 辞書機能... 5 単語を登録する... 5 単語を削除する... 6 音声コードの作成... 7

サイボウズ Office 10「社外からアクセス」

ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spar

スライド 1

スクールCOBOL2002

2014GM58_h1

PowerPoint プレゼンテーション

基本的な利用法

FTP 共有を有効にする あらかじめ作成済みの共有フォルダーを FTP 共有可能にする設定を説明します 共有フォルダーの作成方法は 画面で見るマニュアル をご覧ください ファイル数の多い共有フォルダーを変更すると 変更が完了するまでに時間がかかる場合があります また 変更が完了するまで共有フォルダー

2.Win32API によるファイル アクセス 本稿では 読み書きするデータは テキスト ( 文字列 ) との前提で解説します ( 絶対パス指定による任意の場所のファイル アクセスを目指します ) (1) 疑問? user 32.dll はどこにある? と思った方 アメンボ以外にいませんか?? そう

Anaconda x86_64 版バージョン の インストールとパッケージの追加 最終更新 : 2018 年 2 月 10 日 URL: Anaconda は,Py

サイボウズ Office「社外からアクセス」

サイボウズ Office「リンク集」

農業・農村基盤図の大字小字コードXML作成 説明書

Java講座

1. ログイン 1-1 管理画面へのログイン 施設の作成 編集 削除や承認 公開には その操作権限を持つアカウントでログイン します アカウントについての詳細は 管理者にお問い合わせください (1) [ ユーザー ID またはメールアドレス ] と [ パスワード ] を入力後 [ ログイン ] を

TM2018 講習会資料 MTMineR を用いたテキストマイニングの基礎 同志社大学文化情報学研究科データサイエンス研究室 目次 1. イントロダクション テキストマイニングのプロセス 2. R 言語基礎 R 言語 環境 R データ型と構造 グラフィックスの作成 基礎統計解析 外部データ読み込み

基礎からの MySQL 改訂版 は Windows10 や Windows8.1 にも対応しています Windows10 および Windows8.1 をお使いの読者が 基礎からの MySQL 改訂版 を読み進めると きの補足説明 1. 基礎からの MySQL 改訂版 の Windows10 および

プログラミング基礎

サイボウズ Office 10「リンク集」

(Microsoft Word - Word\216\300\217K\212\356\221b1.doc)

LINE WORKS セットアップガイド目次 管理者画面へのログイン... 2 ドメイン所有権の確認... 3 操作手順... 3 組織の登録 / 編集 / 削除... 7 組織を個別に追加 ( マニュアル操作による登録 )... 7 組織を一括追加 (XLS ファイルによる一括登録 )... 9

eYACHO 管理者ガイド

Microsoft PowerPoint - Borland C++ Compilerの使用方法(v1.1).ppt [互換モード]

ビューアページ画像の仕様

.10.中高美術

Microsoft Word - RefWorksコース doc

Microsoft Word - Outlook_manual doc

Windows 7ファイル送信方法 SMB編

データの作成方法のイメージ ( キーワードで結合の場合 ) 地図太郎 キーワードの値は文字列です キーワードの値は重複しないようにします 同じ値にする Excel データ (CSV) 注意キーワードの値は文字列です キーワードの値は重複しないようにします 1 ツールバーの 編集レイヤの選択 から 編

目次 1. 変換の対象 砂防指定地 XML 作成メニュー シェープファイルからXMLへ変換 砂防指定地 XMLとシェープファイルの対応.csv 変換処理 CSVファイルによる属性指定... 5

FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作り

Cybozu SP スケジューラー 管理者マニュアル

印刷アプリケーションマニュアル

XAMPP で CMS のお手軽 テスト環境を手に入れよう 2011/5/21 上村崇 1

CS-DRC1操作説明書

CONTEC DIOプロバイダ ユーザーズガイド

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows : インストール・ガイド

RR1soft.book

Si 知識情報処理

Microsoft Word - tutorial3-dbreverse.docx

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows 日本語版 : インストール・ガイド

無償コンパイラ(JDK(Java Development Kit))を用いたJavaプログラムの実行方法

このうち ツールバーが表示されていないときは メニューバーから [ 表示 (V)] [ ツールバー (T)] の [ 標準のボタン (S)] [ アドレスバー (A)] と [ ツールバーを固定する (B)] をクリックしてチェックを付けておくとよい また ツールバーはユーザ ( 利用者 ) が変更

4. 半角文字コード変換表 ここでは 半角文字のコード変換についての詳細な表を記載します の文字と文字コード (16 進数 ) には 表内で灰色の網掛けを設定しています 4.1 IBMカナ文字拡張からへの変換 16 進数 16 進数 16 進数 16 進数 16 進数 16 進数 SP 0x40 S

2

モデル空間に読み込む場合 AutoCAD では 部分図および座標系の設定を 複合図形 ( ブロック ) にて行います 作図にあたっての流れは下記のとおりとなります (1) 発注図の読み込み (2) 発注図の確認 (3) 発注図の部分図の利用方法や座標設定が要領に従っていない場合の前準備 (4) 作図

作図コマンド : pscoast -R125/148/30/46 -JM15c -B5g5 -Di -W5 -S235 -X6c -Y4c > test.ps 作図例 : 2 分布図の作成 2.1 点を描く 地点の分布を作図するときは たとえば以下のように行います > pscoast -R125/1

本文書は、SAP ERP(以下、SAP)の消費税機能の概要について説明したものです

PowerPoint プレゼンテーション

今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること

サイボウズ Office 10「個人フォルダ」

無料で多機能な OSS の ETL ツール Kettle を使ってみよう! 情報政策課技術職員金森浩治 1. はじめにデータ処理を行うにあたって非常に便利なツール ETL 本稿では OSS の ETL Kettle の機能とその使用方法を紹介します 2. 用語説明 2.1 OSS とは? OSS と

OneDrive の初期設定を行う 1. に接続します 電子メールアドレス およびパスワードを入力して [ サインイン ] をクリックします 2. office365 ホーム画面より [OneDrive]

Android Layout SDK プログラミング マニュアル

Microsoft Word - Python利用環境構築ガイド_ docx

Maser - User Operation Manual

目次 第 1 章はじめに 取扱いについて 記載内容について... 6 第 2 章基本操作 Excel Online を開く ファイル ( ブック ) を作成する ファイル ( ブック ) を開く..

Java Bridgeを利用した他言語によるデータロード&プロットデモ

AqKanji2Koe Win マニュアル

3.Cygwin で日本語を使いたい Cygwin で以下のコマンドを実行すると それ以降 メッセージが日本語になります export LANG=ja_JP.UTF-8 これは 文字コードを日本語の UTF-8 に設定することを意味しています UTF-8 は Cygwin で標準の文字コードで, 多

指定立替納付を使った場合の 国内提出書類の提出方法 1 出願書類や 納付書などを 指定立替納付で支払う場合の手順をご案内します ここでは ひな型を Word で編集する場合の手順を案内します 他を利用する場合は ユーザガイドをご覧ください (1) 指定立替納付を使うための事前準備 a. クレジットカ

Transcription:

MQL4 と外部アプリの連携 ;( その 2) 別稿 2 amenbo the 3rd 2018.04.14 構成要素別プログラム ; 日本語形態素解析プログラム ( 例 ) 本稿では テキスト データを形態素に分解する一番簡単と思われる 手法 を解説します 読者が 本稿を核 ( ベース ) として更に高度な方法を身に着けることを期待します (Python コード ( 文法 ) の解説はしません WEB 上に豊富にある情報を参照ください ) 目次 1.Python 用モジュール追加 P1 2. 基礎の基礎 (Python プログラム ) (1) プログラム例 -1 P2 (2) 実行結果 P3 (3) 概要解説 P4 3. テキスト ファイルのデータ解析 (Python プログラム ) (1) プログラム例 -2 P4 (2) 実行結果 P7 (3) 概要解説 P11 1.Python 用モジュール追加 本稿で使う日本語形態素解析用のライブラリは janome( 蛇の目 ) です 色々なライブラリがありますが インストールが簡単なので選びました コマンドプロンプト ( コンソール ) 上 python への path が通る場所 ( フォルダー ) で下記の pip コマンドを使いインストールします pip install janome 上記のコマンドを実行すると PyPI サイト (PyPI-the Python Package Index) に登録された janome ライブラリを Python にインストールします 通常のインストール先は (python のインストール先 )/Lib/site-packages フォルダです janome; 日本語形態素解析 用のライブラリです Janome の詳細は 下記を参照ください 他にも WEB 上に情報が多々ありますので 興味のある方は調査すると面白いです http://mocobeta.github.io/janome/ 1/13

2. 基礎の基礎 (Python プログラム ) (1) プログラム例 -1 [text_mining_01.py] # -*- coding: utf-8 -*- Created on Tue Mar 20 23:39:48 2018 text_mining_01.py @author: amenbo from janome.tokenizer import Tokenizer #t=tokenizer()# ケース1 t=tokenizer("user_simpledic.csv",udic_type="simpledic",udic_enc="utf8")# ケース2 ''' utf8 で作ったユーザー辞書を使う場合 terapad 等でテキスト.txt として作成してから.csv に変える ''' for token in t.tokenize(' 日経平均先物や為替とビットコインの間に関連性 つまり相関はあるのでしょうか '): print(token) ケース 1 と ケース 2 は どちらかの # を外して動作させてください ケース 1 と ケース 2 では動作が若干異なります # 記号より後ろの 1 行分 ( 文字 ) はコメントと見なされます ユーザー辞書 ;( 本稿では 簡易版の辞書としました ) [user_simpledic.csv] 日経平均先物, カスタム名詞, ニッケイヘイキンサキモノビットコイン, カスタム名詞, ビットコイン関連性, カスタム名詞, カンレンセイ 作成方法 ; 辞書は 文字コード ;utf-8 で作っておくほうが無難です TeraPad などで 文字コード を utf-8 に指定して 内容を書込み後に一旦 user_simpledic.txt として保存します その後 拡張子を.txt から.csv に変更して作成します このファイルは本稿では text_mining_01.py と同一の場所 ( フォルダー中 ) に置いています 2/13

(2) 実行結果 ケース1 の場合 t=tokenizer()# ケース1 を活かす日経名詞, 固有名詞, 組織,*,*,*, 日経, ニッケイ, ニッケイ平均名詞, サ変接続,*,*,*,*, 平均, ヘイキン, ヘイキン先物名詞, 一般,*,*,*,*, 先物, サキモノ, サキモノや助詞, 並立助詞,*,*,*,*, や, ヤ, ヤ為替名詞, 一般,*,*,*,*, 為替, カワセ, カワセと助詞, 並立助詞,*,*,*,*, と, ト, トビット名詞, 一般,*,*,*,*, ビット, ビット, ビットコイン名詞, 一般,*,*,*,*, コイン, コイン, コインの助詞, 連体化,*,*,*,*, の, ノ, ノ間名詞, 一般,*,*,*,*, 間, マ, マに助詞, 格助詞, 一般,*,*,*, に, ニ, ニ関連名詞, サ変接続,*,*,*,*, 関連, カンレン, カンレン性名詞, 接尾, 一般,*,*,*, 性, セイ, セイ 記号, 読点,*,*,*,*,,, つまり接続詞,*,*,*,*,*, つまり, ツマリ, ツマリ相関名詞, サ変接続,*,*,*,*, 相関, ソウカン, ソーカンは助詞, 係助詞,*,*,*,*, は, ハ, ワある動詞, 自立,*,*, 五段 ラ行, 基本形, ある, アル, アルの名詞, 非自立, 一般,*,*,*, の, ノ, ノでしょ助動詞,*,*,*, 特殊 デス, 未然形, です, デショ, デショう助動詞,*,*,*, 不変化型, 基本形, う, ウ, ウか助詞, 副助詞 / 並立助詞 / 終助詞,*,*,*,*, か, カ, カ ケース2 の場合 t=tokenizer("user_simpl c="utf8")# ケース2 を活かす日経平均先物カスタム名詞,*,*,*,*,*, 日経平均先物, ニッケイヘイキンサキモノ, ニッケイヘイキンサキモノや助詞, 並立助詞,*,*,*,*, や, ヤ, ヤ為替名詞, 一般,*,*,*,*, 為替, カワセ, カワセと助詞, 並立助詞,*,*,*,*, と, ト, トビットコインカスタム名詞,*,*,*,*,*, ビットコイン, ビットコイン, ビットコインの助詞, 連体化,*,*,*,*, の, ノ, ノ間名詞, 一般,*,*,*,*, 間, マ, マに助詞, 格助詞, 一般,*,*,*, に, ニ, ニ関連性カスタム名詞,*,*,*,*,*, 関連性, カンレンセイ, カンレンセイ 記号, 読点,*,*,*,*,,, つまり接続詞,*,*,*,*,*, つまり, ツマリ, ツマリ相関名詞, サ変接続,*,*,*,*, 相関, ソウカン, ソーカンは助詞, 係助詞,*,*,*,*, は, ハ, ワある動詞, 自立,*,*, 五段 ラ行, 基本形, ある, アル, アルの名詞, 非自立, 一般,*,*,*, の, ノ, ノでしょ助動詞,*,*,*, 特殊 デス, 未然形, です, デショ, デショう助動詞,*,*,*, 不変化型, 基本形, う, ウ, ウか助詞, 副助詞 / 並立助詞 / 終助詞,*,*,*,*, か, カ, カ 3/13

(3) 概要解説 # -*- coding: utf-8 -*- Spyder で [ ファイル ]-[ 新規ファイル ] を選択すると 作成される python プログラム ファイ ルに自動的に書き込まれているコードです プログラムの文字コードが UTF-8 に指定されています Created on Tue Mar 20 23:39:48 2018 text_mining_01.py @author: amenbo と で囲まれた部分は コメントとして処理されます [text_mining_01.py] 部分は 小生が追記しましたが 他はファイル作成時に自動的に作成されたものです from janome.tokenizer import Tokenizer 1 #t=tokenizer()# ケース1 2-1 t=tokenizer("user_simpledic.csv",udic_type="simpledic",udic_enc="utf8")# ケース2 2-2 1 pip でインストール済の janome ライブラリから 日本語形態素 分析用の Tokenizer パッケージをインポートします 2-1( ケース 1)Tokenizer のオブジェクトを作成します 2-2( ケース 2)Tokenizer のオブジェクトを作成するのは同じですが janome 備え付け辞書以外に ユーザー辞書 ( 簡易版 文字コードは utf-8) も使う事を指定しています ''' utf8 で作ったユーザー辞書を使う場合 terapad 等でテキスト.txt として作成してから.csv に変える ''' これはコメントです for token in t.tokenize(' 日経平均先物や為替とビットコインの間に関連性 つまり相関はある のでしょうか '): 3 print(token) 4 3 tokenizer() メソッドに 形態素 解析したい文字列 '*** ' を渡しています 4 形態素 解析した結果をプリント ( 表示 ) します 4/13

3. テキスト ファイルのデータ解析 (Python プログラム ) (1) プログラム例 -2 [text_mining_02.py] # -*- coding: utf-8 -*- Created on Thu Mar 22 22:19:31 2018 text_mining_02.py @author: amenbo # python 解析器 janome をインポート - 1 from janome.tokenizer import Tokenizer # 形態素解析用オブジェクトの生成 - 2 text = Tokenizer() # txt ファイルからデータの読み込み - 3 text_file = open("text_1.txt")# ファイルは shift-jis で動作 #text_file = open("text_1.txt",encoding="utf-8")# ファイルもUTF-8にしているこの場合も動作 OK bindata = text_file.read() txt = bindata #print(txt) # 動作 OK # txt から読み込んだデータを形態素解析 - 4 #lines = txt.split("\r\n")# なんか うまく行かない lines = txt.split("\n") for i in lines: print(i) text_c = text.tokenize(i) for j in text_c: print(j) print("--------------------------------------------") 5/13

# テキストを一行ごとに処理 - 5 word_dic = {} #lines_1 = txt.split("\r\n")# 何か 上手く分離できない lines_1 = txt.split("\n") print(lines_1) for line in lines_1: malist = text.tokenize(line) #print(malist) for w in malist: word = w.surface #print(word) ps = w.part_of_speech # 品詞 - 6 re=w.reading # 読み print("word:%s \t ps:%s \t re:%s" %(word,ps,re)) if ps.find(" 名詞 ") < 0: continue # 名詞だけをカウント - 7 if not word in word_dic: word_dic[word] = 0 word_dic[word] += 1 print("--------------------------------------------") print("word_dic の中身 : \n") print(word_dic) print("--------------------------------------------") print(" 名刺の使用頻度 : \n") # よく使われる単語を表示 - 8 keys = sorted(word_dic.items(), key=lambda x:x[1], reverse=true) for word, cnt in keys[:50]: print("{0}({1}) ".format(word,cnt), end="") 6/13

[text_1.txt] 私の名前はアメンボです 住まいは狛江市ですが国領駅の方が近いです 今 テキストマイニングの練習をしています 趣味は 地域活動 と MQL4 原語による プログラミング です 貴方の名前は お住まいは何所ですか 最寄り駅は何所ですか 国領駅から近いですか? お仕事と趣味を教えてください ところで投資には興味がありますか 作成方法 ; 本稿では 敢て shift-jis で作ってみました utf-8 でも当然 問題ありません (2) 実行結果 ユーザー辞書を設定していないので 一部は不自然な形態素に分解されています 例 ; 狛江市 国領駅 MQL 4 など 私の名前はアメンボです 私名詞, 代名詞, 一般,*,*,*, 私, ワタシ, ワタシの助詞, 連体化,*,*,*,*, の, ノ, ノ名前名詞, 一般,*,*,*,*, 名前, ナマエ, ナマエは助詞, 係助詞,*,*,*,*, は, ハ, ワアメンボ名詞, 一般,*,*,*,*, アメンボ, アメンボ, アメンボです助動詞,*,*,*, 特殊 デス, 基本形, です, デス, デス 住まいは狛江市ですが国領駅の方が近いです 住まい名詞, 一般,*,*,*,*, 住まい, スマイ, スマイは助詞, 係助詞,*,*,*,*, は, ハ, ワ狛江名詞, 固有名詞, 地域, 一般,*,*, 狛江, コマエ, コマエ市名詞, 接尾, 地域,*,*,*, 市, シ, シです助動詞,*,*,*, 特殊 デス, 基本形, です, デス, デスが助詞, 接続助詞,*,*,*,*, が, ガ, ガ国領名詞, 固有名詞, 地域, 一般,*,*, 国領, コクリョウ, コクリョー駅名詞, 接尾, 地域,*,*,*, 駅, エキ, エキの助詞, 連体化,*,*,*,*, の, ノ, ノ方名詞, 非自立, 一般,*,*,*, 方, ホウ, ホーが助詞, 格助詞, 一般,*,*,*, が, ガ, ガ近い形容詞, 自立,*,*, 形容詞 アウオ段, 基本形, 近い, チカイ, チカイです助動詞,*,*,*, 特殊 デス, 基本形, です, デス, デス 今 テキストマイニングの練習をしています 今名詞, 副詞可能,*,*,*,*, 今, イマ, イマ 記号, 読点,*,*,*,*,,, テキスト名詞, 一般,*,*,*,*, テキスト, テキスト, テキストマイニング名詞, サ変接続,*,*,*,*, マイニング, マイニング, マイニングの助詞, 連体化,*,*,*,*, の, ノ, ノ練習名詞, サ変接続,*,*,*,*, 練習, レンシュウ, レンシューを助詞, 格助詞, 一般,*,*,*, を, ヲ, ヲし動詞, 自立,*,*, サ変 スル, 連用形, する, シ, シ 7/13

て助詞, 接続助詞,*,*,*,*, て, テ, テい動詞, 非自立,*,*, 一段, 連用形, いる, イ, イます助動詞,*,*,*, 特殊 マス, 基本形, ます, マス, マス 趣味は 地域活動 と MQL4 原語による プログラミング です 趣味名詞, 一般,*,*,*,*, 趣味, シュミ, シュミは助詞, 係助詞,*,*,*,*, は, ハ, ワ 記号, 括弧開,*,*,*,*,,, 地域名詞, 一般,*,*,*,*, 地域, チイキ, チイキ活動名詞, サ変接続,*,*,*,*, 活動, カツドウ, カツドー 記号, 括弧閉,*,*,*,*,,, と助詞, 格助詞, 引用,*,*,*, と, ト, ト MQL 名詞, 一般,*,*,*,*,MQL,*,* 4 名詞, 数,*,*,*,*,4,*,* 原語名詞, 一般,*,*,*,*, 原語, ゲンゴ, ゲンゴによる助詞, 格助詞, 連語,*,*,*, による, ニヨル, ニヨル 記号, 括弧開,*,*,*,*,,, プログラミング名詞, サ変接続,*,*,*,*, プログラミング, プログラミング, プログラミング 記号, 括弧閉,*,*,*,*,,, です助動詞,*,*,*, 特殊 デス, 基本形, です, デス, デス 貴方の名前は 貴方名詞, 代名詞, 一般,*,*,*, 貴方, アナタ, アナタの助詞, 連体化,*,*,*,*, の, ノ, ノ名前名詞, 一般,*,*,*,*, 名前, ナマエ, ナマエは助詞, 係助詞,*,*,*,*, は, ハ, ワ お住まいは何所ですか 最寄り駅は何所ですか 国領駅から近いですか? お接頭詞, 名詞接続,*,*,*,*, お, オ, オ住まい名詞, 一般,*,*,*,*, 住まい, スマイ, スマイは助詞, 係助詞,*,*,*,*, は, ハ, ワ何名詞, 代名詞, 一般,*,*,*, 何, ナニ, ナニ所名詞, 接尾, 一般,*,*,*, 所, ショ, ショです助動詞,*,*,*, 特殊 デス, 基本形, です, デス, デスか助詞, 副助詞 / 並立助詞 / 終助詞,*,*,*,*, か, カ, カ 記号, 読点,*,*,*,*,,, 最寄り駅名詞, 一般,*,*,*,*, 最寄り駅, モヨリエキ, モヨリエキは助詞, 係助詞,*,*,*,*, は, ハ, ワ何名詞, 代名詞, 一般,*,*,*, 何, ナニ, ナニ所名詞, 接尾, 一般,*,*,*, 所, ショ, ショです助動詞,*,*,*, 特殊 デス, 基本形, です, デス, デスか助詞, 副助詞 / 並立助詞 / 終助詞,*,*,*,*, か, カ, カ 記号, 読点,*,*,*,*,,, 国領名詞, 固有名詞, 地域, 一般,*,*, 国領, コクリョウ, コクリョー駅名詞, 接尾, 地域,*,*,*, 駅, エキ, エキから助詞, 格助詞, 一般,*,*,*, から, カラ, カラ近い形容詞, 自立,*,*, 形容詞 アウオ段, 基本形, 近い, チカイ, チカイです助動詞,*,*,*, 特殊 デス, 基本形, です, デス, デスか助詞, 副助詞 / 並立助詞 / 終助詞,*,*,*,*, か, カ, カ? 記号, 一般,*,*,*,*,?,?,? お仕事と趣味を教えてください ところで投資には興味がありますか お仕事と趣味 接頭詞, 名詞接続,*,*,*,*, お, オ, オ名詞, サ変接続,*,*,*,*, 仕事, シゴト, シゴト助詞, 並立助詞,*,*,*,*, と, ト, ト名詞, 一般,*,*,*,*, 趣味, シュミ, シュミ 8/13

を助詞, 格助詞, 一般,*,*,*, を, ヲ, ヲ教え動詞, 自立,*,*, 一段, 連用形, 教える, オシエ, オシエて助詞, 接続助詞,*,*,*,*, て, テ, テください動詞, 非自立,*,*, 五段 ラ行特殊, 命令 i, くださる, クダサイ, クダサイ 記号, 読点,*,*,*,*,,, ところで接続詞,*,*,*,*,*, ところで, トコロデ, トコロデ投資名詞, サ変接続,*,*,*,*, 投資, トウシ, トーシに助詞, 格助詞, 一般,*,*,*, に, ニ, ニは助詞, 係助詞,*,*,*,*, は, ハ, ワ興味名詞, 一般,*,*,*,*, 興味, キョウミ, キョーミが助詞, 格助詞, 一般,*,*,*, が, ガ, ガあり動詞, 自立,*,*, 五段 ラ行, 連用形, ある, アリ, アリます助動詞,*,*,*, 特殊 マス, 基本形, ます, マス, マスか助詞, 副助詞 / 並立助詞 / 終助詞,*,*,*,*, か, カ, カ -------------------------------------------- [' 私の名前はアメンボです ', ' 住まいは狛江市ですが国領駅の方が近いです ', ' 今 テキストマイニングの練習をしています ', ' 趣味は 地域活動 と MQL4 原語による プログラミング です ', ' 貴方の名前は ', ' お住まいは何所ですか 最寄り駅は何所ですか 国領駅から近いですか?', ' お仕事と趣味を教えてください ところで投資には興味がありますか '] word: 私 ps: 名詞, 代名詞, 一般,* re: ワタシ word: の ps: 助詞, 連体化,*,* re: ノ word: 名前 ps: 名詞, 一般,*,* re: ナマエ word: アメンボ ps: 名詞, 一般,*,* re: アメンボ word: ps: 記号, 句点,*,* re: word: 住まい ps: 名詞, 一般,*,* re: スマイ word: 狛江 ps: 名詞, 固有名詞, 地域, 一般 re: コマエ word: 市 ps: 名詞, 接尾, 地域,* re: シ word: が ps: 助詞, 接続助詞,*,* re: ガ word: 国領 ps: 名詞, 固有名詞, 地域, 一般 re: コクリョウ word: 駅 ps: 名詞, 接尾, 地域,* re: エキ word: の ps: 助詞, 連体化,*,* re: ノ word: 方 ps: 名詞, 非自立, 一般,* re: ホウ word: が ps: 助詞, 格助詞, 一般,* re: ガ word: 近い ps: 形容詞, 自立,*,* re: チカイ word: ps: 記号, 句点,*,* re: word: 今 ps: 名詞, 副詞可能,*,* re: イマ word: ps: 記号, 読点,*,* re: word: テキスト ps: 名詞, 一般,*,* re: テキスト word: マイニング ps: 名詞, サ変接続,*,* re: マイニング word: の ps: 助詞, 連体化,*,* re: ノ word: 練習 ps: 名詞, サ変接続,*,* re: レンシュウ word: を ps: 助詞, 格助詞, 一般,* re: ヲ word: し ps: 動詞, 自立,*,* re: シ word: て ps: 助詞, 接続助詞,*,* re: テ word: い ps: 動詞, 非自立,*,* re: イ word: ます ps: 助動詞,*,*,* re: マス word: ps: 記号, 句点,*,* re: word: 趣味 ps: 名詞, 一般,*,* re: シュミ word: ps: 記号, 括弧開,*,* re: word: 地域 ps: 名詞, 一般,*,* re: チイキ word: 活動 ps: 名詞, サ変接続,*,* re: カツドウ word: ps: 記号, 括弧閉,*,* re: word: と ps: 助詞, 格助詞, 引用,* re: ト word:mql ps: 名詞, 一般,*,* re:* word:4 ps: 名詞, 数,*,* re:* word: 原語 ps: 名詞, 一般,*,* re: ゲンゴ word: による ps: 助詞, 格助詞, 連語,* re: ニヨル word: ps: 記号, 括弧開,*,* re: 9/13

word: プログラミング ps: 名詞, サ変接続,*,* re: プログラミング word: ps: 記号, 括弧閉,*,* re: word: ps: 記号, 句点,*,* re: word: 貴方 ps: 名詞, 代名詞, 一般,* re: アナタ word: の ps: 助詞, 連体化,*,* re: ノ word: 名前 ps: 名詞, 一般,*,* re: ナマエ word: ps: 記号, 句点,*,* re: word: お ps: 接頭詞, 名詞接続,*,* re: オ word: 住まい ps: 名詞, 一般,*,* re: スマイ word: 何 ps: 名詞, 代名詞, 一般,* re: ナニ word: 所 ps: 名詞, 接尾, 一般,* re: ショ word: か ps: 助詞, 副助詞 / 並立助詞 / 終助詞,*,* re: カ word: ps: 記号, 読点,*,* re: word: 最寄り駅 ps: 名詞, 一般,*,* re: モヨリエキ word: 何 ps: 名詞, 代名詞, 一般,* re: ナニ word: 所 ps: 名詞, 接尾, 一般,* re: ショ word: か ps: 助詞, 副助詞 / 並立助詞 / 終助詞,*,* re: カ word: ps: 記号, 読点,*,* re: word: 国領 ps: 名詞, 固有名詞, 地域, 一般 re: コクリョウ word: 駅 ps: 名詞, 接尾, 地域,* re: エキ word: から ps: 助詞, 格助詞, 一般,* re: カラ word: 近い ps: 形容詞, 自立,*,* re: チカイ word: か ps: 助詞, 副助詞 / 並立助詞 / 終助詞,*,* re: カ word:? ps: 記号, 一般,*,* re:? word: お ps: 接頭詞, 名詞接続,*,* re: オ word: 仕事 ps: 名詞, サ変接続,*,* re: シゴト word: と ps: 助詞, 並立助詞,*,* re: ト word: 趣味 ps: 名詞, 一般,*,* re: シュミ word: を ps: 助詞, 格助詞, 一般,* re: ヲ word: 教え ps: 動詞, 自立,*,* re: オシエ word: て ps: 助詞, 接続助詞,*,* re: テ word: ください ps: 動詞, 非自立,*,* re: クダサイ word: ps: 記号, 読点,*,* re: word: ところで ps: 接続詞,*,*,* re: トコロデ word: 投資 ps: 名詞, サ変接続,*,* re: トウシ word: に ps: 助詞, 格助詞, 一般,* re: ニ word: 興味 ps: 名詞, 一般,*,* re: キョウミ word: が ps: 助詞, 格助詞, 一般,* re: ガ word: あり ps: 動詞, 自立,*,* re: アリ word: ます ps: 助動詞,*,*,* re: マス word: か ps: 助詞, 副助詞 / 並立助詞 / 終助詞,*,* re: カ word: ps: 記号, 句点,*,* re: -------------------------------------------- word_dic の中身 : {' 私 ': 1, ' 名前 ': 2, ' アメンボ ': 1, ' 住まい ': 2, ' 狛江 ': 1, ' 市 ': 1, ' 国領 ': 2, ' 駅 ': 2, ' 方 ': 1, ' 今 ': 1, ' テキスト ': 1, ' マイニング ': 1, ' 練習 ': 1, ' 趣味 ': 2, ' 地域 ': 1, ' 活動 ': 1, 'MQL': 1, '4': 1, ' 原語 ': 1, ' プログラミング ': 1, ' 貴方 ': 1, ' お ': 2, ' 何 ': 2, ' 所 ': 2, ' 最寄り駅 ': 1, ' 仕事 ': 1, ' 投資 ': 1, ' 興味 ': 1} -------------------------------------------- 名刺の使用頻度 : 名前 (2) 住まい (2) 国領 (2) 駅 (2) 趣味 (2) お (2) 何 (2) 所 (2) 私 (1) アメンボ (1) 狛江 (1) 市 (1) 方 (1) 今 (1) テキスト (1) マイニング (1) 練習 (1) 地域 (1) 活動 (1) MQL(1) 4(1) 原語 (1) プログラミング (1) 貴方 (1) 最寄り駅 (1) 仕事 (1) 投資 (1) 興味 (1) 10/13

(3) 概要解説 # -*- coding: utf-8 -*- Created on Thu Mar 22 22:19:31 2018 text_mining_02.py @author: amenbo 例 -1と同様に 上記部分はコメントとして処理されます # python 解析器 janome をインポート - 1 from janome.tokenizer import Tokenizer # 形態素解析用オブジェクトの生成 - 2 text = Tokenizer() janome ライブラリから 日本語形態素 分析用の Tokenizer パッケージを インポートしてから Tokenizer のオブジェクトを作成します ただし Tokenizer オブジェクト作成時に辞書等の指定は行っていません # txt ファイルからデータの読み込み - 3 text_file = open("text_1.txt")# ファイルは shift-jis で動作 1 #text_file = open("text_1.txt",encoding="utf-8")# ファイルもUTF-8にしているこの場合も動作 OK bindata = text_file.read() 2 txt = bindata 3 #print(txt) # 動作 OK 例-1 の場合と異なり 形態素 解析する対象は text_1.txt に記載されたテキストです 手順 ; 1 先ず テキストファイル text_1.txt を開き 2 その内容を読み取って (.read()) 3 一度 テキスト変数 (txt) として設定します 小生のやり方ですが 11/13

# txt から読み込んだデータを形態素解析 - 4 #lines = txt.split("\r\n")# なんか うまく行かない lines = txt.split("\n") 4 for i in lines: 5 print(i) text_c = text.tokenize(i) for j in text_c: print(j) print("--------------------------------------------") 4 改行コードを利用して テキストを 1 行 ごとに リスト 形式に分離します 5 リストの各要素 ( つまり 1 行 ) ごとに 形態素 解析していきます # テキストを一行ごとに処理 - 5 word_dic = {} #lines_1 = txt.split("\r\n")# 何か 上手く分離できない lines_1 = txt.split("\n") 6 print(lines_1) 7 for line in lines_1: 8 malist = text.tokenize(line) #print(malist) for w in malist: 9 word = w.surface #print(word) ps = w.part_of_speech # 品詞 - 6 re=w.reading # 読み print("word:%s \t ps:%s \t re:%s" %(word,ps,re)) if ps.find(" 名詞 ") < 0: continue # 名詞だけをカウント 7 if not word in word_dic: word_dic[word] = 0 word_dic[word] += 1 print("--------------------------------------------") 10 12/13

6 4 と同じ 改行コードを利用して テキストを 1 行 ごとに リスト 形式に分離 7 上記 6 の内容をプリント 81 行ごとに形態素解析を行います 9 上記 8 の処理として [.surface] = 名詞 [.part_of_speech]= 品詞 [.reading]= 読みを検出して書き出しています 10 各種の品詞の中から 同じ 名詞 のみ 出現頻度をカウントしています print("word_dic の中身 : \n") print(word_dic) print("--------------------------------------------") print(" 名刺の使用頻度 : \n") word_dic( 辞書 ) 形式に保存されたデータを書出し # よく使われる単語を表示 - 8 keys = sorted(word_dic.items(), key=lambda x:x[1], reverse=true) for word, cnt in keys[:50]: print("{0}({1}) ".format(word,cnt), end="") 出現頻度の高い 名詞 の 上位 50 番目まで を書き出します janome( 日本語形態素解析用のライブラリ ) は 導入が非常に簡単な割に高機能で使い易いです ( 他にもライブラリは色々あるようですが ) アメンボは ほんの触り 程度に使っただけです 興味のある読者は色々と試してみることをお勧めします 以上 13/13