Google翻訳時に整形してくれるchrome拡張を公開しました!

みなさんGoogle翻訳使ってますか?

僕は英文は初手Google翻訳にかけてざっと意味を把握するのが便利すぎてかなり依存してます。

そんなGoogle翻訳、整形された文章に対してはかなり精度良く翻訳してくれますが、途中で変な空白や改行が入っていると意味自体が変わってしまったり見にくかったりしますよね。(RFCとかコピペするとすごいことになる) あと、文章がひたすら改行なしに続いているものも読む時に目が滑ってしまいますよね。

そこで今回、そんな悩みを解決するchrome拡張を公開しました! こちからダウンロードできます! https://chrome.google.com/webstore/detail/trimtr/kmagkdcodpbbiiacacmnjhidhnlmogef?hl=ja

使い方は至って単純で、文章をコピペor入力後にテキストボックス外をクリックすることで自動で

  • 文章ごとの改行
  • 不要な空白・改行の削除

をしてくれます! (参考動画: https://youtu.be/bFx3SCKmAuU )

ぜひご利用ください!!!


ちょっと技術的なところを解説すると、文章の文末判定にはnltk.tokenize.punkt moduleという、教師なし学習モデルを利用しています。教師なし学習モデルなので生データを食わせればいいので便利ですね。 何を学習するのかと言うと次のようなパラメータを学習します。

abbrev_types = {'e.g','i.e'}
collocations = {('t','browne'), ('t', 'cheever')}
sent_starters = {'but', 'then'}
ortho_context = {'allow', 'that'}

それぞれの意味は次のように記載されています。

  • abbrev_types: A set of word types for known abbreviations.
  • collocations: A set of word type tuples for known common collocations where the first word ends in a period. E.g., ('S.', 'Bach') is a common collocation in a text that discusses 'Johann S. Bach'. These count as negative evidence for sentence boundaries.
  • sent_starters: A set of word types for words that often appear at the beginning of sentences.
  • ortho_context: A dictionary mapping word types to the set of orthographic contexts that word type appears in. Contexts are represented by adding orthographic context flags: ...

内部のゴリゴリの正規表現と、これらのパラメータを使って上手いこと文末判定をしてくれます。 アルゴリズムの詳細はこの論文が参考になるかもしれません。このアルゴリズムは、略語が特定されると文の境界の決定における多くの曖昧性を排除出来るという仮定に基づいています。


現在は、箇条書きや、意味のある文章の塊に分けるといったことは対応していませんが直に対応したいと思います。