コンユウメモ @kon_yu

作ったガラクタとか、旅行とかの話

おしゃれ用語が難しくて読めない!そんな悩みを解決 Goodbye OSHARE terms

f:id:kon_yu:20201130153602p:plain

(おしゃれ人間のイメージ図、平気でハットをかぶり丸めネガネかける)

毎度おなじみクソアプリアドベントカレンダー1日目の記事でございます(皆勤賞) qiita.com

みんなー!今年も役に立たないものを作ったよ!!

おしゃれ用語が難しすぎて読めない

ファッション系のウェブサイトを見ると用語がわからなすぎて全然頭に入らない。マテリアルなど無駄に横文字にする行為や、プチプラ、マストバイアイテムなど独特の和製英語も我々の認知能力に負荷を掛ける。

ファッションサイトの文章とは例えばこんな感じだ。

ファッションの流行はミリタリー&スポーツがアップトレンド。軍物モチーフのジャケットに蛍光フーディーを合わせた旬のミックススタイルの手元には、トーンの近いカーキの「オリジナル・キャンパー」がふさわしい。アクティブでタフな雰囲気に「オリジナル・キャンパー」が同調する。ミリタリーウオッチらしいドーム型のプラスティック風防やナイロンストラップによる軽快な着用感があって、シンプルな文字盤で時間が見やすいのもうれしい。ロープライスなのも僕らの味方だ。

出典: https://www.mensnonno.jp/post/48379/?cx_top=news&shm-vp=3

ちょっと何言ってるかわからない

いや、全然わからないわけじゃないんだけどね、日本語だしね。でもねただただ疲れるんだ。カタカナ語と固有名詞は判断付くようにしたい。

そこでChrome拡張機能を作ってファッション用語の辞書を作ってどんなサイトにも適用できるようにした。

今回作ったもの

先の文章を今回作ったChrome拡張を適用するとこんな感じになる

ファッションの流行は軍用の&スポーツがアップ流行。軍物主題のジャケットに蛍光パーカーを合わせた旬の異なる服装を混ぜた服装服装の手元には、色調の近いカーキの「オリジナル・キャンパー」がふさわしい。アクティブでタフな雰囲気に「オリジナル・キャンパー」が同調する。ミリタリーウオッチらしいドーム型のプラスティック風防やナイロン吊り革による軽快な着用感があって、シンプルな文字盤で時間が見やすいのもうれしい。低いです価格なのも僕らの味方だ。

これでだいぶ読みやすくなった。なったよね? なったに違いない!!

デモ

動かすとこんな感じでファッション用語がわかりやすい言葉に置き換わっていく。

www.youtube.com

Chrome拡張機能のストアに公開されたよ!!!

chrome.google.com

ソースコードはこちら github.com

このソースコード内のchrome_extensionディレクトリを chrome://extensions から読み込むと利用できる

さて、どうやって作ろうか?

さてファッション用語の辞書から対応する言葉を置き換えるとは言っても、辞書はどこにもない。 この辞書をどうやって作ったか、また文字列を置き換えた際にそれぞれのサイトのボタンなど押した際についている動作を失わないようにした工夫を記載していく。

ファッション用語辞書を作る

無い辞書をどうやって作るか、工程は3つ

ファッションサイトをスクレイピング

各サイトから記事のページのリンクをかき集めるにはWeb Scraper を使った。このツールで各サイトの一覧に表示されているリンクを取得してCSV保存した。このツールのおかげで自前でコードを書かずにベースとなるファッションサイトの記事を集められた。

男性向けファッションメディア2つ、女性向けファッションメディア2つの計4メディアから収集

総ページ数は 4792 + 2303 + 700 + 3000 = 10795 ページ

カタカナ語かき集めてそのカタカナ語の頻度を集計

Pythonスクレイピングと集計処理をした。大まかな処理は以下

  • 各サイトのHTMLを取得、正規表現で2文字以上のカタカナの文字列の抜き出してリストする
  • カタカナ語の合成語は一般的な日本語では無いので普通の形態素解析では分割できないので諦めた
  • カタカナ語のリストからpandas.DataFrameを使って頻度を集計
  • 頻度の高すぎる、低すぎるカタカナ語をフィルタリング
    • メディアのBodyから引き抜いているのでサイドバーに表示されているカテゴリー名も集計してしまい頻度が高くなる、またはジーンズみたいな簡単な用語なので除外するため多すぎる用語を除外
    • 少なすぎる用語は単純に少ないので除外
    • フィルタリングのしきい値については完全に感で行っている。なんとなく眺めていてオレがわかりにくいと思ったレイヤードの1344回とダッドの20回を上限値と下限値にした。
    • この絞り込みで3905個に絞り込んだ

集計結果を元に翻訳して辞書を作成

さて3905個もある用語を一個一個翻訳してられないので、こちらもGoogle Spread sheetを使って自動化した。

日本語から英語、英語から日本語に再翻訳してカタカナ語をわかりやすい言葉に

例えばトラウザーというおしゃれ用語がある。これを、日英、英日に翻訳すると

トラウザーを日本語から英語に翻訳するとTrousers

Trousersを英語から日本語に翻訳するとズボン

このようにトラウザーをズボンとわかりやすい言葉に置き換えることができるのだ

Google Spread sheetにはGOOGLETRANSLATEという関数があって下記のように各セルを翻訳することができるのだ

=GOOGLETRANSLATE(A5,"ja","en") =GOOGLETRANSLATE(B5,"en","ja") また、もとの値と再翻訳した値が同じかどうか判断するのにEXACT関数を使って判別するようにした =EXACT(A5, C5)

