とある大学院生の英語学習

英語学習の備忘録をつらつらと。TOEIC・英検対策。

使役動詞の have と get の使い分け【ALL IN ONE 表現②】

こんにちは。

ジンセイメイソウチュウの大学院生です。

今日も自身の復習がてら ALL IN ONE の表現を復習していこうと思います。
ALL IN ONE って自分が思っている以上に有名なんだと最近感じてきました。自分だけが知ってる秘境?的なものだと思っていたので嬉しいと同時に少し寂しいです(笑)。

前回の表現もリンクに貼っておいたので、見ていってくれると嬉しいです!

kawakyotopython.hatenablog.com

 

get O to do : (対等もしくは目上の人を説得して)なんとか do してもらう

"What was the outcome of the preliminary talks? Did you get them to agree to our plan?"
"It was flatly rejected. We couldn't convince them to accept it."

「対等もしくは目上の人を説得して」というニュアンスが非常に重要です。相手側は快諾してくれたわけではなく、説得の末に承諾してくれたというように多少なりとも苦労を伴うイメージです。使役動詞の have も似たような意味になると思われがちですが、have は「相手がそれを行うのが当然である」という場合に用いられます。言い換えれば「目上の人が目下の人に~させる」という場合に使います。例としては、上司が部下に書類のコピーを取らせるとか、ポーターに荷物を運ばせるとかですね。

割と英語学習の序盤に習う表現なんですが、いざリスニングで耳に入ってきたときに瞬時に理解ができません。この表現が使われている多くの場面に遭遇して慣れていきたいですね。

 

on impulse : 衝動的に

Chocolate, chewing gum, and batteries are usually on sale beside checkout counters to encourage shoppers to buy them on impulse.

知っていれば結構使える表現だと思います。buy A on impulse で「衝動買いする」といえます。名詞で「衝動買い」は an impulse buy と表現するらしいです。

 

have / get O p.p. : Oを人(自分以外)に do してもらう

"How much does it cost to have a flat tire repaired?"
"As far as I remember, it costs at least 10 pounds. You might want to fix it yourself."

Uncle Bob's drug store was broken into last month, so he took precautions:
he had a burglar alarm and a surveillance camera installed.

ここでのポイントは「自分以外に」という部分です。これらの例文でも、「誰に」とは明言されていませんが、この表現を使っている時点で「自分以外の業者などに」という意味になります。

 

catch O ~ing : Oが悪い事をしているのを見つける

I was what they call a juvenile delinquent. I was caught shoplifting and expelled from school. I was arrested for assault and vandalism.

この表現は基本的に「悪事を見つける」という場合に使われます。犯罪、不倫、暴力などですね。

 

The chances are (that) : おそらく~だろう

"What with one thing and another, I forgot to reserve a table for tomorrow night. The chances are the restaurant is fully booked by now." 

ここでの「おそらく」の度合いは大体 80%くらいらしいです。probably とか may well とかと同じくらいのイメージですね。口語的な表現なので、その点は注意しましょう。

 

今日はここまでです。

このような基礎的な内容でも、リスニングになると急に音が消えたりして理解できなくなるから難しいんですよね。まあそこが面白いところともいえるかもしれませんね。

では。

Twitter bot 構築の備忘録【英単語 bot】

こんにちは。

ジンセイメイソウチュウの大学院生です。

本日は少し趣向を変えて、最近構築していたTwitter 英単語 bot の備忘録でも書いていこうと思います。

英単語 bot を構築しようと思ったきっかけは「英検一級の単語全く頭に入ってこねぇ~」ってことです。覚えられない単語は何度見てもすぐに忘れていきます。

何度見ても忘れるなら、忘れるたびに見るしかないよなという事で自分が1時間に1回程度は見ているTwitterで英単語を復習する機能をつけられたらいいよねってことになりました。

