【python】スペース有無, 順番違いのキーワード重複の削除

派遣 事務 求人
派遣 事務
求人 事務 派遣
事務 求人
事務派遣

などのキーワードから、スペース有無や順番違いのキーワードを除外したい。

▼アウトプットイメージ
派遣 事務 求人
派遣 事務
事務 求人

キーワード重複の削除

下準備

#numpyのインポート
import numpy as np

#キーワードを配列に代入。
keywords = ['派遣 事務 求人', '派遣 事務','求人 事務 派遣','事務 求人']

#キーワード整形用の関数を作成
def shaping_kw(keyword):
    split_kw = keyword.split(' ') #キーワードをスペースで分割
    sorted_kw = sorted(split_kw) #分割したキーワードを並び替え
    join_kw = ''.join(sorted_kw) #並び替えたキーワードを連結
    return join_kw

#shaping_kwを、keywordsの値に実行
shaped_keywords = list(map(lambda keyword:shaping_kw(keyword),keywords))

#shaped_keywords
['事務求人派遣', '事務派遣', '事務求人派遣', '事務求人', '事務派遣']

重複を削除したキーワードの取り出し

#numpyのunique()を使用して、ユニークなキーワードを取り出す
np.unique(shaped_keywords)
実行結果
array(['事務求人', '事務求人派遣', '事務派遣'],dtype='<U6')

まとめ

スペース有無,前後の順番が違うキーワードは下記の手順で重複除外出来る。
①スペースで分割
②分割したキーワードの並び替え
③並び替えたキーワードを連結
④numpyのunique()で、ユニークな値だけ取り出す


このままのデータだと、キーワード調査とかには活用出来ないので
整形前のキーワードを残した上で重複を除外する方法を考えないと・・。


2017/11/03追記:AdWordsのデータから、整形後データのCSV出力まで一気にする方法が分かった
otoha0510.hatenablog.com