海外ドラマで英会話力をUpする方法に英語音声を,「内容理解 → 英語字幕有り → 英語字幕無し」の3段階で耳を慣らすのが良いと聞き,情報系の動画で,英語字幕と日本語字幕の両方がある英語音声のYouTube動画をまとめました.主に1つのモノや出来事を数分で紹介しているものを選んでいます.選択した動画と同じチャンネルに含まれる他の動画にも両方の字幕があることが多いのですが,足がかりとなるように1つのチャンネルからは1つの動画のリンクを載せることにします.
他にオススメがあれば教えてください.
英単語の出現頻度
下の本で,海外ドラマの中で現れる英単語の出現頻度を調べて,簡単な英単語がほとんどと書かれていました.
上の動画でも果たしてそうなのか? と疑問に思ったので英単語の出現頻度を調べてみました.
まず初めに出現頻度を調べるプログラムの説明をして,その後で上位50の英単語を見ていきます.
次を参考に英語字幕をXMLファイルで取得しました.
YouTubeの字幕データをダウンロードする方法 | Web制作ナビ
取得方法として,直接URLを指定する方法と,purplebabyさんのオンラインサービス(YOUTUBE動画の字幕をダウンロードするCGI - purplebabyのブログ)でダウンロードする方法の2つを使用しました.
1-1. 直接URLを指定する方法
URLは次の形式で,lang_code に日本語なら ja,英語ならenを代入します.また,video_idは動画に紐付けられたパラメータなので,各動画のURLの v=[code_id] と書かれている部分を使用します.得られたXMLファイルにHTML特殊文字が含まれるので変換が少し大変でした(良い方法ないのか模索中).
https://video.google.com/timedtext?hl=[lang_code]&lang=[lang_code]&name=&v=[video_id]
英単語の出現頻度の上位50を表示するプログラムは次の通りです.
import xml.etree.ElementTree as ET
import re
import urllib.request
from collections import Counter
from xml.sax.saxutils import unescape
reg_tag= re.compile(r"<[^>]*?>")
words = []
codes = ["w3jLJU7DT5E", "QADSH8XYx_A", "hPxnIix5ExI", "BNHR6IQJGZs"]
url = 'https://video.google.com/timedtext?hl=en&lang=en&name=&v='
for video_id in codes:
req = urllib.request.Request(url + video_id)
with urllib.request.urlopen(req) as responese:
xml_data = responese.read()
root = ET.fromstring(xml_data)
for e in root.getiterator("text"):
str = unescape(e.text)
str = str.replace("'", "'")
str = str.replace(""", '"')
str = str.replace('.', "")
str = str.replace(',', "")
str = str.replace('?', "")
str = str.replace('!', "")
str = str.replace(':', "")
str = str.replace('"', "")
str = reg_tag.sub("", str)
str = str.split()
for word in str:
words.append(word.lower())
counter = Counter(words)
no = 1
for word in counter.most_common(50):
print("%2d.(%2d): %s" % (no, word[1], word[0]))
no += 1
1-2. purplebabyさんのオンラインサービスを利用
URLの部分に動画のURLを入力して,XMLを選択して,字幕の言語として英語(en)を指定してXMLファイルをダウンロードします.手元にXMLファイルをダウンロードして下のソースコードの cites = [] にXMLファイル名を入力します.
英単語の出現頻度の上位50を表示するプログラムは次の通りです.
import xml.etree.ElementTree as ET
import re
from collections import Counter
reg_tag= re.compile(r"<[^>]*?>")
words = []
cites = ["github.xml", "dropbox.xml", "youtube.xml", "how_search.xml"]
for file_name in cites:
tree = ET.parse(file_name)
root = tree.getroot()
for e in root.getiterator("text"):
str = e.text
str = str.replace('.', "")
str = str.replace(',', "")
str = str.replace('?', "")
str = str.replace('!', "")
str = str.replace(':', "")
str = str.replace('"', "")
str = reg_tag.sub("", str)
str = str.split()
for word in str:
words.append(word.lower());
counter = Counter(words)
no = 1
for word in counter.most_common(50):
print("%2d.(%2d): %s" % (no, word[1], word[0]))
no += 1
2. プログラムの概要
上の2つのプログラムはPythonで書かれています.1-1のURLを直接叩いてXMLを取得するのには urllib を使用しました.XMLの解析はXMLモジュールを使用しています.XMLファイルでは,〈transcript〉の子の〈text〉の要素に英語字幕があるので要素を取得しました.次の2つを参考にしました.
XML解析をして取り出した単語に,〈i〉などが含まれているので次を参考に取り除きました.
最後に各単語の出現頻度はcollectionsのCounterを使用してます.
3. 英単語の出現頻度上位50
下に出現回数が19位までの結果を載せています.英単語の総出現回数は1557回で,548個の異なる英単語がありました.上位19までで総出現回数の約48%を網羅しています.
43位に tracotors があるのは,GitHubの動画でトラック開発でGitHubを使用していると紹介しているからです.
結果を見ると確かに易しい英単語が並んでいます.ここに載せていないものも含めて私が分からなかったのは,24位〈出現回数 1回〉 fleet(艦隊),24位〈出現回数 1回〉 diagnostic(診断),24位〈出現回数 1回〉 moisture(水分) でした.選んだ動画が分かりやすい英語で伝えようという意識があるからこのような結果になったかもしれません.
| 順位 |
出現回数 |
単語 |
| 1 |
80 |
the |
| 2 |
49 |
to |
| 3 |
43 |
and |
| 4 |
35 |
a |
| 5 |
32 |
of |
| 6 |
22 |
your |
| 7 |
20 |
is |
| 7 |
20 |
on |
| 8 |
19 |
in |
| 8 |
19 |
you |
| 9 |
17 |
that |
| 9 |
17 |
how |
| 10 |
16 |
this |
| 11 |
15 |
all |
| 11 |
15 |
we |
| 12 |
13 |
they |
| 12 |
13 |
can |
| 13 |
12 |
for |
| 14 |
11 |
it |
| 順位 |
出現回数 |
単語 |
| 14 |
11 |
with |
| 14 |
11 |
videos |
| 14 |
11 |
search |
| 14 |
11 |
at |
| 15 |
10 |
github |
| 15 |
10 |
even |
| 16 |
9 |
are |
| 16 |
9 |
or |
| 17 |
8 |
what |
| 17 |
8 |
people |
| 17 |
8 |
software |
| 17 |
8 |
so |
| 17 |
8 |
our |
| 17 |
8 |
do |
| 17 |
8 |
each |
| 17 |
8 |
like |
| 18 |
7 |
an |
| 18 |
7 |
algorithm |
| 18 |
7 |
i |
| 順位 |
出現回数 |
単語 |
| 18 |
7 |
pages |
| 18 |
7 |
page |
| 19 |
6 |
does |
| 19 |
6 |
work |
| 19 |
6 |
tractors |
| 19 |
6 |
be |
| 19 |
6 |
more |
| 19 |
6 |
help |
| 19 |
6 |
team |
| 19 |
6 |
he |
| 19 |
6 |
has |
| 19 |
6 |
where |
| 19 |
6 |
get |
| 19 |
6 |
new |
| 19 |
6 |
changes |
| 19 |
6 |
if |
| 19 |
6 |
from |
| 19 |
6 |
those |
まとめ
簡単な単語だけなのに英語聞き取れなくて「ウァイ ジャパニーズ ピーポー ・・・」と思った.
名詞の複数形や動詞の活用形などを原型のみで数えたいけど大変そうなので止めました.