LoginSignup
7
3

More than 5 years have passed since last update.

田中コーパスを日英対訳形式に変換

Last updated at Posted at 2019-03-24

概要

機械学習で使える日英対訳コーパスのひとつ、田中コーパスを使いやすくする前処理用のコードを書いた。

田中コーパス

「日本人の大学生が授業の一貫として集めた対訳文(多少のノイズあり)」(「日本語対訳データ」)。研究用・商用ともに無料で利用できる。

日本語文、英文とも短くまとまっていて、機械的処理には向いていそうである。日本語文は自然。英訳は少し教科書的で硬い感じはある。

田中コーパスはここからダウンロード可能。

中身を見るとこんな感じ。

A: ムーリエルは20歳になりました。 Muiriel is 20 now.#ID=1282_4707
B: は 二十歳(はたち){20歳} になる[01]{になりました}
A: すぐに戻ります。 I will be back soon.#ID=1284_4709
B: 直ぐに{すぐに} 戻る{戻ります}
A: すぐに諦めて昼寝をするかも知れない。   I may give up soon and just nap instead.#ID=1300_4727
B: 直ぐに{すぐに} 諦める{諦めて} 昼寝 を 為る(する){する} かも知れない
A: 愛してる。  I love you.#ID=1434_4851
B: 愛する{愛してる}
A: ログアウトするんじゃなかったよ。 I shouldn't have logged off.#ID=1442_4858
B: ログアウト~ 為る(する){する} ん[03] だ{じゃなかった} よ[01]

1対の対訳が A:B: という2つ行に分かれて説明されている。対訳情報は A の行に置かれている。
対訳のみに関心がある場合、次のような形式に変換したいところだ。

ムーリエルは20歳になりました。    Muiriel is 20 now.
すぐに戻ります。    I will be back soon.
すぐに諦めて昼寝をするかも知れない。  I may give up soon and just nap instead.
愛してる。 I love you.
ログアウトするんじゃなかったよ。    I shouldn't have logged off.

日本語文と英語文はタブで区切られている。

この変換を可能にするコードを Python 3 で書いた。

変換用コード(Python 3)

convert.py
import re


while True:
    try:
        line = input()
        if re.match(r'A: ', line):
            line = re.sub(r'\AA: ', '', line)
            line = re.sub(r'#ID=.*\Z', '', line)
            print(line)
    except EOFError:
        break

使い方

  1. 田中コーパスのページで、「complete version (UTF-8)」のリンクを探して、対訳データをダウンロード(examples.utf.gz)。
  2. gunzip examples.utf.gz を実行して解凍し、examples.utf ファイルを得る。
  3. python convert.py < examples.utf > tanaka_corpus.txt を実行。 tanaka_corpus.txt に前処理済みのデータが入っている。
7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3