こんな経緯で英単語 bot を作ろうという結論に至った訳でございます。
今現在、私のアカウントは以下のような機能を持っているアカウントとなっています。(フォロワーの皆様、私のアカウントは1割が bot っぽくなっているだけで残りの9割はきちんと私自身で活用しています。bot だからと突き放さずに今後とも仲良くしていただけると幸いです。)

  • あるワードを含むツイート+タイムラインのツイートにいいねする
  • あるワードを含むツイートをリツイートする(停止中)
  • あるワードを bio に含むアカウントをフォローする
  • Excelファイルの英単語を定期的にツイートする
  • 自分のみがフォローしている人のフォローを解除する

twitter.com

もし自分の他にも「英単語本当に覚えられない~」と悩んでいる方がいたら、ぜひ真似してみてください。
以下のようなツイートを自動でできるようになります。

工程は以下のようになっています。

  1. Python の環境構築
  2. Twitter API を利用するための Consumer Keys と Authentication Tokens を取得
  3. tweepy パッケージをダウンロード
  4. Python で英単語 bot に必要な機能を綴っていく
  5. Task Scheduler で定期実行できるようにする

では順を追ってみていきましょう。

1. Python の環境構築

Twiiter 英単語 bot を構築したと言いましたが、基本的には他の方の記事をパクって参考にして進めていきました。なのでメインの部分である英単語 bot を構築したコード以外は省略していこうと思います。

まず、Python の環境構築に関してですが、私は Anaconda を利用しました。Anaconda はPython 自身と Python でよく利用される NumPy や Jupyter といったライブラリをまとめてインストールしてくれるパッケージの事です。端的に言えば、これをインストールするだけで基本的には Python を利用することが出来ます。自分は以下の記事を参考にしてインストールしましたが、検索すれば多くの文献に出会えると思います。
www.python.jp

2. Twitter API を利用するための Consumer Keys と Authentication Tokens を取得

ここが結構面倒かもしれません。Twitter API を活用することで操作の自動化などの作業ができるようになるのですが、Twitter API を利用するためにはTwitter に許可をもらい、上に示した鍵を入手する必要があります。許可をもらうためには、Twiiter社に向けて「自分はこんな素晴らしいことをしたいから許可をくれ!」と英文をつらつらと書いていきます。英語に普段から触れていない人にとっては非常に面倒な作業だと思いますが、おそらくこの記事を読んでくださっている方々は日々英語学習を継続している方がほとんどだと思うので、心配する必要はないと思います。
python-man.club
lemon818.com

3. tweepy パッケージをダウンロード

tweepy とはTwitter APIPython を用いて簡単に扱うことができるようになるパッケージの事です。コマンドライン(Anaconda を利用してPython の環境構築をした方であればAnaconda Prompt を利用すると楽です)で以下のコマンドを入力することでtweepy をダウンロードできます。

pip install tweepy

lemon818.com

あとは以下のようにPython のコードを書くことで準備は完了します。
API 情報を記入という部分には先ほど入手したConsumer Keys と Authentication Tokensを記入します。

# -*- coding: utf-8 -*-
# 必要なライブラリをインポート
import tweepy
import requests
import pandas as pd
from io import BytesIO
from styleframe import StyleFrame, Styler, utils
#-------------------------------------------------------------------
# API情報を記入
BEARER_TOKEN = "******"
API_KEY = "******"
API_SECRET = "******"
ACCESS_TOKEN = "******"
ACCESS_TOKEN_SECRET = "******"

# Twitterの認証
auth = tweepy.OAuth1UserHandler(API_KEY, API_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET)

# APIインスタンスの生成
api = tweepy.API(auth)
#-------------------------------------------------------------------

4. Python で英単語 bot に必要な機能を綴っていく

ここまでくれば、あとはひたすらに自分が構築したい機能をPython で書いていくだけです。冒頭に書かせていただきましたが、自分は以下の機能を構築しました。

  • あるワードを含むツイート+タイムラインのツイートにいいねする
  • あるワードを含むツイートをリツイートする
  • あるワードを bio に含むアカウントをフォローする
  • Excelファイルの英単語を定期的にツイートする
  • 自分のみがフォローしている人のフォローを解除する

上から順に、コードと共にどのような仕様になっているかを記していきます。

あるワードを含むツイート+タイムラインのツイートにいいねする

まずはコードをお見せしたいと思います。

