英語の文章を分解する方法とは?

このQ&Aのポイント
  • 英語の文章を単語ごとに分解し、アルファベット順に並び替えて、使用頻度などのデータに利用する方法について紹介します。
  • エクセルのマクロを使用して、英語の文章を単語ごとに分解し、あとでソートする方法について解説します。
  • 記号を削除しながら英語の文章を単語ごとに分解するマクロの作成方法について説明します。
回答を見る
  • ベストアンサー

英語の文章を分解する

英語の文章を単語ごとに分解し、アルファベット順に並び替えて、使用頻度などのデータに利用したいと思います。 一回に500~1000 waord を考えています。 文章は、Word またはメモ帳から取ります。 この処理で私にできるのは、エクセルのひとつのセルに貼り付けて、マクロにより、単語ごとに分解し、あとでソートする方法です。 たとえば、「This is a pen.」という文章をA1のセルに貼り付け、マクロを起動して、 A2 This A3 is A4 a A5 pen というように単語を入れていきます。 できれば、「.」「"」「?」「!」「,」などの記号は同時に削除したいのです。 自分でも、いい加減なマクロは作れますが、仕事に使いますので上手な方のものを使わせていただきたいと思います。 よろしくお願いします。

noname#21413
noname#21413

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 Office カテゴリで、たぶん、あなたに回答している者です。まあ、Officeを使用するなら、そちらでも回答はつきます。 簡単な方法としては、最初に、Split で別けて、それを一つずつ、Dictionary オブジェクトで、ダブルものは、数えて、一覧に出せばよいです。ワークシート関数が得意な人は、ワークシートで処理してしまうほうが、スピード的には速いです。 配列にしていますから、Excelの方が、出力しやすいでしょうね。 ただ、そのようなツールは、既に出ているような気がします。 別の場所に書きましたが、もし学生さんでないのでしたら、なおさら、お金を掛けたほうがよいです。英語のカテゴリで、そのようなツールに精通している人がいるような気がします。私は、ここ最近、英語関係のツールから遠ざかっていますので、新しい情報をぜんぜん持っていません。私が購入したものは、ほとんど、販売中止になってしまっていました。 さて、今回のご質問では、簡単なサンプルを作ってしまいました。本当は、Perl 辺りで作る人がいるような気がします。以下は、Excelで整理しますので、Excel VBAです。 なお、通常、そのようなツールでは、1文字ないし2文字は省くという規則があります。ここでは、さすがに、文字列の長さ1文字は、カウントしないことにしました。 '-------------------------------------------------------------- Sub MyDicObject()  Dim objDic As Object 'Scripting.Dictionary  Dim objFS As Object  'Scripting.FileSystemObject  Dim mySrc As String  Dim Ar As Variant  Dim v As Variant  Dim d As Variant  Dim k As Long  Set objDic = CreateObject("Scripting.Dictionary")  Set objFS = CreateObject("Scripting.FileSystemObject")    'ファイル名(テキストファイル)  Const FNAME As String = "C:\testdocument.txt"    mySrc = objFS.OpenTextFile(FNAME).ReadAll    '除外文字  For Each d In Array("""", "!", "?", ".", ",", "(", ")")   mySrc = Replace(mySrc, d, "")  Next  '改行コードの置換   mySrc = Replace(mySrc, vbCrLf, " ")    Ar = Split(mySrc, " ") '配列変数に代入  k = 1  With objDic   For Each v In Ar    '一文字と数字は省く    If Len(v) > 1 And Not IsNumeric(v) Then     If Not .Exists(v) Then      .Add v, k      .Item(v) = 1     Else      .Item(v) = .Item(v) + 1     End If     k = k + 1    End If   Next v   Range("A1:B1").Value = Array("単語", "回数")   Range("A2").Resize(.Count).Value = Application.Transpose(.keys)   Range("B2").Resize(.Count).Value = Application.Transpose(.items)  End With  'ソート   Range("A1").CurrentRegion.Sort _    Key1:=Range("A2"), _    Order1:=xlAscending, _    Header:=xlYes, _    OrderCustom:=1, _    MatchCase:=False, _    Orientation:=xlTopToBottom      Set objFS = Nothing  Set objDic = Nothing End Sub

その他の回答 (1)

回答No.1

もう少し、どこが分からないのか教えてください。 まるなげですと、回答が付かないですよ。 >仕事に使いますので上手な方のものを使わせていただきたいと思います。 ?????

