前提
初心者なので見当違いな質問をしていたら申し訳ありません。
以下のサイトを参考にしながらSentence-BERTの勉強をしております。
【日本語モデル付き】2020年に自然言語処理をする人にお勧めしたい文ベクトルモデル
https://qiita.com/sonoisa/items/1df94d0a98cd4f209051
こちらのサイトと同じようにソースコードを一通り実行しました。
その後自分でcsvのデータを用意して同じように実行できるようにしたところエラーが出てしまいました。
サイトで言うln[4]~ln[7]のソースコードの部分です。
実現したいこと
読み込んだcsvファイルのA列のテキストを使ってサイトと同じように実行できるようにしたい。
発生している問題・エラーメッセージ
Query: 暴走したAI Top 5 most similar sentences in corpus: --------------------------------------------------------------------------- KeyError Traceback (most recent call last) /usr/local/lib/python3.7/dist-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance) 3360 try: -> 3361 return self._engine.get_loc(casted_key) 3362 except KeyError as err: 4 frames /usr/local/lib/python3.7/dist-packages/pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc() /usr/local/lib/python3.7/dist-packages/pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc() pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item() pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item() KeyError: 0 The above exception was the direct cause of the following exception: KeyError Traceback (most recent call last) <ipython-input-31-b1ac87497d31> in <module>() 16 17 for idx, distance in results[0:closest_n]: ---> 18 print(sentences[idx].strip(), "(Score: %.4f)" % (distance / 2)) /usr/local/lib/python3.7/dist-packages/pandas/core/frame.py in __getitem__(self, key) 3456 if self.columns.nlevels > 1: 3457 return self._getitem_multilevel(key) -> 3458 indexer = self.columns.get_loc(key) 3459 if is_integer(indexer): 3460 indexer = [indexer] /usr/local/lib/python3.7/dist-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance) 3361 return self._engine.get_loc(casted_key) 3362 except KeyError as err: -> 3363 raise KeyError(key) from err 3364 3365 if is_scalar(key) and isna(key) and not self.hasnans: KeyError: 0
該当のソースコード
import pandas as pd sentences = pd.read_csv('test.csv',usecols=[0])
googlecolaboratory
1import scipy.spatial 2 3queries = ['暴走したAI', '暴走した人工知能', 'いらすとやさんに感謝', 'つづく'] 4query_embeddings = model.encode(queries).numpy() 5 6closest_n = 5 7for query, query_embedding in zip(queries, query_embeddings): 8 distances = scipy.spatial.distance.cdist([query_embedding], sentence_vectors, metric="cosine")[0] 9 10 results = zip(range(len(distances)), distances) 11 results = sorted(results, key=lambda x: x[1]) 12 13 print("\n\n======================\n\n") 14 print("Query:", query) 15 print("\nTop 5 most similar sentences in corpus:") 16 17 for idx, distance in results[0:closest_n]: 18 print(sentences[idx].strip(), "(Score: %.4f)" % (distance / 2))
試したこと
csvファイルを読み込むときにusecolsで列を指定し、読み込んだ。
colaboratoryのファイルにcsvファイルを入れた。
色々検索し、以下の質問の回答のようにやってみたが出来なかった。
python csv 一列目の取り出し
https://teratail.com/questions/185737
補足情報(FW/ツールのバージョンなど)
エディション Windows 10 Home
バージョン 21H2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/08/16 03:22 編集
2022/08/16 14:04