2010年10月13日水曜日

OALD8のEPWING化

OALD8をEPWINGに変換するツールが公開されました。
URLはEBシリーズサポート掲示板の投稿です。
http://hishida.s271.xrea.com/wforum_eb/wforum.cgi?no=619&reno=600&oya=600&mode=msgview&page=0

oald7-fpwを使ってOALD7を変換したものと比べて、以下の利点があります。
・Windows環境のみで簡単に変換できる。
・発音記号が表示される。
・用例ごとに改行される。
・参照にリンクが付いている。
・example bankも表示される。
語源やexample bankなどの追加情報はエントリー末尾に表示されるのでうるさくありません。

example bankに含まれる多くの用例が他のEPWING辞書と簡単に切り替えながら参照できるようになったので、非常にうれしいです。
(Logophileでは以前から、example bankも含めてOALD8が表示できますが、起動が遅いのでちょっと使うのが億劫です。)

2010年6月26日土曜日

PerlとXPathでXMLファイルの処理

XMLファイルに対して正規表現で処理をしていたのを、XPathを使ってもっと楽にできないかとやってみました。
XMLとはどんなものか、という非常に初歩的なことしか分からない超初心者ですが、Active PerlのパッケージシステムからXML::XPathのモジュールをインストールして、小さなテストファイルでやってみたところ、なんとかなりました。
今更ですが、XMLエディターで構造を見て、あとはXPathでノード名を使って処理というのが簡単な処理方法だと実感しました。

2010年3月26日金曜日

英辞郎のデータ形式

英辞郎から用例データを抽出しようと思い、データ形式について調べたところ
http://www.eijiro.jp/kensaku2/files.htm
に情報がありました。
ただ、上記のページには「●」が文例の開始点を示すと書いてあるのですが、Version 116のデータでは「■・」が文例の開始点になっていました。

データ形式がわかったところで、Perlで処理しようとしたのですが、文字コードの扱いに悪戦苦闘。検索・置換の際にこの記号類がちょっと邪魔をします。
いろいろと試行錯誤して時間をとられたのですが、結局今回はエディターの置換で済ませました。

いずれ文字コードの扱いについてよく勉強する必要があるということは分かりました。

2010年3月15日月曜日

英辞郎 on the WEBの整列・頻度集計機能

metal-heartさんの記事で知ったのですが、英辞郎 on the WEBで整列・頻度集計機能が利用できるようになっています。
つまり、英辞郎データに対してKWIC表示や共起語の頻度集計が利用可能だということです。
調べたところどうやら2月初頭から利用できるようになっていたようです。
ちょうど来週話すネタがこういう話だったので、これも紹介することにします。

β 版ということで、将来有料化されたりする可能性もありそうですが、その時はちょうど私が今作っている辞書データKWIC表示CGIを公開して、(当然英辞郎のデータを正当に所持している個人が自分専用に使うという制限は付きますが、)英辞郎データも簡単にKWIC表示できるようにするお手伝いはできそうです。
(まあ「簡単に」とはいってもウェブサーバーでCGIを動かさなくてはいけないので、「簡単」とは言い難いのですが。JAVAとかで作ればスタンドアロンで完結しますが、自分が必要としないのでそこまでのことはしようとも思いませんし・・・。)

2010年3月6日土曜日

kaoiro

朝のテレビで見た顔文字専用スタンプkaoiroが気になりました。
小テストとかで押して返却すると楽しいかも。


2010年3月5日金曜日

シェルでの複数コマンドの連続実行

bashなどでは複数のコマンドを連続して実行するには、;で区切ればいいのですが、これをWindowsのコマンドプロンプトでやろうとしても正しく処理されず、困ってしまいました。
調べたところ、コマンドプロンプトでは&が同等の機能を担うということが分かりました。

こういう細かい違いが結構あるので、LinuxとWindowsの両方を使っているとストレスを感じます。
Windows PowerShellをインストールすると、bash感覚により近づきそうですが、まだ試してはいません。

2010年3月3日水曜日

EFL辞書の定義語彙

現在主要英英辞典の定義語彙データを作ろうとしているのですが、各辞書の定義語彙データの有無についてまとめてみました。

一番簡単なのはOALD7で、データが掲載されています。
http://www.oup.com/elt/catalogue/teachersites/oald7/oxford_3000/oxford_3000_list?cc=global

次に簡単なのはMED2です。
CD-ROMのヘルプに定義語彙データがあります。
アルファベット別になっているので、まとめるのは若干手間がかかりますが、作業は簡単にできます。

ここから先は容易ではないものです。