#-------------------------------------------------------------------
# 指定した条件(検索ワード、検索件数)に一致するツイート情報を取得
search_results_favo = api.search_tweets(q="TOEIC", lang = "ja", result_type="mixed",count=15)
timeline_results_favo = api.home_timeline(count=15)
#-------------------------------------------------------------------
# ランダムで選んだツイートにfavoする。普通のツイート・リツイートはfavoする。返信はfavoしない。
def Favorite_Tweet(text):
    #意味のないツイートはfavoしない。
    if (("副業" in text) or ("24卒" in text) or ("質問箱" in text) or ("セール" in text) or\
        ("売れ筋" in text)):
        print("This is a fucking tweet!")
    
    #普通のツイートをfavoする。
    elif "@" not in text:
        try:
            api.create_favorite(result.id)
            print("Favo Succeeded")
        except Exception as e:
            print(e)
        
    #リツイートをfavoする。
    elif "RT @" in text:
        try:
            api.create_favorite(result.id)
            print("Favo Succeeded")
        except Exception as e:
            print(e)
    
    #返信はfavoしない。
    else:
        print("Exclude because that was a reply")

for result in search_results_favo:
    Favorite_Tweet(result.text)
print("\n\n")
for result in timeline_results_favo:
    Favorite_Tweet(result.text)
#-------------------------------------------------------------------

各セクションごとに大体のやっていることは記載してはいますが、簡単にどのような仕様かを説明したいと思います。現在は TOEIC というワードを含むツイートを15件取得してきています。初めはそれらを見境なくいいねしていたのですが、クソみたいなプロフ誘導のツイートだったり、質問箱だったりすることが多かったのでそれらを除外しています。また、返信をいいねすると「なんだこいつ?」と思われかねないと感じたので、現在は普通のツイートとリツイートのみをいいねするようにしています。タイムラインのツイートに関しても同様です。

あるワードを含むツイートをリツイートする(停止中)

次は自動でリツイートする機能についてです。

#-------------------------------------------------------------------
# 指定した条件(検索ワード、検索件数)に一致するツイート情報を取得
search_results_retweet = api.search_tweets(q="英語学習", lang = "ja", result_type="mixed",count=7)
#-------------------------------------------------------------------
#ランダムで選んだツイートをRTする(n = 3)。リツイートのみをRTする。普通のツイート・返信はRTしない。
def Retweet_Tweet(text):
    if (("副業" in text) or ("24卒" in text) or ("匿名質問" in text) or ("セール" in text)): #意味のないツイートはRTしない。
        print("This is a fucking tweet!")
    
    #リツイートされたものをRTする。
    elif 'RT @' in text:
        try:
            api.retweet(result.id)
            print("Retweet Succeeded")
        except Exception as e:
            print(e)
            
    #普通のツイート・返信はRTしない
    else:
        print("Exclude because that was not a retweet")
                
for result in search_results_retweet:
    Retweet_Tweet(result.text)
#-------------------------------------------------------------------

基本的な仕様は先ほどのいいねの場合と違いはありません。匿名箱などはまず除外してしまいます。そのうえでリツイートするツイートを決めるのですが、ここが難しくて、何も決めないと、他の方のちょっとした進捗ツイートとかをリツイートすることになってしまい、またしても「なんだこいつ?」と思われてしまいます。そこで私はリツイートされたものだけをリツイートするような仕様にしました。こうすることで変な奴と思われることは避けられると思います。ですが、いまいち使い勝手がよくないので現在は停止中です。

あるワードを bio に含むアカウントをフォローする

次は自動フォローの機能です。

#-------------------------------------------------------------------
# 毎日以下のワードを含むアカウントを順番にフォローしていく。
Follow_dayly = ["TOEIC", "英語初心者", "英検", "IELTS", "英語学習","英会話"]

# ソースコードに依存せずに、日にちによって変化する変数を定義
#1月1日から数えて何日目かを計算し、modを使って上のlistを回す
Today = datetime.date.today().today()
New_year_day = datetime.date(2022,1,1)
Day_count = (Today-New_year_day).days

