パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

python3 辞書があるなら翻訳ソフトもできるはず

2018-06-26 | プログラムをマスター計画2020
まず簡単な日本語の単語をつくります。
google翻訳で訳します。
行がそろうようにテキストファイル2つにします

2つのファイルを読み出して
日本語辞書、英語辞書2つ作ります。

簡単な日本語の文をいくつかつくって
日本語から英語、その英語から日本語
2つの翻訳をしてみました。



japan.txt
あれ
これ

みる
きく
とる
もつ


ですか
です
ではない

りんご
みかん
バナナ


ぶどう

なぜ
なに
いつ
どこで
だれが
どうやって

























大きい
小さい
高い
低い

english.txt
that
this

View
listen
To take
To have

Is
Is it
is
is not

Apple
Mandarin orange
banana
pear
peach
Grape

why
what
When
where
who
how

Cat
dog
Man
bird
fish

wood
flower
grass

river
Mountain
Rice field
Ocean
pond
town

Red
Blue
Green
yellow
White
black

large
small
high
Low

honyaku.py

cutRet = lambda s: s.replace(chr(10),"").replace(chr(13),"")
f = open('japan.txt')
js = f.readlines()
f.close()
f = open('english.txt')
es = f.readlines()
f.close()
dic={}
edic={}
for i in range(len(js)):
    j=cutRet(js[i])
    if len(j)>0:
        dic[j]=cutRet(es[i])
        edic[cutRet(es[i]).lower()]=j
test=["これ は 犬","あれ は 山","なぜ りんご 赤","魚 猫 ではない","花 は 赤 白 黄","海 は 大きい","なぜ 海 大きい です","人 は 海 みる","猫 とる 魚"]
etext=[]
for s in test:
    print(s)
for s in test:
    o=""
    ws=s.split()
    for w in ws:
        o+=dic.get(w, w)+" "
    o=o.lower()
    etext.append(o[0].upper()+o[1:-1]+".")
    print(o[0].upper()+o[1:-1]+".")
for s in etext:
    o=""
    ws=((s.lower()).replace(".","")).split()
    for w in ws:
        o+=edic.get(w, w)+" "
    print(o[:-1])


少し解説します。
最初のラムダ式、改行コードを削除します。
chr(10)はunix,chr(13)はmac,Windowsは両方
japan.txtとenglish.txtをリストに入れます。
ループさせずボコッとまるごと入れられます。
辞書型データ 日→英、英→日を作成。
英語は小文字に変換してます。

翻訳用のサンプルを登録。
半角スペースで区切ってます。

単語に区切ってマッチしたら変換
マッチしなければそのまま表示しています。

英文は先頭は大文字、残りは小文字にして、
最後ピリオドを入れてます。

辞書は
dic={}で定義
dic[key]=valueで登録
dic[key]で取得
dic.get(w, w)は辞書dicからkey wの値を
取ります。ないときはwを返してます。

最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。