見出し画像

【自然言語処理】複数の教科書に掲載された単語を比較する

複数の教科書を分析するときに単語の掲載有無を調べたい。
特定の英単語がどの教科書には掲載されて、どの教科書には掲載されていないのかがわかれば、その教科書の特徴がわかる。また複数の教科書に特定の英単語が掲載されていれば、頻出単語であり、重要単語であることがわかる。
もちろんエクセルの表でも作業は進めることはできるが、シートの数が多くなりそうなのと、関数の組み合わせに時間がかかりそうなので、Pythonを用いて英単語の固有IDを振る。
固有IDさえ振ってしまえば、あとはエクセルやスプレッドシートでもif構文で掲載の有無は評価できる。いったんプログラムを作っておけば、今後教科書単語が増えた時も再利用できる。
今回の記事では固有IDを振り、単語の掲載有無を表にするところまで書く。

作業の流れ

プログラムは主にGoogleのcolaboratoryを用いた。
今回は「HereWeGo」と「NEW HORIZON」の教科書の単語リストを作成し、csvで保存した。

No.,Word,textbook
1,a,HereWeGo
2,able,HereWeGo
3,Aboriginal people,HereWeGo
4,about,HereWeGo
5,above,HereWeGo
6,abroad,HereWeGo
7,accept,HereWeGo
8,access,HereWeGo
9,ache,HereWeGo
10,achoo,HereWeGo
11,across,HereWeGo
12,act,HereWeGo
13,action,HereWeGo
14,active,HereWeGo
15,activity,HereWeGo
16,actor,HereWeGo
17,actually,HereWeGo
18,address,HereWeGo
19,admire,HereWeGo
20,adult,HereWeGo
...
4420,yard,NEWHORIZON
4421,yawn,NEWHORIZON
4422,yeah,NEWHORIZON
4423,year,NEWHORIZON
4424,yearly,NEWHORIZON
4425,yellow,NEWHORIZON
4426,yes,NEWHORIZON
4427,yesterday,NEWHORIZON
4428,yet,NEWHORIZON
4429,you,NEWHORIZON
4430,young,NEWHORIZON
4431,your,NEWHORIZON
4432,yours,NEWHORIZON
4433,yourself,NEWHORIZON
4434,zebra,NEWHORIZON
4435,zero,NEWHORIZON
4436,zoo,NEWHORIZON
4437,Zorda,NEWHORIZON

英単語に固有IDを振る

import collections
import numpy as np
import csv
import pandas as pd

# GoogleDriveをマウント
from google.colab import drive
drive.mount('/content/drive')

# CSV 読み込み
data = pd.read_csv('/content/drive/MyDrive/Colab Notebooks/0001_textbookAnalytics/textbook_wordlist.csv')

# リストに変換
word_list = data['Word'].tolist()
# リストを'¥'で結合
sentence = '¥'.join(word_list)

# 固有Idを振る
word2id = collections.defaultdict(lambda: len(word2id))
def convert_word(sentence):
  return [word2id[word] for word in sentence.split('¥')]

print("id_sentence :", *convert_word(sentence) )
print("dict        :", dict(word2id) )
word_dict = dict(word2id)

# dictをデータフレームに変換
df = pd.json_normalize(word_dict)
# 行列を転置
df = np.transpose(df)
print(df)

# csvで出力
df.to_csv('textbook2wordid.csv')

参考サイト

教科書ごとの掲載有無の表を作成

一部に言葉を統一しないといけないところがあるけど、プログラム自体とやりたいことは実現できた。これを積み重ねていけば、教科書に掲載された単語の一覧が完成する。
次は特徴的な言葉の抽出して、教科書の特徴を見ていこうと思う。


この記事が気に入ったらサポートをしてみませんか?