# 指定した条件(検索ワード、検索件数)に一致するアカウント情報を取得
Today_word_number = np.mod(Day_count, len(Follow_dayly))
search_results_follow = api.search_users(q = Follow_dayly[Today_word_number], count = 10)
#-------------------------------------------------------------------
#指定したワードを bio に含む人をフォローする。
def Follow_users(bio):
    if (("副業" in bio) or ("24卒" in bio)):
        print("Fuck off!")
    elif not result._json["following"]:
        api.create_friendship(user_id = result._json["id"])
        print("You've followed " + result._json["name"])
    else:
        print("We are already friends!")

for result in search_results_follow:
    user_name = result._json["name"]
    user_bio = result._json["description"]
    
    user_name_bio = user_name + user_bio
    Follow_users(user_name_bio)
#-------------------------------------------------------------------

ここでは1行目にあるワードを bio に含むアカウントを日ごとにフォローしています(今日は TOEIC を bio に含む人を 10人フォローする、明日は英語初心者を含む人をフォローという感じ)。あとは例のごとく、自分に関係のなさそうな就活アカウントなどを除外してフォローしていくという仕様にしています。

Excelファイルの英単語を定期的にツイートする

万を持して英単語 bot の説明です。英単語ファイルの上から順番にツイートしていく方法は以下の記事の方法を参考にさせていただきました。非常に参考になりました。
belltree.life

#-------------------------------------------------------------------
# 英単語ファイルを Dataframeに変換
df = pd.read_excel("Eng_words.xlsx")
#-------------------------------------------------------------------
# 投稿された回数の少ない単語の中で一番上にある単語を投稿する
row_posted = 0 #行番号。Post Count が全て0の場合に備えて初期値は0としておく
count_standard = df["Post count"][0] #この値と各行のPost Countを比較していく。初期値は0行目
for i in range(len(df)):
    # standard よりも小さいものが現れたら standard を移していく
    # 最終的に一番小さいものの中で一番上にある単語が Post される (row_posted)
    if df["Post count"][i] < count_standard:
        count_standard = df["Post count"][i]
        row_posted = i
#-------------------------------------------------------------------
# ツイートを構築する
The_text = df.iloc[row_posted]["Word"] + " : " + df.iloc[row_posted]["Meaning"]\
           + "\n[" + df.iloc[row_posted]["Pronunciation"] + "]\n\n"\
           + df.iloc[row_posted]["Example"] + "\n\n#wakaka_eng\n#英検1級\n#TOEIC"
#-------------------------------------------------------------------
# 画像ファイルをサーバーから添付する
img = requests.get(df.iloc[row_posted]["Image URL"]).content
result_img = api.media_upload(filename='img.png', file=BytesIO(img))
#-------------------------------------------------------------------
# ツイートを投稿する
tweet = api.update_status(status = The_text, media_ids=[result_img.media_id])
#-------------------------------------------------------------------
# DataframeのPost countを更新する
add_list = []
for i in range(len(df)):
    if i != row_posted:
        add_list.append(0)
    else:
        add_list.append(1)
df["Post count"] += pd.Series(add_list)
#-------------------------------------------------------------------
#StyleFrameを用いてExcelファイルを整えてから出力する
style = Styler(horizontal_alignment=utils.horizontal_alignments.left, font_size = 11,\
               wrap_text = False, shrink_to_fit=False)
style_for_Postcount = Styler(font_size = 11, wrap_text = False, shrink_to_fit=False)

with StyleFrame.ExcelWriter('Eng_words.xlsx') as writer:
    sf = StyleFrame(df)
    sf.apply_column_style(cols_to_style=["Word","Pronunciation","Meaning", "Example", "Image URL"], styler_obj=style)
    sf.apply_column_style(cols_to_style="Post count", styler_obj=style_for_Postcount)
    sf.set_column_width(columns = ["Word","Pronunciation"], width=20)
    sf.set_column_width(columns = ["Meaning","Image URL"], width=25)
    sf.set_column_width(columns = "Example", width=95)
    sf.set_column_width(columns = "Post count", width=15)
    sf.set_row_height(rows=list(range(1,len(df)+2)), height=20) #sf では1番上の行は0行目ではなく1行目なので注意
    sf.to_excel(writer, index=False)
#-------------------------------------------------------------------

