概要/背景
VOD(Video On Demandサービス)とかテレビの映像データで、特定の期間中に見られた番組やシリーズものの映像ごとに視聴数とか集計したときのメモ。テレビの視聴率を時間ごとに計算するのは簡単ですが、動画のタイトルは結構表記ゆらぎが多いので、まとめるのが大変。例えば、「笑ゥせぇるすまん」と「笑ゥせぇるすまん スペシャル」は別タイトルになってしまいます。単純な方法ですが、JW Distance(Jaro Winkler距離)を使用。
実装
pyjarowinklerを使ってみます。プログラム名が短いとうまくいかないので4文字くらいで切った方が精度が出ます。
from pyjarowinkler import distance
path = "Path to directory"
def dist_func(wp,p_name1, p_name2):
write_fp = csv.writer(open(path+"jw_distance" + ".csv","a"))
write_fp.writerow(["'" + wp + "'", "'" + p_name1 + "'", "'" + p_name2 + "'","'" + str(distance.get_jaro_distance(p_name1,p_name2,winkler=True, scaling=0.1)) + "'"])
みたいな感じで超簡単。
結果
1列目がタイトル1、2列目がタイトル2、3列目がJW距離
'笑ゥせぇるすまん','スクール・ウォーズ2','0.0'
'笑ゥせぇるすまん','笑ゥせぇるすまん スペシャル','0.91'
'笑ゥせぇるすまん','中二病でも恋がしたい!戀 エクストラエピソード','0.0'
・・・
一番右列がJW距離です。'笑ゥせぇるすまん'と'笑ゥせぇるすまん スペシャル'は'0.91'になっていて、似ているタイトルとみなせそうですね。
参考
URL
ジャロ・ウィンクラー距離 - Wikipedia