関連するQ&A

  • 英語 文章?

    お世話になります。 This is a pen. これって「文」ですか?それとも「文章」ですか?

  • Wordで赤字の単語を( )で置換えたい

    Word2010 で英文を書いた時、赤字で書いた単語(文字でなく単語です)を ( ) で置き換えるにはどうすればよいでしょうか。文字を置き換えるなら、「置換」で可能なことは分っていますが、単語単位で置き換えたいのです。 This is a pen. という文章で、pen が赤字だとして、 This is a ( ). のように置き換えたいのです。赤字の単語は文章中に複数あり、これらを一括で置き換えしたいのです。 よろしくお願いします。

  • こんな英語ってありますか?(おそらく中1レベルです;)

    妹(小学生)が以前よそで英語の会話文テープを聞いたそうなのですが・・・ A「This is a pen」 B「ほぇーる?」 A「This is a pen!」 というような内容だったそうです。このBさんの「ほぇーる?」というのが結局今までわからずじまいで・・・どう見ても中1レベルですが、いままでそんな単語は聞いたことがありません。 訳も何も無いようで、もしかしたら聞き間違いの可能性が高いですが・・・ なので、そんな発音でなくて全然構わないのですが、結局Bさんは何と言っているのでしょうか、分かる方はぜひとも教えてやってください。 場違いでしたらすみません・・・。

  • 簡単な英語の訳

    This is a pen for you. This is a pen to you. これはあなたへ(プレゼントの)ペンです。を英語にすると、どちらが正しいですか? 特に、toとforのどちらが適してるかだけでも教えていただきたいです。 A pen for/to you と文字数の関係で英語的にはおかしいかもしれないですが書きたいので。 教えてください。。。

  • 英語

    「Whose pen is this」ってペンの前にaか後ろにsをつけなきゃおかしいですよね?つけなくていいんですか?

  • Excelの文字列結合について教えてください

    Excelの文字列結合について教えてください。 =SUBSTITUTE(TRIM(CONCATENATE(A1," ",B1," ",C1," ",D1))," ","/") 上記の関数を使い、空白のセルがあった場合そのセルを除外して「/」で区切るまではできたのですが、選択セルに英文が入っていると、英文内のスペース部分にまで「/」が挿入されるようになってしまいました。 例えば「A1」のセルに「This is a pen」「B1」のセルに「Boys」と入力されていると、「This/is/a/pen/Boys」と表示されてしまいます。 これを「This is a pen/Boys」という風に結合させるには、どうしたら良いでしょうか。 よろしくお願いします。

  • Excelの文字列検索関数について

    Excel2007で、あるセルに入っている英単語が、別のセル範囲(複数セル)に入っている英文の中にあるかどうか、を調べたいのですが、関数を使って実現できるでしょうか? たとえば、 A1に"This is a pen." A2に"That is a desk" という英文があり、 B1に"bat", B2に"pen"を入れたとします。 この場合、A1~A2に"bat"は存在しないのでC1には"FALSE"が、 A1~A2に"pen"は存在するのでC2には"TRUE"が自動的に入るようにしたいのです。 (TRUE - FALSE でなくても、数字などでもかまいません) FIND関数は単一セルの中の文字列しか検索できないし、 MATCH関数はセル内容が同一でないと結果が出ないのでそのままでは使えません。 何かいい方法はないでしょうか。

  • 英語の超超初心者です。

    私は英語の超超初心者なんで、わかりやすく説明をお願いします。 例えばどうして 【This is a pen】 のaは何ぜ付くのですか?またそれは、どのような時に付ければいいのでしょうか?出来るだけわかりやすく教えてください。

  • Excel2007のマクロで文字列を分解

    Excel2007のマクロで文字列を分解したいのですがうまくいきません。 1、セルA1からU1までかそれ以上にデータが3つずつ入ってます。 2、1のデータの1つずつをを3列ずつに分解してA3から列上にコピー。 例えば、セルA1あいう、セルB1えおか→ならA3あ、B3い、C3う、D3え、E3お、F3か という具合に。だれかお願いします。

  • 英語を教えて下さい!「a」と「the」について

    英語の「a」と「the」について教えて下さい。 現在、英語力が初心者以下のため一から勉強していますが早速理解できない部分が出てきてしまいました。 英語では単語の前に「a」または「the」を付けますが、 この「a」と「the」の使い分けがあまり理解できません。 また付けない場合もあるらしく混乱しています・・・。 (1)「a」と「the」の使い分け方について教えて下さい。 (2)「This is a man.」はなんとなくわかりますが、 これが「Who is that man?」の場合、manの前にaを付けないのはなぜでしょうか・・・ 「Who is that a man?」では何故いけないのでしょうか. (3)「This ball is new.」もよくわかりません。 「This a ball is new.」では間違っているみたいなのですが、 何故この場合はballの前に「a」を付けてはいけないのでしょうか? (4)「私は毎日私の部屋を掃除します。」を英文にする問題で、 私は「I clean the my room every day.」と書きましたが、 正解は「I clean my room every day.」でした。 「あなたは教室を毎日掃除します。」という問題では正解が 「You clean the classroom every day.」でした。 my roomではtheを付けず、classroomではtheを付けるのは何故でしょうか。 (5)「私は手にペンを持っています。」という問題では、 「I have a pen in the hand.」と解答してしまいましたが、 正解は「I have a pen in my hand.」でした。 何故the handではなくmy handとなるのか・・・ペンを持っているのが自分自身の「手」だからでしょうか? 「a」と「the」の違いについてはテキストに親切に書いてあるのですが、 実際は上記のようによく間違えてしまいます。 英語に堪能な方、是非教えて頂きたいです。

専門家に質問してみよう