Google Analytics アフィニティカテゴリの日本語翻訳を返すpython ファンクションを作成する


サイトにアクセスするユーザーをGoogle Analytics の アフィニティカテゴリごとに分類したくなったのですが、アフィニティカテゴリが英語ですぐに頭に入ってこなかったので、【2017年最新版】Google Analyticsで使われるインタレストカテゴリと日本語訳一覧 – KOBIT の翻訳を拝借して、アニメティカテゴリの英語名称渡すと、日本語名称を返す python のファンクションを作ってみました。
結果を以下に記載します。

作成した python ファンクション

Google Analytics アフィニティカテゴリ の 翻訳 TSV ファイル と 翻訳ファイルで翻訳する python スクリプト の TSVファイルから、翻訳用の辞書を作成するファンクションと、 その辞書を使って、英語名を日本語名に変換するファンクションを作成しました。

import requests

translation_dictionary = {}

def create_dictionary():
    r = requests.get("https://gist.githubusercontent.com/kemsakurai/6c287eab5aa45415bf5c50df1e61a47f/raw/3ea1cf361a8914ad20c70ac46e8473e2590597e9/AffinityCategoryTranslation.tsv")
    lines = r.text.split("\n")
    index = 0
    for line in lines:
        index = index + 1
        if index == 1:
            continue
        elems = line.split("\t")
        translation_dictionary.update({elems[0]: elems[1]})

def translate_affinity_category(english_string):
    results = []
    for elem in english_string.split("/"):
        results.append(translation_dictionary.get(elem, "undefined"))
    return '/'.join(results)

使い方

以下のように使います。

