1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

英文をちゃんとキャピタライズしたい

Last updated at Posted at 2021-06-14

Github Open In Colab
ご覧いただきありがとうございます。
Google Colaboratoryにアカウントをお持ちの方は、上の「Open in Colab」という青いボタンを押せば直接notebookをColabで開けます。ぜひ動かしてみてください。
過去の記事も含め、全てのコードをGithubで公開しています。


ある英語のチャットボットを試した時、以下のように出力してくるものがありました。

that ' s cool . i like watching sports . do you have any hobbies besides tennis ?

人間なら特に問題なく読めるのですが、これを機械翻訳に連携させた時に困ったことがありました。翻訳の品質が落ちてしまうものがあったのです。ちゃんとキャピタライズさせてから入力したほうがはるかに翻訳品質がよかった。

というわけで、キャピタライズする関数を書いてみました。

import re

def upperEnd(obj):
    '''引数の末尾を大文字にする'''
    return obj.group()[:-1] + obj.group()[-1].upper()

def capitalize(text):
    '''文をキャピタライズする'''
    text = re.sub(r'\s*([\.?!,])', r'\1', text)     # 句読点の前の空白を削除する
    text = re.sub(r"\s'\s", "'", text)            # 'の前後の空白を削除する
    text = re.sub(r'[\.?!:]\s+.', upperEnd, text) # 句点の後の最初の文字を大文字にする
    text = text[0].upper() + text[1:]           # 文の最初の文字を大文字にする
    return text

print(capitalize("that ' s cool . i like watching sports . do you have any hobbies besides tennis ?"))
That's cool. I like watching sports. Do you have any hobbies besides tennis?

以上です。何かの参考になれば。

1
1
4

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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?