前提・実現したいこと
Bob、Tom、Kevinなどの1万語以上の単語が含まれているcsvファイル(1列×1万超の行)があります。(各単語の長さは異なる場合があります。)これらの単語を比較して一文字だけ異なるものを全てアウトプットしたいと考えております。
入力例:
str1 [] = "dog"、str2 [] = "fog" H(str1、str2)= 1 ここで、"dog"と "fog"は1文字異なっておりますのでdogとfogをアウトプットできたらと思います。
また、str3 [] = "sport"、str4 [] = "sports", H(str3、str4)= 1 ここで、"sport"と "sports"は文字の長さが異なっておりますが、文字の長さが一文字違うと1文字異なると判定し、sportとsportsをアウトプットできたらと思います。
要件:
(1)csvファイルから一行ごとに単語を読む方法を設計する必要があります。
(2)可能であれば、Java、python、c++のいずれかの言語で求めることができたらと考えております。
試したこと
プログラミング初心者です。当初はJava8でハミング距離を使って求めようとしたのですが、そもそもハミング距離は同じ長さの単語同士の比較しか使えないことが判明しました。(csvファイルには異なる長さの単語が含まれています。)どんな方法でもよいのでcsvファイルから単語をインポートして比較し、一文字だけ異なるものをアウトプットしたいと思います。
一つの単語と残り全ての単語の比較ですとbig o notationがO(10,000 power of 10,000)になってしまい計算できなくなってしまいますので、まずは隣接する単語どうし比較できたらと思います。どうぞよろしくお願いいたします。