「Perlによるテキストデータの処理方法について」の版間の差分
imported>Webmaster |
imported>Webmaster |
||
30行目: | 30行目: | ||
File:2015-12-19 9-06-31.png|データのイメージ | File:2015-12-19 9-06-31.png|データのイメージ | ||
</gallery> | </gallery> | ||
− | + | あとは、AndroidのアプリでLTEの電界強度を取得しながら色々なエリア調査を行う際に、取ってきたデータを自分の好きな情報に加工するために使用したりすることが出来る、例えば、[[G-MoN]]の様なアプリを使ってデータ収集をするようなことなど<br /> | |
− | + | 具体的には<br /> | |
− | + | <pre> | |
− | + | <Placemark> | |
+ | <name>77798400</name> | ||
+ | <description><![CDATA[Label: <b>NaN</b><br/>CID: <b>303900</b><br/>LAC: <b>16424</b><br/>PSC: <b>0</b><br/>NET: <b>44010</b><br/>TYPE: <b>LTE</b><br/>RXL: <b>-87 dBm</b><br/>QUAL: <b>-8</b><br/>Time: <b>12:21:29 2015/12/18</b>]]></description> | ||
+ | <styleUrl>#rxl92</styleUrl> | ||
+ | <Point> | ||
+ | <coordinates>138.91057,35.12693</coordinates> | ||
+ | </Point> | ||
+ | </Placemark> | ||
+ | </pre> | ||
+ | みたいなKMLファイルがあるとすると、情報は以下のように抽出することが出来る<br /> | ||
+ | *緯度:35.12693 | ||
+ | *経度:138.91057 | ||
+ | *[[CID]]:303900 | ||
+ | *[[LAC]]:16424 | ||
+ | *[[RXL]]:-87dBm | ||
+ | これを1行づつ抽出するためにはPerlが非常に便利な言語というわけである | ||
---- | ---- | ||
<!-- カテゴリに追加するページ名を記入 --> | <!-- カテゴリに追加するページ名を記入 --> | ||
[[Category:備忘録|Perlによるテキストデータの処理方法]] | [[Category:備忘録|Perlによるテキストデータの処理方法]] |
2015年12月20日 (日) 22:51時点における版
Perl(パール)とは
Perl(パール)とはテキストペースのデータ処理に特化したフリーのプログラム言語である。詳細はWikiPediaのhttps://ja.wikipedia.org/wiki/Perlを参照して欲しい
その中で特筆すべき機能として(WikiPediaより参照)
特徴
①強力な文字列処理。正規表現をサポート
②日本語をはじめとして世界中の言語を処理可能
③連想配列(ハッシュ)をサポート
④多次元データ構造が利用可能
⑤自由度の高い文法。簡潔にプログラムを記述できる
⑥高い後方互換性を持つ
⑦数多くのオペレーティングシステムで利用可能
⑧プログラムの実行には事前コンパイルは不要
⑨スクリプト言語の中では高い処理速度を持つ
⑩Unicodeのサポート
⑪モジュールによる拡張が可能
個人的に気に入っている機能としては、①・③・⑤・⑧・⑪と言った機能を使うことで、大抵のテキスト処理が出来るので非常に重宝しています。
Perlで何が出来るか
じゃあPerlを使うと何が出来るのでしょうか?簡単に言うと「テキストで書いてある文字や数字をある条件で抽出したり、変換したり、計算したりして、好きな形式に出力出来る」という機能です。絵に表すとこんな感じになります
テキストデータに「リンゴ 10個 1000円」というデータがあったときに、このデータを「林檎 十玉 壱千円」と言うように変換する時にどの様に処理しますか?
数が少なければテキストエディタ等の置換機能を使えば簡単ですが、行数が一億行とか膨大なデータであったり、りんごだけでは無く、もっと種類が増えたりしたらどうしますか?こういう場合にPerlを使用するととても簡単に処理できます
もっと具体的な内容として、「緯度・経度・WiFi電界強度」という膨大なデータがあるとします。この緯度・経度データをメッシュコートに変換して同一メッシュコードに存在するWiFi電界強度は中央値を利用して地図に表示しろ」という課題を解決するためにPerlが非常に役に立ちます。
あとは、AndroidのアプリでLTEの電界強度を取得しながら色々なエリア調査を行う際に、取ってきたデータを自分の好きな情報に加工するために使用したりすることが出来る、例えば、G-MoNの様なアプリを使ってデータ収集をするようなことなど
具体的には
<Placemark> <name>77798400</name> <description><![CDATA[Label: <b>NaN</b><br/>CID: <b>303900</b><br/>LAC: <b>16424</b><br/>PSC: <b>0</b><br/>NET: <b>44010</b><br/>TYPE: <b>LTE</b><br/>RXL: <b>-87 dBm</b><br/>QUAL: <b>-8</b><br/>Time: <b>12:21:29 2015/12/18</b>]]></description> <styleUrl>#rxl92</styleUrl> <Point> <coordinates>138.91057,35.12693</coordinates> </Point> </Placemark>
みたいなKMLファイルがあるとすると、情報は以下のように抽出することが出来る
これを1行づつ抽出するためにはPerlが非常に便利な言語というわけである