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

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

新規登録して質問してみよう
ただいま回答率
85.41%
Google Colaboratory

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

自然言語処理

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

Q&A

解決済

1回答

1714閲覧

Google Colaboratoryを使い単語ベクトルの読み込みを行いたい

ttttt08

総合スコア17

Google Colaboratory

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

自然言語処理

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

0グッド

0クリップ

投稿2022/10/05 08:26

編集2022/10/05 15:06
恐らくファイルリンクを変更しないといけないはずですが、どの部分を変更すればよいのか分かりません。

自然言語処理(テキスト処理)を行うにあたり、いまにゅさんの動画を参考にしています。
https://www.youtube.com/watch?v=gPV7SuZiVu4

上記動画に添付してある講義内使用コードをコピペし内容理解に取り組んでいるのですが、「15.単語ベクトルの読み込み」で下記コード

FILE_ID = "0B7XkCwpI5KDYNlNUTTlSS21pQmM" FILE_NAME = "GoogleNews-vectors-negative300.bin.gz" !wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=$FILE_ID' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=$FILE_ID" -O $FILE_NAME && rm -rf /tmp/cookies.txt

を入力すると、

--2022-10-05 07:26:16-- https://docs.google.com/uc?export=download&confirm=&id=0B7XkCwpI5KDYNlNUTTlSS21pQmM Resolving docs.google.com (docs.google.com)... 172.253.63.101, 172.253.63.138, 172.253.63.139, ... Connecting to docs.google.com (docs.google.com)|172.253.63.101|:443... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: ‘GoogleNews-vectors-negative300.bin.gz’ GoogleNews-vectors- [ <=> ] 2.33K --.-KB/s in 0s 2022-10-05 07:26:16 (41.2 MB/s) - ‘GoogleNews-vectors-negative300.bin.gz’ saved [2386]

と返ってきます。
講義内使用コードと比較すると返ってきたメッセージは異なりますが、エラーにはならなかったので、次の

from gensim.models import KeyedVectors

を入力し

model = KeyedVectors.load_word2vec_format('/content/GoogleNews-vectors-negative300.bin.gz', binary=True)

上記コードを実行すると、

--------------------------------------------------------------------------- OSError Traceback (most recent call last) <ipython-input-3-e3c3e0db66bd> in <module> ----> 1 model = KeyedVectors.load_word2vec_format('/content/GoogleNews-vectors-negative300.bin.gz', binary=True) 5 frames /usr/local/lib/python3.7/dist-packages/gensim/models/keyedvectors.py in load_word2vec_format(cls, fname, fvocab, binary, encoding, unicode_errors, limit, datatype) 1436 return _load_word2vec_format( 1437 cls, fname, fvocab=fvocab, binary=binary, encoding=encoding, unicode_errors=unicode_errors, -> 1438 limit=limit, datatype=datatype) 1439 1440 def get_keras_embedding(self, train_embeddings=False): /usr/local/lib/python3.7/dist-packages/gensim/models/utils_any2vec.py in _load_word2vec_format(cls, fname, fvocab, binary, encoding, unicode_errors, limit, datatype) 170 logger.info("loading projection weights from %s", fname) 171 with utils.smart_open(fname) as fin: --> 172 header = utils.to_unicode(fin.readline(), encoding=encoding) 173 vocab_size, vector_size = (int(x) for x in header.split()) # throws for invalid file format 174 if limit: /usr/lib/python3.7/gzip.py in readline(self, size) 383 def readline(self, size=-1): 384 self._check_not_closed() --> 385 return self._buffer.readline(size) 386 387 /usr/lib/python3.7/_compression.py in readinto(self, b) 66 def readinto(self, b): 67 with memoryview(b) as view, view.cast("B") as byte_view: ---> 68 data = self.read(len(byte_view)) 69 byte_view[:len(data)] = data 70 return len(data) /usr/lib/python3.7/gzip.py in read(self, size) 472 # jump to the next member, if there is one. 473 self._init_read() --> 474 if not self._read_gzip_header(): 475 self._size = self._pos 476 return b"" /usr/lib/python3.7/gzip.py in _read_gzip_header(self) 420 421 if magic != b'\037\213': --> 422 raise OSError('Not a gzipped file (%r)' % magic) 423 424 (method, flag, OSError: Not a gzipped file (b'<!')

上記のようなエラーメッセージが出てしまいました。
「Not a gzipped file (b'<!')のエラー」として、他サイトhttps://ja.stackoverflow.com/questions/78347/not-a-gzipped-file-b%E3%81%AE%E3%82%A8%E3%83%A9%E3%83%BC
の回答を参考にしようと思ったのですが、回答者さんがどの様にしてダウンロード出来たのかも分かりません…。
https://~ だったのでブラウザで検索をかけましたが、結局エラーコードが表示され余計に分からなくなりました。)

上記コードのどこを修正すれば、エラーせず次のコードに進めるのか教えていただきたいです。

追記

melian様よりいただいたリンクにてファイルをダウンロードすることが出来ました。

model = KeyedVectors.load_word2vec_format('/content/GoogleNews-vectors-negative300.bin.gz', binary=True)

ファイルのパスを入れ直し実行したところ、以下の様に異なるエラーが出てきました。

