目的
初心者が効率的にアラビア語を学べるようにする
1.好きなアラビア語の文章を持ってくる
2.文章を翻訳する
3.文章を単語に分割(トークナイズ)する
4.さらに好きな単語を選んでアラビア文字に分解する
解決できる課題
・アラビア語学習の効率化
・単語内における位置によって変形するアラビア文字を識別する
ライブラリ準備
Google Colaboratory上での利用を想定
NLTK
Pythonで自然言語処理を行うためのライブラリNLTK
!pip install nltk # 初回のみ
import nltk
from nltk.tokenize import word_tokenize
GoogleTrans
Google翻訳
!pip install googletrans==4.0.0rc1 # 最新(これは毎回必要みたい)
from googletrans import Translator
translator = Translator()
アラビア語の文章を準備
# アラビア語の文
arabic_text = "\
يثبك و يجازيك كل الخير يا \
"
アラビア語は右から左なので、ローマ字と一緒に書くとカーソルが前後して書きにくい。
なので、1行に書きたいけど改行して、\でつなげる。
文章を翻訳
# 文章を翻訳
translations1 = translator.translate(arabic_text, dest='ja')
translations1.text
→出力結果
それはあなたを創造し、最高の状態であなたに報いる
※翻訳結果は、WEBアプリのGoogle翻訳に比べて少し精度低めみたい
単語に分割
アラビア語の単語をトークナイズ(単語分割)
# 単語分割
nltk.download('punkt')
arabic_words = word_tokenize(arabic_text)
# トークナイズされた単語の表示
print(arabic_words)
→出力結果
['يثبك', 'و', 'يجازيك', 'كل', 'الخير', 'يا']
単語ごとに翻訳
# 単語ごとに翻訳
print("アラビア単語を右から順に表示")
for index, word in enumerate(arabic_words):
translations2 = translator.translate(word, dest='ja')
# index、元の言語 → 指定の言語
print(f"Index: {index}, {translations2.origin} -> {translations2.text}")
→出力結果
アラビア単語を右から順に表示
Index: 0, يثبك -> あなたはあなたを作ります
Index: 1, و -> そして
Index: 2, يجازيك -> それはあなたに報いる
Index: 3, كل -> 全て
Index: 4, الخير -> いいもの
Index: 5, يا -> または
単語をアラビア文字に分割
出力結果の中から好きな単語のindexを選んで、アラビア文字に分割する。
# indexで単語を指定
i = 2
pickup_word = arabic_words[i]
# 単語の意味確認のために再度、翻訳と表示
translations3 = translator.translate(pickup_word, dest='ja')
print(f"Index: {index}, {translations3.origin} -> {translations3.text}")
print("")
# アラビア文字1文字ずつに分割
characters = [char for char in pickup_word]
# アラビア文字の分割結果を表示
print("アラビア語文字列(右から)")
for c in characters:
print(c)
→出力結果
Index: 5, كل -> 全て
アラビア語文字列(右から)
ك
ل
分割したアラビア文字は独立形(基本形)に戻るので、アラビア語初心者でも調べやすくなる。
アラビア語参考
メモ
あとで文字ごとの発音も入れられるようにする。