# 翻訳辞書の初期化
create_dictionary()
# 翻訳辞書
translation_dictionary
{'30 Minute Chefs': 'お手軽クッキング愛好家',
 'Action & Adventure Movie Fans': 'アクション映画',
 'Action Game Fans': 'アクションゲーム',
 'Adventure & Strategy Game Fans': 'アドベンチャー・戦略ゲーム',
 'American Football Fans': 'アメフト',
 'Art & Theater Aficionados': '芸術・芝居マニア',
 'Aspiring Chefs': '料理人を目指している人',
 'Australian Football Fans': 'オーストラリアンフットボール',
 'Auto Enthusiasts': '自動車愛好家',
 'Avid Investors': '熱心な投資家',
 'Banking & Finance': '銀行&金融',
 'Bargain Hunters': 'バーゲン',
 'Baseball Fans': '野球',
 'Basketball Fans': 'バスケッ',
 'Beachbound Travelers': '海の見える地域',
 'Beauty & Wellness': '美容&健康',
 'Beauty Mavens': '美容の達人',
 'Blues Fans': 'ブルース',
 'Boating & Sailing Enthusiasts': '波乗りスポーツ',
 'Book Lovers': '書籍愛好家',
 'Business & Economic News Junkies': 'ビジネス・経済情報',
 'Business Professionals': 'ビジネス専門家',
 'Business Travelers': 'ビジネス旅行者',
 'Casual & Social Gamers': 'ミニゲーム・ソーシャルゲーム',
 'Cat Lovers': 'ネコ好き',
 'Classical Music Enthusiasts': 'クラシック音楽',
 'Comedy Movie Fans': 'コメディー映画',
 'Comics & Animation Fans': 'マンガ・アニメ好き',
 'Cooking Enthusiasts': '料理愛好家',
 'Country Music Fans': 'カントリーミュージック',
 'Cricket Enthusiasts': 'クリケット',
 'Cycling Enthusiasts': 'サイクリング',
 'Do-It-Yourselfers': '日曜大工愛好家',
 'Documentary & Nonfiction TV Fans': 'ドキュメンタリー',
 'Dog Lovers': '犬好き',
 'Driving & Racing Game Fans': 'ドライブ・レースゲーム',
 'Electronica & Dance Music Fans': 'ダンスミュージック',
 'Entertainment & Celebrity News Junkies': 'エンターテイメント&セレブニュース',
 'Family Movie Fans': '家族映画',
 'Family Television Fans': '家族向け番組',
 'Family Vacationers': '家族旅行',
 'Family-Focused': '家族重視',
 'Fashionistas': 'ファッション愛好家',
 'Fast Food Cravers': 'ファーストフード中毒',
 'Fight & Wrestling Fans': '格闘&レスリング',
 'Folk & Traditional Music Enthusiasts': '民謡·伝統',
 'Food & Dining': 'フード&ダイニング',
 'Foodies': '食い道楽',
 'Game, Reality & Talk Show Fans': 'ゲーム、ドキュメント&トーク番組',
 'Gamers': 'ゲーマー',
 'Golf Enthusiasts': 'ゴルフ',
 'Green Living Enthusiasts': 'エコ生活愛好者',
 'Hardcore Gamers': '筋金入りのゲーマー',
 'Health & Fitness Buffs': '健康・フィットネス通',
 'Hockey Fans': 'ホッケー',
 'Home & Garden': 'ホーム&ガーデン',
 'Home Decor Enthusiasts': 'インテリア愛好家',
 'Horror Movie Fans': 'ホラー映画',
 'Indie & Alternative Rock Fans': 'インディー・ロック',
 'Jazz Enthusiasts': 'ジャズ',
 'Lifestyles & Hobbies': 'ライフスタイル&趣味',
 'Local News Junkies': 'ローカルニュース',
 'Luxury Shoppers': '高価な買い物',
 'Luxury Travelers': '贅沢な旅行',
 'Media & Entertainment': 'メディア&エンターテイメント',
 'Men’s Media Fans': '男性メディア',
 'Metalheads': 'メタル',
 'Mobile Enthusiasts': 'モバイル愛好家',
 'Motor Sports Enthusiasts': 'モータースポーツ',
 'Motorcycle Enthusiasts': 'オートバイ愛好家',
 'Movie Lovers': '映画愛好家',
 'Music Lovers': '音楽愛好家',
 'News & Politics': 'ニュース&政治',
 'News Junkies': 'ニュース好き',
 'News Junkies & Avid Readers': 'ニュース好き&本好き',
 'Nightlife Enthusiasts': '夜遊び好き',
 'Outdoor Enthusiasts': 'アウトドア愛好家',
 'Performance & Luxury Vehicle Enthusiasts': '高性能車・高級車愛好家',
 'Pet Lovers': '動物好き',
 'Political Junkies': '政治マニア',
 'Political News Junkies': '政治情報',
 'Pop Music Fans': 'ポップ',
 'Racquetball Enthusiasts': 'ラケットボール',
 'Rap & Hip Hop Fans': 'ラップ&ヒップホップ',
 'Rock Music Fans': 'ロック',
 'Roleplaying Game Fans': 'RPG愛好家',
 'Romance & Drama Movie Fans': '恋愛映画',
 'Rugby Enthusiasts': 'ラグビー',
 'Running Enthusiasts': 'ランニング',
 'Sci-Fi & Fantasy Movie Fans': 'ファンタジー映画',
 'Sci-Fi & Fantasy TV Fans': 'ファンタジー番組',
 'Shooter Game Fans': 'シューティングゲーム',
 'Shopaholics': '買い物中毒',
 'Shoppers': '買い物好き',
 'Shutterbugs': 'アマチュア写真家',
 'Skiing Enthusiasts': 'スキー',
 'Snowbound Travelers': '雪深い地域',
 'Soccer Fans': 'サッカー',
 'Social Media Enthusiasts': 'ソーシャルメディア愛好家',
 'South Asian Film Fans': '南アジア映画',
 'Spanish-Language Music Fans': 'スペイン音楽',
 'Sports & Fitness': 'スポーツ&フィットネス',
 'Sports Fans': 'スポーツ好き',
 'Sports Game Fans': 'スポーツゲーム',
 'Swimming Enthusiasts': '水泳',
 'TV Comedy Fans': 'バラエティー',
 'TV Drama Fans': 'ドラマ',
 'TV Lovers': 'テレビ好き',
 'Technology': '技術',
 'Technophiles': '新技術好き',
 'Tennis Enthusiasts': 'テニス',
 'Thrill Seekers': 'スリル好き',
 'Travel': '旅行',
 'Travel Buffs': '旅行好き',
 'Truck & SUV Enthusiasts': 'トラック・SUV愛好家',
 'Value Shoppers': '価格重視',
 'Vehicles & Transportation': '自動車&輸送',
 'Water Sports Enthusiasts': 'マリンスポーツ',
 'Winter Sports Enthusiasts': 'ウィンタースポーツ',
 "Women's Media Fans": '女性のメディアファン',
 'Women’s Media Fans': '女性メディア',
 'World Music Fans': '世界の音楽',
 'World News Junkies': '世界のニュース'}
