• 締切済み

データベースで英単語を検索したり比較して照合したい

データベースに関して素人です(excelの関数を多少扱える程度)が、これから勉強したいと思っています。当方、英語の勉強のため、英文を沢山読んでいます。 以下の目的のためには、データベースの導入が必要なのではと思いますが如何でしょうか。 目的1 これまで覚えた英単語や英熟語(慣用表現)の数を視覚的に分かるようにしたい。 目的2 新しく用意した英文テキストに対して、過去のデータベースと照合しこれまで覚えた英単語や英熟語(慣用表現)がいくつ含まれているか、そしてその既出の単語が過去のどのテキストファイルに属しているか、分かるようにしたい。 ※これまで勉強してきた全ての英文テキストデータ(ワード形式、もしくはtext形式)が手元にあるものと仮定します。 上記の目的を遂げるためには、データベースの構築が必要と思うのですが、 当方なかなか忙しく、PHPプログラミングを一から学ぶ余裕がありません。 上記の動作を実現するには高度なデータベース技術が必要とされるでしょうか? 上記の目的のためには、初心者は何から始めればよいでしょうか。 マイクロソフトのデータベースソフト「アクセス」は初心者でも基本的な動作を学ぶだけで上記の目的を達成できるでしょうか? たとえば、What would you like to drink? /No, I’m cool.と書かれた英文テキストファイル1があると仮定します。ただしこのとき、No, I'm coolの部分は「いいえ、結構です」という意味の慣用的表現(熟語)です。このテキストファイル1をデータベースに投げ込むと、自動でwhat, would, you, like, to, drink, no, I am coolという9つの英単語データが独立して自動的に登録される一方、「No, I am cool」の部分は自分で登録しなければならない、という認識であっておりますか。そしてI am Japanese.と書かれた新規テキストファイル2に対して過去のデータベースと照合した時、「i と am の2単語を検出しました。『i』はテキストファイル1、『am』はテキストファイル1で検出されました。」という結果を出したいのです。 まさかとは思いますが、データベース構築の際、英文テキストの英単語を1つ1つセルに打ち込んで、1つ1つ登録しないといけない、なんてことはないと思いますが、実際どうなのでしょうか。英文をペースト(貼り付け)すれば、その中の単語が自動的に1つずつデータベースに登録されますか?勿論、英熟語(慣用表現)につきましては、コンピューターがそれを熟語と認識できないはずなので、1つずつ手入力で登録していく必要があると思いますが。 長文となりましたが、是非貴方様の御意見をお聞かせ下さい。

みんなの回答

  • skp026
  • ベストアンサー率45% (1010/2238)
回答No.3

質問主さんのご希望は、既存のファイルから、 直接検索することのほうが現実的と感じました。 理由その1データベース データベースは入れ物に例えられます。しかし、 まっさらのデータベースには、概念としての空間 という意味しかありません。 Excelで言うセルに相当するところも存在しないので、 ご自身で定義することになります。 レコード番号、単語、ファイル名、少なくともこのような 構造になると考えられます。 そして、なんらかの方法で、ファイルからデータベースに 登録する必要が出てきます。 理由その2登録 手作業もひとつの方法ですが、自動で行わせるには スクリプトを使います。 AccessにはVBAというスクリプトが組み込まれていますので、 それを駆使して、ファイルを開き、単語を登録する、という 動作を繰り返し行わせることになります。 つまり、登録するためのプログラムを書いてもらうことになります。 理由その3検索 検索にもスクリプトを使ったり、データベース側で検索させる SQL文を使いますが、そもそも的な問題があります。 単語で登録してしまうと、行頭の特定の文字の検索や、 行末の文字の検索は不可能です。それを叶えるには、 データベースをそのような構造して登録も必要です。 隣り合った単語でヒットさせたいとか、複雑な文脈でとか 要望ごとに、データベースの構造を修正し、元データである ファイルから抽出と登録をします。 これらの理由から、冒頭でご案内したようなファイルから 検索することが現実的と考えました。 質問主さんがされたいことのイメージは私では うまく思い浮かびませんが、以下のようなところが 参考になるかもしれないです。 http://www.vector.co.jp/vpack/filearea/winnt/util/text/find Wordドキュメントからテキストファイルへの 落としなおしを想定しています。 ※ Accessはデータベースとスクリプトとインターフェースが 一体化していて、比較的扱いやすいものですが、 プログラミングを避けることは出来ないです。 ご質問に「PHPプログラミング」という言葉がでてきましたが、 Accessで言うところのAccess VBAというスクリプトと 同じ意味合いのものです。 ※ テキストを検索するために正規表現というものがあります。 これへの馴れと対応ツールにより、複雑な検索が出来るようになります。 参考にならなかったらごめんなさい。

noname#229314
質問者

お礼

お世話になっております。 とても参考になりました。 貼りいただいたリンクから、LightGrepというフリーソフトを採用いたしました。 色々試してみましたが、出力結果のフォントの書式を変更できますし、 これが最も使いやすいと感じました。 正規表現につきましても参考になりました。 ただどのソフトもワード文書を検索対象に出来ると謳っておりながら実際にはtxtファイル形式のみ正常に結果を出力するということが分かり、その点だけは多少残念です。 大変助かりました。 お忙しいところ御回答を頂き誠にありがとうございます。

回答No.2

何をもって「技術的に高度」というのかその定義次第だと思います。

noname#229314
質問者

補足

質問本文をきちんとお読みになれば、その答えがわかります

  • maiko0333
  • ベストアンサー率19% (839/4401)
回答No.1

コンピュータに「自動」は存在しません。 コンピュータがやっている「自動」は誰かが作ったシステムです。 つまり、誰かが作ったものをそのまま利用するか (フリーソフトやアプリケーション) 新規で自分で作るかです。

noname#229314
質問者

お礼

それでは 英文を単語ごとにデータベースに自動で登録したり文字を照合するフリーソフトやアプリケーションを御存知でしたら教えて下さい。

noname#229314
質問者

補足

つまりMSアクセスで可能と言うことですよね それは技術的に高度かどうかを聞いています

関連するQ&A

専門家に質問してみよう