アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんばんは

HTML、テキストファイル、pdfファイルなどの英文のソースがあったときに、そこで使われている英単語を抽出してテキストファイルやExcelなどで英単語のリストを作りたいのですが、何かよい方法はあるでしょうか?少し調べてみたのですが、形態素解析などをすることになるのでしょうか?どなたか教えていただけると幸いです。

例えば、
「No other region has demonstrated the fragility of both human society and the international community more markedly than Africa.」
という英文があったとき、

Africa
and
demonstrate
has
other
region

のように単語を抽出してくれて、できればその意味も
Africa:アフリカ
and:そして
demonstrate:証明する
has:持つ
other:他の
region:地域


のようにできるととても助かります。

A 回答 (4件)

英文から単語を抽出し、その頻度や使われ方を研究するためのツールがあります。


corpus(言語資料), concordance(用語索引), linguistic tool(言語学用ツール),などで検索するとツールと使い方の説明サイトがあります。

ツールはGUI化されていても動作レベルはCUIレベルで動いている感じで、操作感もそれにちかいものが多いです。
DOSツールやプログラミング経験者であれば簡単ですが、でない場合はちょっと最初の敷居が高いと思います。

日本語で検索されるならとりあえず”コンコーダンスプログラム”でいくつか出てきます。

とりあえずこれらのツールが使えると単語が切り出せます。


訳語を付けるには、単語リストを引数に取って辞書を検索~出力するツールが必要です。

一番簡単な方法は多分Grepを使って単語リストの載っている辞書ページへのリンクを吐き出させることでしょうか。その場合、辞書は英単語、訳語と割と短い文でないとリンクを開かないとリンク先表示が短いGrepでは内容が見えないかも知れません。GrepもいろいろなものがWebにあります。

完全なツールは見たことがありませんが、テキスト系の辞書はWebにも有る程度転がっているので、プログラムが作れるなら自分用のものを作ることは可能かと思います。


PDFはPDFリーダーだと通常文字等の抜き出しができません。PDFライターや相当品のツールをお持ちなら、プロテクトのかかっていないPDFから文字を抜き出しテキストファイルにして処理が可能です。

HTMLの場合、ソースコードにはタグが散らばっています。これをテキスト化するツールはウエブにいろいろあります。(コンこーダンスプログラムは通常プレーンのテキストしか使えない仕様がほとんどです)
    • good
    • 0

先ほど tinantum さんの回答履歴を見させて頂いたところ、数学の専門家の方らしく、Mathematica の経験もあるようですね。

パソコンに詳しくない質問者かと思って書いていた回答を、急いで書き直しました。

「英文から英単語の抽出をしたい」だけ、つまりは単語の切り分けだけならば、なにかのプログラム言語を少し勉強して頂ければ、実現できると思います。もちろん GUI は無しです。Mathematica の言語がどのようなものかは分かりませんが。

英語は単語がスペース等で区切られていますので「ファイルを読み込み、1文字目から文字を判別していき、スペースやカンマなどが出たら、そこまでを1単語とする」と言う処理をするプログラムを書けば良いということになります。実際は、ソートや重複処理などもありますが。

テキスト処理の得意なスクリプト、ライトウェイトランゲージといわれるものが適していると思われます。Perl, Python, Ruby など色々あります。マクロ内蔵のテキストエディターなら、そのマクロで組めるかもしれません。Word 等のワープロソフトでも組めるかもしれませんが、大きなファイルでの処理に不安があります。また、その程度の処理であればフリーのソース、その処理ができるように書かれているスクリプト、マクロがネットで見つかるかも知れません。

ただ pdf は面倒だと思います。pdf をテキストファイルに変換する必要があると考えます。pdf は知識薄なので詳しく書けません。HTML はタグを除去する作業を追加する必要が出てきます。

次に「意味をつける」となると、一気に難度が上がります。英語1単語に日本語訳をつけるには、日本語訳のデータベースが必要になると思いますが、フリーは「英辞郎」くらいしか思い浮かびません。

ただし通常、英日データベースでは英語一単語に対し、日本語訳がゾロゾロ出てきます。have を「英辞郎」で調べたら、大項目だけで10でてきました。そのまま使ってしまうと、英語1単語に対し、日本語訳数行~十数行というバランスの悪いリストになりそうです。

