初投稿です。
アルファベット2文字の単語、全て何らか略語になっている説
「AA」「WC」「KY」…
アルファベット2文字で構成される略語は数多くあるものの「逆に略語になってない2文字は存在するのか…?」と思ったことは無いですか?
凄くどうでもいいネタなんですけど、せっかくなので調べてみる事にしました。
アルファベット2文字の単語、全てwikipediaの記事になっている説
分からない単語が出てくる度にお世話になっているwikipedia。
「略語として存在する」⇔「wikipediaの記事が存在する」が成立するという考えのもと、2文字の全組み合わせに対してページの存在をチェックする事で検証してみます。
記事が存在する場合
「AA」に関する記事は存在していました。
「ドイツ外務省」「アミノ酸」「アスキーアート」等をAAと略すらしいです。
https://ja.wikipedia.org/wiki/AA
記事が存在しない場合
「AAAAA」に関する記事は存在していませんでした。
(少なくともwikipediaからは)「AAAAA」という略語の存在は確認できませんでした。
https://ja.wikipedia.org/wiki/AAAAA
記事の存在確認
記事の存在確認は、指定したURLから404 errorが返ってくるかどうかで確認できます。
まずは、urllib2のurlopenからHTTPError(404)が返ってきたかどうかを判定できるスクリプトを作成してみました。
# coding: UTF-8
import urllib.request, urllib.error
from bs4 import BeautifulSoup
import sys
args = sys.argv
query = str(args[1])
# HTTPErrorチェック
try:
page = urllib.request.urlopen("https://ja.wikipedia.org/wiki/" + query)
flag = 1
except urllib.error.HTTPError as e:
flag = 0
# 記事の有無を出力
if flag == 1:
print(`記事「` + query + `」は存在していた。`)
elif flag == 0:
print(`記事「` + query + `」は存在していなかった。`)
結果
>python pagecheck.py AAAAA
記事「AAAAA」は存在していなかった。
>python pagecheck.py AAA
記事「AAA」は存在していた。
全組み合わせの確認
それではアルファベット2文字の全組み合わせ(26*26=676通り)に対して、記事の有無を確認していきます。
# coding: UTF-8
import urllib.request, urllib.error
from bs4 import BeautifulSoup
import sys
import time
charalist = [chr(i) for i in range(65,65+26)]
nonlist = []
t = 0
for s1 in charalist:
for s2 in charalist:
query = s1+s2
t = t + 1
print("現在:" + str(t) + "/676件目")
time.sleep(1)
try:
page = urllib.request.urlopen("https://ja.wikipedia.org/wiki/" + query)
except urllib.error.HTTPError as e:
nonlist.append(query)
# 結果出力
if nonlist == []:
print("676通り全ての記事の確認が出来ました!")
else:
print("記事の存在しない2文字は、以下の" + str(len(nonlist)) + "件です。")
for item in nonlist:
print(item)
結果
>python allpagecheck.py
現在:1/676件目
現在:2/676件目
……
現在:675/676件目
現在:676/676件目
676通り全ての記事の確認が出来ました!
これでwikipediaには2文字の単語全てに対して記事があることが確認できました!!
まとめ
wikipediaには、アルファベット2文字からなる全単語に対して記事があることが確認できた。
本当に676通り存在するものなんですねぇ。
「wikipediaなんて信用できない!調べるなら国語辞書で確認しろ!」と思ってる人も居ると思うので、次回はコトバンクを使って検証してみようと思います。
今回は結局Beautifulsoupを使わずに終わっちゃったので、次回は使います