コードを実行するたびに以下にあるEng_words.xlsx というエクセルファイルの単語群の中からツイートされた回数が少ないものを抽出してツイートをするという形になっています。こうすることで満遍なく単語を抽出することができます。エクセルファイルは自身の手で作製しているので少し面倒にはなりますが、今後テキストくらいは自動でエクセルファイルに書き込めるようにしようと思います。その単語に適した画像選ぶのが一番時間かかってるから良い感じのを自動で見繕ってくれるといいんだけどなぁ...。これは結構難しそうですが、誰かいい案があれば教えてください。本当にお願いします。

自分のみがフォローしている人のフォローを解除する

これは最近実装した機能です。ほとんど下に添付した記事と同じ内容ですが、注意が出る関数などがあったので少し改良しました。
talosta.hatenablog.com

#-------------------------------------------------------------------
cols = ['user_id']
follower_id_df = pd.DataFrame([], columns=cols)
following_id_df = pd.DataFrame([], columns=cols)

# フォロワーの取得
follower_ids = tweepy.Cursor(api.get_follower_ids, cursor=-1).items()
for follower_id in follower_ids:
    record = pd.Series([follower_id], index=follower_id_df.columns)
    follower_id_df.loc[len(follower_id_df)] = record
print(follower_id_df)

# フォローしている人の取得
following_ids = tweepy.Cursor(api.get_friend_ids, cursor=-1).items() 
for following_id in following_ids:
    record = pd.Series([following_id], index=following_id_df.columns)
    following_id_df.loc[len(following_id_df)] = record
print(following_id_df)
#-------------------------------------------------------------------
# 一方的にフォローしている人を抽出
# この名前を"name"にするのではなく、"user_name"にすることが意外と重要。
# このDataFrameからSeriesを生成すると、Series.nameを抽出した際にはindexの"name"ではなく、Series自体のNameが優先される。
unidirectional_follow_df = pd.DataFrame([], columns=['user_id', 'user_name', 'screen_name', 'description'])
for following_id in following_id_df['user_id']:
    if following_id not in follower_id_df['user_id'].values:
        user = api.get_user(user_id = following_id)
        record = pd.Series([user.id, user.name, user.screen_name, user.description], index=unidirectional_follow_df.columns)
        unidirectional_follow_df.loc[len(unidirectional_follow_df)] = record
print(unidirectional_follow_df)

# 一方的にフォローしている人をリムーブする
removed_users_df = pd.DataFrame([], columns=['user_id', 'user_name'])
for i, user in unidirectional_follow_df.iterrows():
    # userはDataFrameの列から生成されるSeriesである。
    api.destroy_friendship(user_id=user.user_id)
    # "user_name"にしたことによって、ここで確実にuserというSeriesのindexである"user_name"を抽出することができる。
    record = pd.Series([user.user_id, user.user_name], index = removed_users_df.columns)
    removed_users_df.loc[len(removed_users_df)] = record
print(removed_users_df)
#-------------------------------------------------------------------

先ほどの記事において使われていたPandas.DataFrameのappendメソッドが将来的に廃止される方向性であるという表示がされていたので、Pandas.Dataframeのlocを使用しました。ここでは行番号を指定して新しい行を生成しているので、ilocを用いるのかなと思ったのですが、ilocだと"iloc cannot enlarge its target object"というエラーが出てしまい、実行できませんでした。普通に列を取得する際にDataFrame.loc[0]のようにするとエラーが出るのに対して、新しく列を生成する際にDataFrame.loc[5]のようにすると実行できるらしいです。自分にはなぜか分かりません。誰か分かる方がいたら教えてください。
ソースコードの中でもコメントしたのですが、Seriesのindexに"name"を使用して、Series.name のようにアクセスしようとしても、Series自体につけられている名前が返されてしまい、indexにアクセスできません。そのため、今回はunidirectional_follow_df では"user_name"を採用しています。

「時間を割く」は英語で何という?【ALL IN ONE 表現①】

こんにちは。

ジンセイメイソウチュウの大学院生です。

最近は研究や英単語 bot の構築やらで時間が取れず、ブログを全く更新できませんでした。週2くらいのペースで更新したいんだけどなぁ。とりあえず今週は意地でも週2で更新するので暇だったら見てってください!

