Metadata-Version: 2.1
Name: simscv
Version: 0.0.5
Summary: A simple csv reader
Home-page: https://github.com/Kanra-Ishido/simscv
Author: Kanra_Ishido
Author-email: s2222002@stu.musashino-u.ac.jp
Project-URL: Bug Tracker, https://github.com/Kanra-Ishido/simscv
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: numpy
Requires-Dist: scikit-learn
Requires-Dist: scipy

# csvファイル内の類似度計算ライブラリ


今回私は、csvファイル形式でまとめられた数値データから二つの行の類似度を計算するライブラリである「simcsv」を作成した。
ライブラリの詳細については以下の通りである。

## 「simcsv」の詳細情報
ライブラリのソースコードを示したGitHubのURLは以下の通りである。
* GitHubのURL : https://github.com/Kanra-Ishido/simscv
  * ライブラリの基幹部分となるPythonファイルは src/simcsv.py に記述
ライブラリをアップロードしたPyPIのURLは以下の通りである。
* PyPIのURL：https://pypi.org/project/simscv/0.0.2/

## 概要
* ヘッダー以外が数値で構成されるcsvファイルの各項目を類似度計算できるライブラリである
* 各行を一つの項目の特徴量であると認識し、行と行について類似度計算して比較する
* 類似度計算の種類としては、「コサイン類似度, ユークリッド距離, マンハッタン距離, ジャカード係数, ハミング距離, ピアソン相関係数, ダイス係数, KLダイバージェンス」である


## データの入出力
各類似度計算についての呼び出し方と入力については以下の通りである。
* コサイン類似度 : simcos.Cosine("csvファイル", "呼び出したい行数", "呼び出したい行数")
* ユークリッド距離 : simcos.Euclidean("csvファイル", "呼び出したい行数", "呼び出したい行数")
* マンハッタン距離 : simcos.Manhattan("csvファイル", "呼び出したい行数", "呼び出したい行数")
* ジャカード係数 : simcos.Jaccard("csvファイル", "呼び出したい行数", "呼び出したい行数")
* ハミング距離 : simcos.Hamming("csvファイル", "呼び出したい行数", "呼び出したい行数")
* ピアソン相関係数 : simcos.Pearson("csvファイル", "呼び出したい行数", "呼び出したい行数")
* ダイス係数 : simcos.Dice("csvファイル", "呼び出したい行数", "呼び出したい行数")
* KLダイバージェンス : simcos.Kl("csvファイル", "呼び出したい行数", "呼び出したい行数")

計算結果の出力については以下の通りである。
* [["呼び出した行数", "呼び出した行数"], 指定した類似度の計算結果]


## 使用方法 
使用方法としては3通りある。
#### 特定の行と特定の行について類似度計算したい場合
* 特定の行と特定の行について類似度計算したい場合については、関数名("csv", "特定の行数", "特定の行数") とする
例) simcos.Cosine("hoge.csv", "123", "456")
期待される結果) [[123, 456], 0.843]
このように、hoge.csvの123行目と456行目のコサイン類似度について求められる。

#### 特定の行とその他の行について類似度計算したい場合
* 特定の行とその他の行について類似度計算したい場合については、関数名("csv", "特定の行数") とする
例) simcos.Cosine("hoge.csv", "123")
期待される結果) [[123, 124], 0.99, [123, 678], 0.98, [123, 431], 0.97, [123, 832], 0.96, [123, 721], 0.95, [123, 578], 0.94, [123, 682], 0.93, [123, 986], 0.92, [123, 72], 0.91, [123, 1097], 0.90]
このように、hoge.csvの123行目とその他の行のコサイン類似度について求められ、類似度が近いとされる上位10つが順番に表示される。

#### 全ての行について類似度計算したい場合
* 各行の全ての組み合わせについて類似度計算したい場合については、関数名("csv") とする
例) simcos.Cosine("hoge.csv")
期待される結果) [[837, 1648], 0.99, [857, 917], 0.98, [25, 362], 0.97, [192, 665], 0.96, [104, 962], 0.95, [726, 1240], 0.94, [729, 1017], 0.93, [583, 394], 0.92, [517, 761], 0.91, [347, 419], 0.90]
このように、hoge.csvの各行の全ての組み合わせのコサイン類似度について求められ、類似度が近いとされる上位10つが順番に表示される。


## 使用用途
* csvデータのどの要素同士に相関があるか簡単に調べたい場合
* 類似度計算の結果を使ってより深いデータ分析をしたい場合
* あるデータに対して、使用する類似度計算方法によってどのような差異があるか調査したい場合
* あるデータに対して、どの類似度計算方法を選択すればいいか調査する場合
など
