Skip to main content

A simple csv reader

Project description

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

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

「simcsv」の詳細情報

ライブラリのソースコードを示したGitHubのURLは以下の通りである。

概要

  • ヘッダー以外が数値で構成される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データのどの要素同士に相関があるか簡単に調べたい場合
  • 類似度計算の結果を使ってより深いデータ分析をしたい場合
  • あるデータに対して、使用する類似度計算方法によってどのような差異があるか調査したい場合
  • あるデータに対して、どの類似度計算方法を選択すればいいか調査する場合 など

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

simscv-0.0.4.tar.gz (3.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

simscv-0.0.4-py3-none-any.whl (2.9 kB view details)

Uploaded Python 3

File details

Details for the file simscv-0.0.4.tar.gz.

File metadata

  • Download URL: simscv-0.0.4.tar.gz
  • Upload date:
  • Size: 3.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.14

File hashes

Hashes for simscv-0.0.4.tar.gz
Algorithm Hash digest
SHA256 437e1f91e59e1015a66672ed2fd5b19619559497677a613b5c62962a9d5d79d4
MD5 a778232ee823ea006f760a1d8743161a
BLAKE2b-256 6a59170a98f00ca790a95663bac5fc6be7e3a0ff89bb4d8908ec93870e25159d

See more details on using hashes here.

File details

Details for the file simscv-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: simscv-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 2.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.14

File hashes

Hashes for simscv-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 d5da519b7335d1b5e8bce607498f10c8f2dca7bfd5a9f81b465b6ee6c95033b1
MD5 9e2856b867a20044d743ae7844d7b708
BLAKE2b-256 9b2089fb830ccbba4c8ae430074f3b40267a28377843f3ca5bf844d5709a01cf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page