今日は ALL IN ONE の復習も兼ねて、TOEICなどの試験でもよく出る英語表現をまとめていきます。日常会話でもよく使われるものなのでぜひ眺めていってください!(ALL IN ONE については下の記事で私自身が熱弁しています。自分に合いそうだなと思った方は買ってみて欲しいです)

kawakyotopython.hatenablog.com

 

the week before last : 先々週 

"By the way, does anybody know what's become of Jim?"
"I do. I heard from him the week before last. He said he was earning a living as a guard.

省略をしないと the week before last week のように「先週の前の週」となり先々週という意味になります。一見簡単そうに見えますが、いざ日常会話やリスニングで出てくると頭での処理が追い付かず、いつだ??ってなってしまいます。自分はしょっちゅうなってます。このパターンでよく使われるものは以下の4つくらいなので、これらは暗記するくらい定着させるといいですね。

come to terms with A : A(納得いかないことや困難)を受け入れる

The blind and deaf person says that he has been struggling for many years but has now come to terms with his disability.

これは面白い表現ですね。ここでの terms は「条件、条項」という意味。「~になる」という意味の come to と組み合わさって「Aとの間で条件に合意する」となり、転じて「Aと折り合いがつく、Aを受け入れる」という意味になっています。

 

attribute A to B : Aの原因がBにあるとする

At the academic conference, Dr. Adams of the XYZ institute attributed changes in the climate to global warming and pollution of the atmosphere.

自分これ本当に苦手なんですよね。TOEICでも英検でも出ると思うんですけど、リスニングの時に A の部分が長くなったりしていると、 B の部分が来る頃には忘れていることが多いんです。attribute A が来た段階で「原因を表す B の部分が来るんだな」と待ち構えている必要があるんですよね。多く触れて慣れるしかないかな~

 

make up for : ~を埋め合わせる

"I'm sorry to keep you waiting. I'll be there in half an hour. I'll buy you lunch to make up for this." "It's okay. There's no hurry, so take your time."

これは日常会話でよく使う枠で載せさせてもらいました。研究室で自分がやるべきこと(掃除など)を代わってもらったときによく使っています。compensate for も同じ意味で使用することができますね。また、take your time もよく使われる表現で「自分のペースで良いよ、ゆっくりでいいよ」という意味です。非常に便利でなんかこなれ感が出る気がしているので使うようにしています(笑)。

 

spare time : 時間を割く

He bowed, thanked me for sparing the time to visit and said, "The place is a mess, but please take a seat and make yourself at home.

案外「時間を割く」という表現は知らない方も多いかもしれません。自分も外部の先生とのミーティングでほぼ毎回使っているので、仕事のミーティングなどでも使うことのできる表現だと思います。ぜひ覚えて帰ってください。ちなみに「時間をつぶす」は kill time と表現します。I'm just killing some time. みたいにして使えますね。

 

今回はこのくらいで終わろうと思います。ALL IN ONE はこのように試験で出るような単語や表現だけでなく、日常会話で非常によく使われるような表現も学ぶことができます。資格試験もいい点を取りたいし、日常会話も上達していきたい人にとってはベストな本であると思うのでぜひ手に取ってみてください。(散々推していますが依頼を受けているという事では当然ありません(笑))

では。

 

Star Wars Episode 2,3 における英語表現

こんにちは。

ジンセイメイソウチュウの大学院生です。

今回も前回に引き続き、Star Wars Episode 2,3において気になった英語表現をまとめていきたいと思います。Episode 2 はジャー・ジャー・ビンクスが"あの"戦犯をかまします。まだ見たことがない方はぜひ彼の有志を見てやってください。

ジャー・ジャー・ビンクス|スター・ウォーズ公式

 

I think it is time to inform the senate that our ability to use the Force has diminished.
我々のフォースの力が弱まったことを議会に報告すべきだ。

遠くの惑星で自軍のクローンの軍隊が10年も前から作られていたことを全く感じ取れなかった際にメイスウィンドゥが言った言葉。diminish は「減少する,を減らす」という意味ですが「(数や大きさが)減少する」というよりは「(力や重要性が)衰える,弱まるというニュアンスで使われることが多い印象。decrease は前者のみです。

 

