大学の授業ではMacを使っていたのですが家のパソコンはwindowsなのでそこが原因ではないかと考えています。
テキストファイルを読み込み、端午分散表現モデルを使い、文章をベクトル表現することが目的のプログラムです。課題を自分で長期休みのうちに取り組もうとし、やろうと思っていたのですが、ファイル指定の時点でエラーが出てしまいいろいろ調べてみましたが解決しなかったので投稿させていただきました。
###エラーメッセージ
C:\Users\shota\Text_mining\class13>python doc2vec_calc.py \ComicReview\Kaguya.txt \ComicReview\Kaguya.txt Traceback (most recent call last): File "doc2vec_calc.py", line 18, in <module> rfp = open(file_path,"r",encoding="utf-8") FileNotFoundError: [Errno 2] No such file or directory: '\ComicReview\Kaguya.txt'
該当のソースコード
doc2vec_calc.py
1from collections import Counter 2import nltk 3from nltk import stem 4import sys 5import os 6from gensim.models import word2vec 7import sys 8 9 10args = sys.argv 11file_path = args[1] 12print(file_path) 13 14vocab_file = r"D:/Text_mining/Text_mining/class12/w2v/ja.bin" 15 16model = word2vec.Word2Vec.load(vocab_file) 17 18rfp = open(file_path,"r",encoding="utf-8") 19document = rfp.read() 20rfp.close() 21 22morph = nltk.word_tokenize(document) 23pos = nltk.pos_tag(morph) 24 25 26files = os.listdir(file_path) 27 28quotes = [] 29file_names = [] 30 31for each in files: 32 if each.endswith(".txt") == True: 33 34 file_names.append(each) 35 36 file_path = dir_path + each 37 rfp = open(file_path,"r",encoding="utf-8") 38 each_quote = rfp.read() 39 rfp.close() 40 quotes.append(each_quote) 41 42print(quotes) 43 44lemmatizer = stem.WordNetLemmatizer() 45lct_quotes = [] 46vec_in_doc = [] 47 48for qu in quotes: 49 morph_qu = nltk.word_tokenize(qu) 50 pos_qu = nltk.pos_tag(morph_qu) 51 52 lemma_qu = [] 53 54 for word in pos_qu: 55 if word[1] == "NN" or word[1] == "NNS" or \ 56 word[1] == "NNP" or word[1] == "NNPS" or word[1] == "PRP": 57 lemma_qu.append(lemmatizer.lemmatize(word[0].lower())) 58 lct_quotes.append(Counter(lemma_qu)) 59try: 60 wvec = model.wv[each_words[2]] 61 vec_in_doc.append(wvec) 62 63except: 64 pass 65 #print('The word' + word + 'is not the library') 66 67for i in range(len(lct_quotes)): 68 print(file_names[i]) 69 print(str(lct_quotes[i]) + "\n") 70 71print('The average vector for document ' + file_path + 'is;') 72print(np.mean(vec_in_doc,axis = 0)) 73
試したこと
バックスラッシュがだめや円マークしたらいいなどの記事を見つけたのですが試してみてもエラー内容は変わらなかったです。
回答3件
あなたの回答
tips
プレビュー