質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

Q&A

解決済

1回答

699閲覧

csvファイルのデータを使用したいがプログラムが動かない

rattyo1208

総合スコア12

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

0グッド

0クリップ

投稿2022/08/13 10:49

編集2022/08/15 10:35

前提

初心者なので見当違いな質問をしていたら申し訳ありません。
以下のサイトを参考にしながら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/ツールのバージョンなど)

test.csvの中身
イメージ説明

エディション Windows 10 Home
バージョン 21H2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

python

1sentences = pd.read_csv('test.csv',usecols=[0])

↓ 修正

python

1sentences = pd.read_csv('test.csv').values.flatten().tolist()

投稿2022/08/16 03:15

jbpb0

総合スコア7651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jbpb0

2022/08/16 03:22 編集

https://qiita.com/sonoisa/items/1df94d0a98cd4f209051 のコードそのままの場合と、質問に記載の「test.csv」を使うコードの場合のそれぞれで下記を実行して、結果を比べたら何が悪いか分かると思います print(type(sentences)) print(sentences)
rattyo1208

2022/08/16 14:04

ありがとうございます。無事にできました。 追記のコードを実行し、何がいけなかったのかよくわかりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問