The most important thing for you is to stay where you are.
Protect the senator at all cost.
アナキン、お前はいかなる犠牲を払っても議員をお守りしろ。

オビワンが危機に瀕している中、アナキンは議員の護衛に集中しろと命じられた。at all cost は「いかなる犠牲を払っても、命に代えても」という意味です。Avengers : Endgameで一時期話題になった Whatever it takes と同じような表現ですね。

 

Premonitions? Premonitions. Hmm..
予兆と言うべきか。警告か。

アナキンが見たパドメの死という悪夢に関してのヨーダの反応。英検1級の難語も映画などで普通に使われるという良い例ですね。premonition は「悪い予感、前兆」という意味。pre(前もって) + monit(忠告、警告する)のような語源になっています。他にも admonish や monitor も同じ語源です。

 

He's been elaborating on a plot by the Jedi to overthrow the senate.
ジェダイが議会の転覆を謀ったと詳述している。

パルパティーンの演説。英検1級単語が詰まっています。elaborate は「入念な」という形容詞のイメージが個人的には強かったですが、「(on を伴って)~について詳述する」という動詞の用法もよく使われているようです。overthrow は「(政府など)を転覆させる」という意味です。subvert も同義語として使われますね。

 

Leave everthing else behind while we still can.
取り返しがつかなくなる前に全てを捨てて逃げましょう。

パドメとアナキンの最後の会話。切ないです...
leave A behind は「A を置き去りにする」という意味です。忘れてしまったという訳ではなく、意図的に置いていくイメージです。英検だけでなく、TOEICTOEFLでも出てきますね。

 

Anakin, my allegiance is to the Republic, to democracy!
私は共和国に忠誠を誓った!民主主義にだ!

銀河を支配しようとするアナキンにオビワンが放った一言。個人的には Star Wars の中で一番好きなセリフです。このように allegiance は to を伴って用いられます。どの Episode かは覚えてないですが、I pledge my allegiance to the dark side. というセリフもどこかで出てきた気がします。

 

やっぱり Epidsode 3 が一番面白いな~
ちなみに最近やっていたオビワン・シリーズはちょっと微妙でした...

では。

Star Wars Episode 1 における英語表現

こんにちは。

ジンセイメイソウチュウの大学院生です。

今日は Star Wars Episode 1 における気になった英語表現を綴っていこうと思います。TOEIC や 英検で出会った単語を中心にまとめます。

Episode 1 の題目は The Phantom Menace。日本語訳すれば「見えざる脅威」とでも訳すのでしょうか。Menace という単語は受験などでもよく知られている単語なのでこれを機に定着させられるといいですね。(何が見えざる脅威なのかはここでは触れないようにしますので、興味がある方はぜひ見てみてください!)

 

It's something... elsewhere... elusive.
なんか...漠然とした...(嫌な予感がする)

フォースという魔法のような力を用いて、宇宙船の悪い気配を感知したときの一文。elusive(捕まえにくい、理解しにくい)は英検一級パス単にも記載されている単語。これは elude(避ける)の派生語ですね。「明確に捉えることができない」ということから「漠然とした」という訳になったのですね。

 

We will not condone the course of action that will lead us to war. 
戦争を招く行為は許しません。

ナブーという国の女王のアミダラが侵略と捉えられる行為に対して放った一言。スターウォーズも含め、ディズニーにおける女王は芯の強い女性が描かれることが多い気がします。ここでは condone(許す、多めに見る)に惹かれました。おそらく TOEICTOEFL で一度触れたことのある単語なのですが、すっかり忘れてしまっていました。語源的には、con「強調」+ done「与える、施す」という構成になっているようです。done を語源とする単語として、donar や donation があります。

 

This is my apprentice, Darth Maul. He will find your lost ship.
彼が私の弟子のダースモールだ。彼がお前らが見失った宇宙船を見つけるよ。

apprentice (見習い、弟子)は TOEIC の金のフレーズにも出てきたのでなんとなく覚えていました。これを機に定着させたいところです。

 