「形態素解析」が何に使われるかについて、Wikipedia を確認してみました。Wiki によると、英語における形態素解析は割合と簡単なようですが、合成語と品詞判別の問題が残るそうです。今回問題となるのは合成語の方ではないでしょうか。

tinantum さんが対象として想定されているのは、数学関係の本でしょうか。そうでなくても専門書であれば合成語が多いと思われます。例えば tinantum が回答されていた質問の中にあった「内積空間」を「英辞郎」で調べると、英語では Inner product space となるようです。英文の中にこの単語が出てきたとして、これが 3 単語で1つと認識されずに日本語訳されると、3つそれぞれの英単語に結構な量の別の訳が出てきます。

で、英語の形態素解析ソフトを調べてみたのですが、見つからないですね。どうやら 1段階上の自然言語処理までいってしまうようです。

長くなってしまったので自分なりの結論ですが「英単語の抽出は比較的易しい」、「それに日本語訳をつけるのは難しく、できても使用しにくいリストになりそうだ。良いリストにするには、高度な技術がいる」となるでしょうか

ところでこの質問、パソコン・プログラム関係のカテゴリーに質問されてますでしょうか。そっちの方が専門かな?と思いますが。なお、すでにお知りのことばかり、答えていたらすいません。
    • good
    • 0
この回答へのお礼

大変詳細にご回答くださりありがとうございます.

>パソコンに詳しくない質問者かと思って書いていた回答を、急いで書き直しました。

実は,実際にパソコンはぜんぜんわかっておりません..
プログラムもFortranやMathematicaで見よう見真似で使ったことがあるくらいで,

>テキスト処理の得意なスクリプト、ライトウェイトランゲージといわれるものが適していると思われます。Perl, Python, Ruby など色々あります

この辺りのテキスト処理のプログラムは全く触れたことがありませんでした.これを機会に少し勉強してみようかと思います.

英語の学習目的で,このような目的のものができればよいと思ったのですが,意外に面倒そうですね..今回は数学とは全く関係なかったのですが,趣味で行っている少林寺拳法の英語の講座を行うことになったので,英語があまり得意で無い方にも学習しやすいように,英文と使われている単語とその意味のリストをつけておければ,,と思った次第でした.

> ところでこの質問、パソコン・プログラム関係のカテゴリーに質問されてますでしょうか。そっちの方が専門かな?と思いますが。

そうですね,こちらでも聞いてみたいとおもいます.

ご丁寧なアドヴァイス,どうもありがとうございました.
大変参考になりました.

お礼日時:2008/06/03 20:33

英単語のリストなら、ネットにもありますが、ある特定の文章の中の単語のリストなら、秀丸エディターとかワードでできるのではないでしょうか?


No other region has demonstrated the fragility of both human society and the international community more markedly than Africa.
だったら、まずテキストファイルにして、半角スペースのところで改行して(正規表現の置き換えを使って)、それから、できた単語をアルファベット順に並び替えて(もちろん手動ではありませんよ)、そして、重複する単語を削除(これはワードのマクロでできるはずです)すれば、かなり大きなデータでも、使われている単語のリストを作ることができます。各単語の横に意味を出力する方法はわかりません。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます.

なるほど,秀丸でできそうな気がしてきました.
ワードのマクロとか使ったことはないのですが,何かお勧めのサイトなどあればお教えいただけますか?

よろしくお願いします.

お礼日時:2008/06/02 23:26

既にご存知のことかも知れませんが、


当該文章をメモ帳にはりつけてテキストデータとした後、excelのテキストファイルウイザードを使用しスペース(時にカンマ等)区切りなどで区切ると1セル1単語で、1行19セルに収まります。しかし、その後の処理は素人ですのでわかりません。電子辞書の開発者やデータベースの専門家なら助言が得られるとおもいますので、そちらの方面のカテにても質問されるのはいかがでしょうか。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました.
教えていただいたテキストファイルのインポート,確かにできました.
あとはこれを一列に並び変えたり,重複を消したり,などすればよさそうですね.

>電子辞書の開発者やデータベースの専門家なら助言が得られるとおもいますので、そちらの方面のカテにても質問されるのはいかがでしょうか。

そうですね.アドヴァイスありがとうございます.
このようなことができれば英語の学習にとても役立つと思うのですが,あまり知られた方法はないですかね・・.

お礼日時:2008/06/02 23:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!