この処理によってこのようなおしゃれ用語をわかり易い言葉に置き換えられた

デコルテ → (日英翻訳)→ Neckline → (英日翻訳) → ネックライン

フーディ → (日英翻訳)→ Hoody → (英日翻訳) → パーカー

とは言っても再翻訳して変な翻訳になっているものと再翻訳しても同じだったものはどう処理するか?

再翻訳大作戦で全部いい感じにおしゃれ用語をわかり易い言葉に置き換えられるかと思ったが、そうは問屋が卸さない。どうしたかというと根性で自力で一個一個訳した。これは結構へこたれそうになった。いやへこたれた。数字でいうと436個でへこたれたようだ。

再翻訳してもうまく行かないパターン3つ

手動翻訳を強いられたのは3つのパターンだった。

●再翻訳してもおしゃれ用語から脱せない

ボトムス → (日英翻訳)→ Bottoms → (英日翻訳) → ボトムス → (手動翻訳)→ズボン

再翻訳してもボトムスに戻ってしまう。

●再翻訳したら違う意味になる

ストール → (日英翻訳)→ Stall → (英日翻訳) → 失速 → (手動翻訳)→ 幅の広いマフラー

ストールは恐らくstoleのことで女性用の肩掛けのことを指すようだが、英語翻訳時にカタカナ語からだと誤訳してしまった。

●英日翻訳で和製英語が正しくなり再翻訳時に意味が変わる

マフラー → (日英翻訳)→ Scarf → (英日翻訳) → スカーフ → (手動翻訳)→ マフラー

マフラーはスカーフが正しい英語だけど日本語的には変

翻訳に使う辞書を抽出

自力で翻訳したものがある場合はそれを優先し、ない場合は再翻訳した値が元の用語と違うものを表示する、再翻訳した結果が元の用語と同じ場合はerrorの文字を出すようにややトリッキーな関数をセルに仕込んだ

=if(ISTEXT(F3),F3,if(E3 = FALSE,D3,"error"))

Pythonで集計した結果を処理したスプレッドシートのリンクはこちら

https://docs.google.com/spreadsheets/d/1t_qe7LOSiq_i4scZFeBmqHVKzRdFvkxdw79yhUNQHBQ/edit?usp=sharing

スプレッドシートの中身を一部切り出すとこのように、頻度と日英、英日の翻訳と自力で翻訳した単語があるのがわかるだろう

f:id:kon_yu:20201130210037p:plain
集計処理結果

データ分析してわかったこと

日英再翻訳作戦が有効ではないものはこういうのが弱い

● 定着していない和製英語

リアルクローズ → (日英翻訳) → Real close ❌(clothにならない) → (英日翻訳) → リアルタイムに近いです ❌

たぶん普段着のことを言いたいのかな?アメリカのサイトでreal clothes で調べても汎用的な言葉としては出てこなかった

●記事に文字数制限されてるのかな?カタカナ語の略

ノースリ → (日英翻訳) → Nosuri ❌→ (英日翻訳) → Nosuri ❌

イメトレ → (日英翻訳) → Imetore ❌→ (英日翻訳) → Imetore ❌

●読者は漢字を読めないと思ってるのか?装飾用なのかな?無駄にカタカナにした単語

イッキ → (日英翻訳) → Ikki → (英日翻訳) → 一騎当千

アンバイ → (日英翻訳) → Systematics 🔺(体系的)→ (英日翻訳) → 按排 🔺(体系的の英語がどういうわけか塩梅の難しい方の漢字へ)

一方こちらは無駄なカタカナ化をいい感じに訳してくれている

イマドキ → (日英翻訳) → Nowadays⭕ → (英日翻訳) → 最近⭕

ポップさを演出したいのか日本語をカタカナにする傾向があるが、読み手の認知負荷を上げるだけで無駄だと思う。どこでライティングの勉強をしたのだろうか?心配になってきた。 アンバイなんて無理に使わずにもっと平易な言葉を使うのもライターの仕事じゃないだろうか?

スタイル、コーデ、テイスト問題

スタイルとコーデとテイストはほぼ同義で使われる。統一してもらいたい。 時にシルエットも同義で使われるが、本来の輪郭の意味のシルエットの場合もあるので注意が必要だ。

まとめ

ファッションサイトを読みづらいので、ファッション用語の辞書をファッションサイトをスクレイピングした結果から頻度を抽出して作成した。

当初はカタカナ語を日本語から英語へ翻訳し、英語から日本語へ再翻訳すれば解決するかと思いきや、敵は我々の想像よりも遥かに手強く、謎の和製英語や無駄に変に略したりと手動での翻訳を強いてきた。400以上の単語を手動で翻訳するもこちらが白旗を上げてしまう事態となった。ファッション業界の奥は深い。

chrome拡張でもHTMLの内容を更新してもボタンやタブのイベントがちゃんと動くようにする工夫をしている。これはまた別の記事にまとめる予定だ。普段ReactやVueだと気にしないけど、外部から既存のDOMをハックするには普段フレームワークを利用して使わないようなJSを使うことになりなかなか勉強になった。

今後の展開

大抵のサイトはそんなことはないが、本当に日本語が破綻している文をちらほら見かけることもあった。しかし画像が豊富だと文章はほぼ読まないから気にならないので問題がないのかもしれない。文字は飾りのようなものなのだろうか?ならば文字は全部Macのフォントに選択時に出てくる宮沢賢治ポラーノの広場でも違和感がないのかもしれない。新しい仮説が生まれてしまった。追って検証していく。

あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら、うつくしい森で飾られたモリーオ市、郊外のぎらぎらひかる草の波。

ロケットビーバーイ!