--------------------------------------------------------------------------- EOFError Traceback (most recent call last) <ipython-input-3-e3c3e0db66bd> in <module> ----> 1 model = KeyedVectors.load_word2vec_format('/content/GoogleNews-vectors-negative300.bin.gz', binary=True) 4 frames /usr/local/lib/python3.7/dist-packages/gensim/models/keyedvectors.py in load_word2vec_format(cls, fname, fvocab, binary, encoding, unicode_errors, limit, datatype) 1436 return _load_word2vec_format( 1437 cls, fname, fvocab=fvocab, binary=binary, encoding=encoding, unicode_errors=unicode_errors, -> 1438 limit=limit, datatype=datatype) 1439 1440 def get_keras_embedding(self, train_embeddings=False): /usr/local/lib/python3.7/dist-packages/gensim/models/utils_any2vec.py in _load_word2vec_format(cls, fname, fvocab, binary, encoding, unicode_errors, limit, datatype) 210 word.append(ch) 211 word = utils.to_unicode(b''.join(word), encoding=encoding, errors=unicode_errors) --> 212 weights = fromstring(fin.read(binary_len), dtype=REAL).astype(datatype) 213 add_word(word, weights) 214 else: /usr/lib/python3.7/gzip.py in read(self, size) 285 import errno 286 raise OSError(errno.EBADF, "read() on write-only GzipFile object") --> 287 return self._buffer.read(size) 288 289 def read1(self, size=-1): /usr/lib/python3.7/_compression.py in readinto(self, b) 66 def readinto(self, b): 67 with memoryview(b) as view, view.cast("B") as byte_view: ---> 68 data = self.read(len(byte_view)) 69 byte_view[:len(data)] = data 70 return len(data) /usr/lib/python3.7/gzip.py in read(self, size) 491 break 492 if buf == b"": --> 493 raise EOFError("Compressed file ended before the " 494 "end-of-stream marker was reached") 495 EOFError: Compressed file ended before the end-of-stream marker was reached

イメージ説明

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

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

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

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

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

ttttt08

2022/10/05 12:51

ありがとうございます。 無事ダウンロード出来ました! ファイルにドラッグアンドドロップで追加し、 model = KeyedVectors.load_word2vec_format('/content/GoogleNews-vectors-negative300.bin.gz',binary=True) で実行したのですが、やはりエラーとなってしまいました… FILE_ID = "0B7XkCwpI5KDYNlNUTTlSS21pQmM" FILE_NAME = "GoogleNews-vectors-negative300.bin.gz" !wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=$FILE_ID' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=$FILE_ID" -O $FILE_NAME && rm -rf /tmp/cookies.txt 二つ前のこのコードの時点で何か間違っているのでしょうか?
melian

2022/10/05 13:00

エラーの内容は同じでしたか?
ttttt08

2022/10/05 15:08 編集

異なるエラーが出ました。 質問にエラー文の追記と作業画面の画像も添付しております。
PondVillege

2022/10/05 16:18 編集

wgetのダウンロードプログレスバーから察するに,まだファイルのダウンロードが終わっていないようにも見えます.全体で1.5[GB]あるそうなのですが,ls -lhコマンドでファイルサイズを確認して同じファイルサイズになっていますか?ちなみにNot a gzipped file (b'<!')と言われたときは2.4[KB]しかありませんでした. ちゃんとファイル全体1.5[GB]をダウンロードした後は正常に実行できましたのでダウンロード未完了説が考えられます.
guest

回答1

0

ベストアンサー

弊環境でちゃんと動くようになったときのファイルダウンロード方法を示しておきます.

手順1

Chromeなどの開発者ツールのあるWebブラウザでhttps://docs.google.com/uc?export=download&id=0B7XkCwpI5KDYNlNUTTlSS21pQmMにアクセスし,開発者ツールを開く.

手順2

下図: 先のリンク先ページ(左側) - そのページで開いた開発者ツール(右側)
開発者ツール
ボタンinput type="submit"の直上にあるフォームform id="downloadForm"actionの後に続くリンクをコピーする.上ではhttps://docs.google.com/uc?export=download&id=0B7XkCwpI5KDYNlNUTTlSS21pQmM&confirm=t&uuid=xxxxxxxx-xxxx-xxxxx-xxxx-xxxxxxxxxxxxのようになっている箇所である.

手順3

コピーしたリンクをGoogle Colaboratory上でwgetに使う.

shell

1FILE_NAME = "GoogleNews-vectors-negative300.bin.gz" 2!wget -O $FILE_NAME "https://docs.google.com/uc?export=download&id=0B7XkCwpI5KDYNlNUTTlSS21pQmM&confirm=t&uuid=xxxxxxxx-xxxx-xxxxx-xxxx-xxxxxxxxxxxx"

となるようコマンドの記述とリンクの貼り付けを行って実行.

手順4

一応これでファイル全体をダウンロードでき,ls -lhで確認すると1.6Gと表示されるはずです.弊環境では

shell

1!md5sum $FILE_NAME

を実行すると1c892c4707a8a1a508b01a01735c0339 GoogleNews-vectors-negative300.bin.gzという出力が得られました.ダウンロードの過程でファイルが破損していなければ同一のMD5ハッシュ値1c892c4707a8a1a508b01a01735c0339が出てくるはずです.

ファイル全体が取得できていない,もしくはファイルが破損していれば上のようにEOFErrorが出ると思われます.

実行例

追記でおっしゃっている「ファイルをダウンロードすることが出来ました」も,MD5ハッシュ値が違うのであればダウンロードすることに成功していません.ハッシュ値の同一性はファイルの同一性を担保します.確認をお願いします.

投稿2022/10/05 16:34

編集2022/10/07 01:45
PondVillege

総合スコア1579

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

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

ttttt08

2022/10/07 02:06

ps_aux_grep様 丁寧に教えていただきありがとうございました! MD5ハッシュ値も同一のものとなりました。 最初のエラーが出ていた際は、'!ls -lh'で確認したところ、8Kであったり、4Kであったりとご指摘の通りそもそもダウンロードが未完了でした。 melian様、ps_aux_grep様ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.41%

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

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

質問する

関連した質問