自然言語の評価基準「BERTScore」を英語でも試して見ます。Google開発のBERTなので、もちろん英文の自然言語処理の方が得意です。
英文用にコード変更
英文の自然言語処理をする場合、前回のPythonコードの5行目、言語指定を「lang=”en”」に変更するだけです。
むしろ英文がデフォルトで、日本語に対応していたことが、ありがたいことです。
英文で類似度の計算
前回テストで使った日本語の文章を、英文に翻訳します。
1 2 3 4 |
I am a cat I am a cat in the future world I'm a cat-shaped robot I'm a boy in yellow with glasses |
この4つで類似度計算します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
I am a cat 0.9421 : I am a cat in the future world 0.9174 : I'm a cat-shaped robot 0.8756 : I'm a boy in yellow with glass I am a cat in the future world 0.9421 : I am a cat 0.9114 : I'm a cat-shaped robot 0.8794 : I'm a boy in yellow with glass I'm a cat-shaped robot 0.9174 : I am a cat 0.9114 : I am a cat in the future world 0.8834 : I'm a boy in yellow with glass I'm a boy in yellow with glass 0.8834 : I'm a cat-shaped robot 0.8794 : I am a cat in the future world 0.8756 : I am a cat |
結果は、日本語で計算した時と順位が変わりません。
ただし、スコアと処理時間はだいぶ変わります。
スコアが高く、処理時間が増加
スコアを見ると、日本語では見られない0.9以上が出力されるようになりました。
ただし、処理時間は22.8秒→33.4秒に増加。
自然言語処理に使う学習データは英語の方が多いため、処理に時間がかかるのでしょうか?
大量の英文を処理する場合、日本語より時間がかかることに注意する必要があるかもしれません。(納品期限とかあれば)