# 翻訳対象のアフィニティカテゴリを渡すと、翻訳結果が返る 
translate_affinity_category("World News Junkies")
'世界のニュース'
# 大中小カテゴリが/で区切られている場合は、/で分割して、分割した要素ごとに対訳を取得する
translate_affinity_category("Sports & Fitness/Sports Fans")
'スポーツ&フィットネス/スポーツ好き'
# Google Analytics から取得した結果を入力ファイルとして取得結果が翻訳できるか確認する
# 対訳がない場合は、undefined を含む文字列が返る
import requests
r= requests.get("https://gist.githubusercontent.com/kemsakurai/6c287eab5aa45415bf5c50df1e61a47f/raw/0e9960124e3311ebe3ba7228c14cc13e886bfca2/target.txt")
lines = r.text.split("\n")
for line in lines:
    print(line, "#", translate_affinity_category(line))
30 Minute Chefs # お手軽クッキング愛好家
Action & Adventure Movie Fans # アクション映画
Action Game Fans # アクションゲーム
Adventure & Strategy Game Fans # アドベンチャー・戦略ゲーム
American Football Fans # アメフト
Art & Theater Aficionados # 芸術・芝居マニア
Aspiring Chefs # 料理人を目指している人
Australian Football Fans # オーストラリアンフットボール
Auto Enthusiasts # 自動車愛好家
Avid Investors # 熱心な投資家
Banking & Finance # 銀行&金融
Bargain Hunters # バーゲン
Baseball Fans # 野球
Basketball Fans # バスケッ
Beachbound Travelers # 海の見える地域
Beauty & Wellness # 美容&健康
Beauty Mavens # 美容の達人
Blues Fans # ブルース
Boating & Sailing Enthusiasts # 波乗りスポーツ
Book Lovers # 書籍愛好家
Business & Economic News Junkies # ビジネス・経済情報
Business Professionals # ビジネス専門家
Business Travelers # ビジネス旅行者
Casual & Social Gamers # ミニゲーム・ソーシャルゲーム
Cat Lovers # ネコ好き
Classical Music Enthusiasts # クラシック音楽
Comedy Movie Fans # コメディー映画
Comics & Animation Fans # マンガ・アニメ好き
Cooking Enthusiasts # 料理愛好家
Country Music Fans # カントリーミュージック
Cricket Enthusiasts # クリケット
Cycling Enthusiasts # サイクリング
Do-It-Yourselfers # 日曜大工愛好家
Documentary & Nonfiction TV Fans # ドキュメンタリー
Dog Lovers # 犬好き
Driving & Racing Game Fans # ドライブ・レースゲーム
Electronica & Dance Music Fans # ダンスミュージック
Entertainment & Celebrity News Junkies # エンターテイメント&セレブニュース
Family Movie Fans # 家族映画
Family Television Fans # 家族向け番組
Family Vacationers # 家族旅行
Family-Focused # 家族重視
Fashionistas # ファッション愛好家
Fast Food Cravers # ファーストフード中毒
Fight & Wrestling Fans # 格闘&レスリング
Folk & Traditional Music Enthusiasts # 民謡·伝統
Food & Dining # フード&ダイニング
Foodies # 食い道楽
Game, Reality & Talk Show Fans # ゲーム、ドキュメント&トーク番組
Gamers # ゲーマー
Golf Enthusiasts # ゴルフ
Green Living Enthusiasts # エコ生活愛好者
Hardcore Gamers # 筋金入りのゲーマー
Health & Fitness Buffs # 健康・フィットネス通
Hockey Fans # ホッケー
Home & Garden # ホーム&ガーデン
Home Decor Enthusiasts # インテリア愛好家
Horror Movie Fans # ホラー映画
Indie & Alternative Rock Fans # インディー・ロック
Jazz Enthusiasts # ジャズ
Lifestyles & Hobbies # ライフスタイル&趣味
Local News Junkies # ローカルニュース
Luxury Shoppers # 高価な買い物
Luxury Travelers # 贅沢な旅行
Media & Entertainment # メディア&エンターテイメント
Men’s Media Fans # 男性メディア
Metalheads # メタル
Mobile Enthusiasts # モバイル愛好家
Motor Sports Enthusiasts # モータースポーツ
Motorcycle Enthusiasts # オートバイ愛好家
Movie Lovers # 映画愛好家
Music Lovers # 音楽愛好家
News & Politics # ニュース&政治
News Junkies # ニュース好き
News Junkies & Avid Readers # ニュース好き&本好き
Nightlife Enthusiasts # 夜遊び好き
Outdoor Enthusiasts # アウトドア愛好家
Performance & Luxury Vehicle Enthusiasts # 高性能車・高級車愛好家
Pet Lovers # 動物好き
Political Junkies # 政治マニア
Political News Junkies # 政治情報
Pop Music Fans # ポップ
Racquetball Enthusiasts # ラケットボール
Rap & Hip Hop Fans # ラップ&ヒップホップ
Rock Music Fans # ロック
Roleplaying Game Fans # RPG愛好家
Romance & Drama Movie Fans # 恋愛映画
Rugby Enthusiasts # ラグビー
Running Enthusiasts # ランニング
Sci-Fi & Fantasy Movie Fans # ファンタジー映画
Sci-Fi & Fantasy TV Fans # ファンタジー番組
Shooter Game Fans # シューティングゲーム
Shopaholics # 買い物中毒
Shoppers # 買い物好き
Shutterbugs # アマチュア写真家
Skiing Enthusiasts # スキー
Snowbound Travelers # 雪深い地域
Soccer Fans # サッカー
Social Media Enthusiasts # ソーシャルメディア愛好家
South Asian Film Fans # 南アジア映画
Spanish-Language Music Fans # スペイン音楽
Sports & Fitness # スポーツ&フィットネス
Sports Fans # スポーツ好き
Sports Game Fans # スポーツゲーム
Swimming Enthusiasts # 水泳
Technology # 技術
Technophiles # 新技術好き
Tennis Enthusiasts # テニス
Thrill Seekers # スリル好き
Travel # 旅行
Travel Buffs # 旅行好き
Truck & SUV Enthusiasts # トラック・SUV愛好家
TV Comedy Fans # バラエティー
TV Drama Fans # ドラマ
TV Lovers # テレビ好き
Value Shoppers # 価格重視
Vehicles & Transportation # 自動車&輸送
Water Sports Enthusiasts # マリンスポーツ
Winter Sports Enthusiasts # ウィンタースポーツ
Women's Media Fans # 女性のメディアファン
Women’s Media Fans # 女性メディア
World Music Fans # 世界の音楽
World News Junkies # 世界のニュース

補足

以下の記事と、自ブログの Google Analytics の結果を元に、翻訳ファイルは作成しましたが、おそらく全量ではないかと思います。
* A Definitive List of Affinity Categories & In-Market Segments - Venture Stream
* 【2017年最新版】Google Analyticsで使われるインタレストカテゴリと日本語訳一覧 – KOBIT

後日調べてみたところ、アフィニティカテゴリの日本語訳と、英語の一覧がありました。

Google Ads の カテゴリの一覧なので、区切り文字等が若干異なりますが、だいたい全部載っているのではないかと思います。
日本語と、英語の並び順が異なり、日本語と英語の一覧から、対訳のリストは作れず、Microsoft Translator テキスト API を使って英語のカテゴリを変換するスクリプトを作成してみました。
そちらは、Google Analytics アフィニティ カテゴリの英語の対訳を Bing Translate API で作成する | Monotalk に記載しましたので、よろしければご確認ください。

以上です。

コメント