The point is conceded. Will you defer your motion to allow a commission to explore the validity of your accusations?
その提案(告発の正当性を確認すべきだ)を認めましょう。あなた(アミダラ)の告発の正当性を調査する委員会のために、申し立てを延期していただけませんか?

侵攻を受けているナブーの女王であるアミダラが、侵攻している通商連合を議長に告発したが、通商連合と議長は裏で繋がっているため、告発が通らない。concede(を仕方なく受け入れる)を用いている議長は本当は全く「仕方なく提案を受け入れる」とは思っておらず、そのようなふりをしているというところまで理解できると非常にムカつきはしますが面白いですね。

 

I'm sorry for my deception, but it was necessary to protect myself.
だましてしまい申し訳ありません。身を守るために必要だったのです。

アミダラ女王の側近が女王のふりをしていた時の一言。deception(だますこと、あざむくこと)はついさっきパス単に出てきて復習したところだったので触れました。

 

始めてストーリーとかを追ってまともに見たけどスターウォーズ面白い

では。

「洗濯物をこむ」は英語で何という?

こんにちは。

ジンセイメイソウチュウの大学院生です。

今日は日常生活で使いそうな表現を復習もかねて軽くまとめてみようと思います。

 

1.洗濯物をこむ

 まず最初に、洗濯物を外に干すという習慣があるのは日本を含め一部の国だけのようです。なので研究室にいるネイティブの方に聞いても明確な答えは返ってきませんでした。その後 Google で調べたところ、The New York TimesTake in the laundry が使われていました!ネイティブの方も「まぁ言うとすればこれが自然だろう」と言っていましたし、確かにイメージ通りではあるのでこれを使っていればいいのだと思います。

City in Russia Unable to Kick Asbestos Habit - The New York Times

 

2.どちらかと言うと

 案外出番が多い英語な気がしています。色々表現はあると思いますが、自分は If anything をよく使います。以前海外ドラマを見ていた時にふと出会った表現で、すぐに自分の中の辞書に追加されました。とりあえず文頭に言っておけば柔らかく物をいう事ができるなんとも日本人に嬉しい表現です(笑)。

If anything, I'd rather chill at home.

 

3.相性がいい

 これも非常に使い勝手のいい表現です。ズバリ be compatible with を使います。おそらく知っている人も多い表現だと思いますが、便利さはあまり伝わっていないのではないのでしょうか?「相性がいい」というのは人にも使えますし、機械などにも使うことができます。イメージとしてはパズルのピースがピッタリとはまる感じです。

My girl firend and I are so compatible.

The cube is compatible with our machine.


本日はこのくらいで終わらせていただきます。

では

関係副詞の where は便利!

こんにちは。

ジンセイメイソウチュウの大学院生です。

今回は関係副詞の where について復習したいと思います。

この where は直前の内容を具体的に補足説明したいときに使います。

以下の例文を見てみましょう。

This would be a situation where you can't blame or make excuses.

ここでは situation という「状況」に対して、具体的にどのような状況なのかを関係副詞の where を用いて補足説明しています。(自分以外に責任を擦り付けたり、言い訳ができない状況にいるようです。彼女から何か問い詰められてでもいるのでしょうか...)

文法的な構造は以下のようになっています。

where の先行詞としては、物理的な場所(park, library) だけでなく、状況(situation, circumstance) やシステム(system)などの様々な場面でも使用することができます。前置詞+which とは違い、前置詞を気にする必要がないという点が非ネイティブにとっては本当にありがたいです。

以上をまとめると、直前の内容を説明したいと思った際にはとりあえず where を使っておけばうまくいくと考えておいていいと思います。

注意点としては、便利すぎて多用してしまうことで上に述べたような文法上の構造を忘れてしまうことです。やはり文法としてどのようになっているかを理解しておくことは重要なので、英作文の練習などの際には、前置詞+which を使ってみたり、少なくとも文法構造を意識して where を使うことで構造を思い出したりするといいと思います。

最後に別の例文を少し載せておきます。

a job sharing activity, where two people do one job and share the job.

There is a system where someone walks around the camp and distribues tickets to people in need.

 

では。