cloud9上でのPython による日本語自然言語処理 その2

futuraso.hatenablog.com

日本語自然言語処理学習の続き。

以下のコードで結果が表示されない。

print ' '.join( set(w for w,t in genpaku.tagged_words()
if t[0] == u"コウショウ") )

そもそも「tagged_words() メソッドで返される各要素の第 2 要素は、品詞の情報とともに読みの情報を含んでいるので、この情報を使ってみよう。」
と記述しているのに第2要素 == u"コウショウ"では取得できないような気がする。。。

とりあえず、以下のコードで同じような結果が出た。

wd = set()
for w,t in genpaku.tagged_words():
    itemList=t.split('\t')
    if u"コウショウ" in itemList[0]:
        wd.add(w)
print (' '.join(set(wd)))

でももっとスマートな書き方があるかも。

cloud9上でのPython による日本語自然言語処理

Python による日本語自然言語処理のコードをcloud9上で実行してみるときにいくつかつまずいたのでメモ。


  • インポート文で構文エラー表示される

 以下のインポート文でエディタ左側にエラー表示される。

from nltk.corpus.reader import *
from nltk.corpus.reader.util import *

 ×印にマウスをあてると「No name 'reader' in module 'LazyModule'」と表示されるが
 結局そのまま実行しても特に問題無かった。
 pathの設定が必要なのかな?

  • JEITA 形態素解析済みコーパスをダウンロードしようとするとcloud9のHDD容量上限の2GBを余裕で超えエラーとなってしまう。

 以下のインポートを実行すると表示される画面からJEITAコーパスをDLしようとすると、
 JEITA以外の様々なファイルも一緒に落とさないと行けないので総容量が4GBを超えてしまう。

import nltk
nltk.download()

 目的のコーパスだけ落とすのが不可能だったので結局ローカルのwin端末に
 python実行環境を作成し、上記でDL後にJEITAコーパスのみcloud9にUPした。

  • ChasenCorpusReaderがgooglecodeでリンク切れ

 このサイトで指定されているリンクが切れているのでどうしたものかと思ったが、
 そもそも現在のnltkはchasenライブラリーを含んでいるようなので、

from nltk.corpus.reader.chasen import *

 でインポートする。

  • printでエラー

 以下のprint文でシンタックスエラーとなった。

print '/'.join( jeita.words()[22100:22140] )

 python3からprintは()で囲うのが正式になったらしいので以下で解決。

print ('/'.join( jeita.words()[22100:22140] ))

cloud9のワークスペースのデフォルトサイズが縮小されてる問題

あくる日cloud9でテストコードを書こうと新しいワークスペースを作成しようとすると、メモリ:512MB ディスク容量:2GBのワークスペースしか作成されない。

以前に作ったものは、メモリ:1GB ディスク容量:5GBのワークスペースがデフォルトで作成されていたのでオカシイぞとググッてみた。

community.c9.io

ここで中の人が言っているのは「今までみたいなスペックのクラウド環境使える様にしてると、みんなそれで満足しちゃって誰も有料ユーザにならないから公式コメント無しで変えちゃったわ。ごめんね~」ってところかな?

ん~、確かにちょっと物足りない感じではあるけど、タダだししょうがないのかな~。

cloud9上で開発している時にmysqlの検索結果が文字化けする問題

cloud9でPHPのプロジェクトを試しに作成していたときにmysqlの検索結果が文字化けしてしまう際の対応内容の備忘録

  • phpmyadmin等で「SHOW VARIABLES LIKE "chara%"」でDBのデフォルト値を確認する。
  • 「sudo vi /etc/mysql/my.cnf」で設定ファイルを以下の要領で編集する。
    [mysqld]セクション末尾に「character-set-server=utf8」を追加。
    [client]セクション末尾に「default-character-set=utf8」を追加。
  • 「ESC」キー後に「:wq」でmy.cnfの編集内容を保存する。
  • mysql-ctl restart」でmysqlを再起動する。
  • 再度phpmyadmin等で「SHOW VARIABLES LIKE "chara%"」を実行し”~latin~”の設定がなくなっていればOK。

そもそもUNIXとかviに慣れていかないといけないかもと感じましたっ!

以下参考URL

http://qiita.com/mjunya1030/items/02f2d77e814f8494cf38

http://net-newbie.com/linux/commands/vi.html

Redmine チケット一覧のCSV出力の履歴出力プラグインに更新時間を追加する

マネージャ層からの依頼でチケット画面の内容を履歴を含めて出してほしい旨を受け調査しました。

 

ググッてみるとこんな有り難いプラグインを更改してくださる方がいました。↓

d.hatena.ne.jp

github.com

ただこのままだと各履歴の更新時間が表示できないので少し改変させていただきます。

 

redmine_export_with_journals\app\helpers\issues_export_helper.rbの10行目の頭に

'['+ j.created_on.strftime("%Y/%m/%d %H:%M:%S")+'] ' + "\n" +

を追加してRedmineを再起動してCSV出力してみると、、、時間表示できた!

とりあえずこの出力をExcelで編集してもらおうかなっ。

Tortoise SVNでチェックアウトしたファイルがWindowsの検索機能で検索できない問題の対応

 前に書いたこの記事

futuraso.hatenablog.com

 の対処策が見つかりました。

Excelドキュメントのみの対処になりますが、以下のサイトからExcelアドインをダウンロードして試したところ、かなり調子が良かったです。

 

http://software.opensquare.net/relaxtools/

 

もっとも感動した点はオートシェイプ等のオブジェクトもテキスト検索の対象としてくれているところです。

フロー図やユースケース図内のテキストもガンガンgrepできます。

また随所にExcel仕様書のあるあるパターンに入力補助をしてくれるような機能も有り好感を持ちました。