まずはLDOCE5。Longman Defining Vocabularyの古いバージョンとおぼしきデータはいろいろと見つかりますが、どれも最新のものではありません。(http:// は外してあります。)
www.cs.utexas.edu/~kbarker/working_notes/ldoce-vocab.html
wiki.frath.net/Longman_Defining_Vocabulary/alphabetically
home.earthlink.net/~neilbawd/longman.txt
www.pu-kumamoto.ac.jp/~jay/class/modeng/handouts/ldv.html
www2.cmp.uea.ac.uk/~jrk/conlang.dir/LongmanVocab.html
www.luweixmu.com/home/article.asp?id=33
見つけた中では一番下のものがLDOCE5のデータに一番近いようです。これをもとに書籍版誌面と見比べて修正していくのが一番楽そうです。
なお、LAAD2の定義語彙はでPDFデータで提供されていますが、LDOCE5のものとは品詞の表示なども含めれば結構違います。
http://longmanusahome.com/dictionaries/defining.php

COBUILD6については、定義語彙も書籍版紙面には載っているのですが、データとしては存在しないようです。
約3,000項目あるので、手で入力するよりは、スキャンしてOCR処理をして修正した方が早そうです。

一番問題なのはCALD3で、そもそも定義語彙が明らかにされていないようです。
ただ、定義のデータはあるので、これを見出し語化して、定義の中で定義語以外だと明示されている語を除けば、(想定版)定義語彙データが作れそうです。



その後LDOCE5とCOBUILD6の定義語彙データは作成が完了しました。

2010年3月1日月曜日

テキストファイルからKWICコンコーダンスを生成するCGI

テキストファイルからKWICコンコーダンスを生成するCGIスクリプトを探しました。
そんなものはいくらでもあるだろうと思ったのですが、探し方が悪かったのか、意外にもほとんどありませんでした。
その中で見つけたのがPerlconcです。
まだ一部機能が実装されていないなどの残念な点はありますが、正規表現を使って複数のテキストが自由に選択できて、見やすいですし、割と良さそうな感じです。

ただ、開発が0.3で完全に止まっていますし、今後のアップデートもないでしょう。
また、230行目の「href」の前の二重引用符がエスケープされていないため、そのままではエラーとなります。
この点だけ修正すれば、最低限使うことはできます。

これをベースにいろいろ手を入れていけば使いやすいものにできそうです。
あるいは、この実装を参考にゼロから作り直した方が早いかもしれませんが。



その後さっそく改造して、Unicode対応にして、日本語のファイル名・テキスト・検索キーワードも適切に扱えるようにました。
これでそれなりに使えるようになりました。
いずれ気が向いたら公開するかもしれません。

2010年2月21日日曜日

胎児のうちから2言語に接しているとバイリンガル環境にスムーズに入れるらしい

胎児に2言語聞かせるとバイリンガルになりやすい?加研究

新生児の言語に対する好みを判断するにあたり、研究者らは、新生児の吸引反射に注目した。吸い付く動作は、赤ちゃんの刺激に対する関心を示すとされている。

まず、最初の実験では、1分ごとに英語とタガログ語が交互に話される演説を、赤ちゃんに10分間聞かせた。

その結果、胎内で英語だけを聞いていた赤ちゃんたちは、タガログ語の演説よりも英語の演説を聞いているときに「吸引行動が増加する」ことが観察された。つまり、タガログ語よりも英語の方に、より関心を示したことになる。

一方、2言語が聞こえる環境で胎内にいた赤ちゃんグループは、英語とタガログ語の両方に等しく関心を示した。

この結果から、研究者らは、出生前からバイリンガルの環境にある新生児は2つの母国語を覚えるための準備をしているとみられると結論づけた。


モノリンガルな環境で子どもをバイリンガルにしようと思ったら、生まれる前からバイリンガル環境を意図的に作った方がより効果が高いようです。
例えば日本で子どもを日英のバイリンガルにしようと思ったら、父親か母親の一方は英語で、もう一方は日本語で話すようにして、子どもが外に出るようになったら、どうしても日本語に接する時間が長く、相対的に英語に接する時間が短くなってしまうので、その分テレビや音楽などで英語に接する時間を長くとるようにすればなんとかなるかもしれません。
インタラクションを伴わないテレビなどの映像教材だけでは母語としての言語修得はできませんが、ある程度認知レベルが上がった段階でうまく利用すれば、テレビなどもインプットを補う役割は果たせるのではないかと思うのですが、どうなんでしょうかね。

2010年2月13日土曜日

CLAWSのLinux版が出た?

BNCの品詞タグ付与にも使われたタガーCLAWSの販売ページ(Obtaining a licence for the CLAWS tagger)の記述に変化が見られ、Linux版が出たようにも読めます。
以前はSolaris (Sparc)用バイナリがサイトライセンスとして£750、またはWindows用Java版がWinClaws Academic Licenceとして$200でしたが、現在サイトでは次のように書かれています。
The site licence is available for Unix variants (Solaris, Linux or MacOSX) or Windows versions. Academic single user licences are also available for CLAWS4 for £100 + VAT (as appropriate).

これ以上の詳細がないので、購入手続きをするか、問い合わせをしないと、実際にはどういう状況なのか分からないのですが、新しいパッケージが出て、$200から£100に若干値下げされたということなのでしょうか。

2010年2月2日火曜日

語源を扱うブログというのはユニークかも

英語語源検定 by 織田哲司
語源にまつわる記事を精力的に書かれています。

そして今日の記事。
イースターにはなぜ卵を飾る?
その答えは記事を見ていただくことにして。
予想以上に深い背景があったのですね。

MOSTLY LINGUISTICと謳いながらあまりlinguisticなことを書かないこのブログとは違って(笑)勉強になります。

2010年1月18日月曜日

『数学ガール』を読んでます

今、寝る前とかに『数学ガール』シリーズの第3巻を読んでいます。
高校生の頃は数学が好きで、数学科に行きたいと思ったくらいだったのですが、時間がたつにつれて、数Iの内容も忘れてしまっていますが、このシリーズは楽しく深く学べるような気がします。
少なくともまた数学を勉強したいという気にさせてくれます。

その『数学ガール ゲーデルの不完全性定理』44ページより
人の心は具体例を圧縮する。無意識にパターンを探し、短い表現を見つけるのが人の心だ。

認知意味論の本に出てきそうな言葉です。
なんかピピッときました。

2010年1月15日金曜日

LDOCE5もEPWING化可能に

LDOCE5をFreepEPWINGでEPWING化するスクリプトが公開されていました。
LDOCE5 DVDをEPWING化する
対象は辞書本体のみのようですが、これまで4版を主に使っていたので、これはありがたいです。

さっそくやってみようと思い、Linuxでやってみました。
PerlのモジュールもFreePWINGもUbuntuではSynapticでパッケージインストールができたので、gaiji.plの改行コードをLFにするだけでスクリプトの実行はできたのですが、EPWINGのデータはできたものの、
外字の処理うまくいっていません

追記: うまくいきました。
なお、arialuni.TTFは、Microsoft Officeでユニバーサルフォントをインストールすると導入されるようです。

そこで推奨環境であるCygwinを導入しましたが、XML::DOMがCPANでインストールできません。困ったものです。(Active Perlのパスを無効にしたらよいかもという話もあるようなので、その辺りを中心にもう少しいじってみたいと思います。)



BNCwebもアップデートされましたし、EPWING for the classicsもアップデートされるなど、この年末年始で英語データ界(?)で急に動きがあったような気がします。



1/18/2010追記
ebwin.plを実行することで作成されるLDOCE5.mapをEBWinの外字フォルダに入れることで、正しく表示されるようになりました。
私のドキュメントの読み込み不足が原因でした。

OEDのEPWING化

ついにOED(CD-ROM版 3.0・3.1)のEPWING化ができるようになりました。
OED の EPWING 化に書かれている手順で変換できます。

OED on XYZZYを作られた方と同じ方ですが、もう本当に大感謝です。

EBStudioでの変換がうまくいかなかったのですが、作者様に問い合わせたところ、文字列バッファサイズを448000000にするとよいと教えていただいて、それでうまくいきました。

なお、EBStudioでmemory allocate error!!(stringT)というエラーになっても、EBStudioを再起動するだけでこのエラーが出なくなるということもありました。

2010年1月11日月曜日

modifiledBNCquery.pl

I've made some modifications to the query page of BNCweb so we can make queries rather easily.
Here's the screenshot.

This modified version offers the following functionality:
-You can easily build queries with pull-down menus.
-You can start a query by pressing the Enter key; you don't have to click on the [Start Query] button.
-The IME is disabled in the query box on IE and Firefox 3. (This is effective at least in a Japanese OS environment.)
-A brief manual is offered on the query page.

It is available under the terms of the GNU General Public License Version 3, and can be downloaded here: modifiedBNCweb20100111.zip

I hope this will be of any help, and any comments and suggestions will be welcome.

How to install BNCweb 4.3

The following procedure is based on my installation of BNCweb 4.3 on Ubuntu 9.10. Please make necessary changes according to the version of BNCweb and to your system environment.

First, install the following packages, if not installed yet.
apache2
mysql-server-5.0
libparse-recdescent-perl
flex
bison
libncurses5-dev
subversion



$ sudo mkdir /BNC_XML (* or whatever)
$ tar xvzfBNCweb_version_4.3.tar.gz
$ sudo mv ~/BNCweb_version_4.3 /BNC_XML/
$ cd /BNC_XML/BNCweb_version_4.3
$ sudo chmod -R 755 cgi-bin
$ sudo chmod -R 755 lib_files
$ svn export https://cwb.svn.sourceforge.net/svnroot/cwb/cwb/trunk cwb-3.0
$ cd cwb-3.0
modify "config.mk"
---
(line 41)
include $(TOP)/config/platform/linux
---
$ make clean
$ make depend
$ make all
$ sudo make install
$ tar xvzf Perl-CWB-2.2.101.tar.gz
$ cd CWB
$ rm ._Makefile.PL
$ alias gtar='COPYFILE_DISABLE=true tar'
$ perl Makefile.PL
$ make
$ sudo make install
$ tar xvzf Perl-CWB-CL-2.2.101.tar.gz
$ cd CWB-CL
$ rm ._Makefile.PL
$ make
$ sudo make install
$ sudo mkdir /usr/local/share/cwb
$ sudo mkdir /usr/local/share/cwb/registry
$ sudo mkdir /usr/local/share/cwb/data
$ sudo mkdir /BNC_XML/Texts
$ cd /BNC_XML/Texts
(copy texts.tar.gz on Disk 1 of BNC-XML to /BNC_XML/Texts/)
$ tar xvzf texts.tar.gz
$ sudo cd ../BNCweb_version_4.3/BNC_encoder/
$ sudo perl BNCweb/EncodeBNC.perl -n BNC-XML -M 1000 -f -v /usr/local/share/cwb/data/ /BNC_XML/Texts/
(* "-M 1000" specifies the allocated memory size (in MB).
It took more about 3.5 hours on a PC with Athlon X2 BE-2400 and 3GB memory.)
$ sudo perl BNCweb/MakeFreqTables.perl -n BNC-XML -M 1000 -f -v
(* It took about 30 minutes on my PC.)
$ cd ../lib_files
(modify "bncConfigXML.pm")
---
(line 51)
$bwWebServer = "http(s)://your.server.name.com";
(line 62)
$bwCorpus = "BNC-XML";
(line 114)
$bwSuperuser = 'your_account'; (specify the administrative account)
---
$ sudo mkdir /usr/local/share/bncweb
$ sudo chmod 777 /usr/local/share/bncweb
$ cd ../BNC_encoder
$ sudo perl ../setup/make_MySQL_tables.pl
(When asked for the directory and prefix of the tables, just press [Enter].)
(* It took about 5 minutes on my PC.)
Configure the apache files.
Add the following lines into the appropriate apache config file.
(e.g. just before "</VirtualHost>" in /etc/apache2/sites-available/ssl)
---
Alias /bncweb/ /BNC_XML/BNCweb_version_4.3/
Alias /bncweb /BNC_XML/BNCweb_version_4.3/
ScriptAlias /bncweb-cgi/ /BNC_XML/BNCweb_version_4.3/cgi-bin/
<Directory /BNC_XML/BNCweb_version_4.3>
Options Indexes FollowSymLinks ExecCGI
AuthType Basic
AuthName bncweb
AuthUserFile /etc/bncpass
require valid-user
SetEnv PERL5LIB /BNC_XML/BNCweb_version_4.3/lib_files
</Directory>
---
Restart apache2.
Set the password for each user.
$ sudo htpasswd /etc/bncpass [username]
(Add -c option (htpasswd -c /etc/bncpass [username]) when you add the first user.)
Edit /etc/apparmor.d/usr.sbin.mysqld and add the following line befor the "}" at the end of the file:
---
/usr/local/share/bncweb/* rw,
---
$ sudo /etc/init.d/apparmor restart
$ sudo /etc/init.d/mysql restart
This enables MySQL to write a file to /usr/local/share/bncweb/.
Now access the site: http(s)://hostname/bncweb-cgi/BNCweb.pl
The interface of BNCweb will appear.

2010年1月6日水曜日

(笑)→藁→w

「(笑)」「藁」「w」日々進化した「ネットスラング」編
ここ最近の省力化の流行は「wkwk」「kwsk」「ktkr」など「頭文字をとりました型」だ。これらはそれぞれ「ワクワク」「くわしく」「来たコレ」(来たーーーーーーっ!!!の変化形。

言語変化を引き起こす要因のひとつに「省力化」があり、まさにこれらはその典型例であると言えます。
ちなみに全角のwの方が「それらしい」感じが出ているような気もします。半角と全角でニュアンスが違ったりということもあるのでしょうかね?

英語圏でも似たような現象が多く起きています。
インターネット上で用いられるスラングや表現法を(ネットスピーク」(netspeak)と言いますが、そこでもやはり省略が多用されます。
最近は特に携帯のメールで独特の表記法が使われるようになってきました。
それに関連して面白い新聞(International Herald Tribune)の記事を紹介します。
The revenge of e.e. cummings
記事自体がテキスト・メッセージング風に書かれていて、その特徴が凝縮されています。
こういう書き方ばかりをしていては駄目だということです。

きちんとした読み書きを意識的に訓練することは、子どもの時にはもちろん、大人になっても極めて重要だと思う今日この頃です。