前提・実現したいこと
Pythonで文章を入力してそれを分かち書きし,元々ある語彙表に無い単語(難解語)を抽出しその単語の類義語と難解語を置換して,単語を置換した文章を出力するようなシステムを作っています。
例 彼はダイエット中です → 彼は減量中です
新しいファイルに単語置換後の文章を入力してそれを出力したいと考えています.
csvファイルの扱い方がいまいち分かっていないので,ご教授頂けると幸いです.
test.csv
彼,は,ダイエット,する
nankaigo.csv
ダイエット
ruigigo.csv
減量
該当のソースコード
Python
1with open('test.csv', mode="r") as f: 2 with open('nankaigo.csv', mode="w") as r: 3 with open('ruigigo.csv', mode="w") as fileC: 4 reader = csv.reader(f,delimiter=',') 5 with open('out.csv','w',newline='') as fout: 6 writer = csv.writer(fout) 7 for row in reader: 8 for sel in row: 9 if sel not in dictB: 10 print("難解語:" ,sel) 11 writer = csv.writer(r) 12 writer.writerow([sel]) 13 results = model.wv.most_similar(positive=[sel]) 14 ruigigo = results[0][0] 15 dif.append(sel) 16 rui.append(ruigigo) 17 print(dif) 18 print(rui) 19 writer = csv.writer(fileC) 20 writer.writerow([ruigigo]) 21 for idx,col in enumerate(dif): 22 if col in rui: 23 dif[idx] = rui[col] 24 25 writer.writerow(dif) 26
補足情報(FW/ツールのバージョンなど)
Python3.7.1
試したこと
変数selとして類義語は抽出できたが,置き換え先が不明だった.
そこで,test.csvとnankaigo.csvで一致している単語(ダイエット)を抽出して,test.csvの(ダイエット)をruigigo.csvの(減量,おり)でそれぞれ”ダイエット”を置換してファイルを作成又は更新しようと思ったが,その方法が可能かどうか分からなかった.
(抽出は可能なのだが,ファイルのセルを用いて別のファイルを更新することが可能かどうか分からなかった.)
該当のソースコード
Python
1with open('test.csv', mode="r") as f: 2 with open('nankaigo.csv', mode="w") as r: 3 with open('ruigigo.csv', mode="w") as fileC: 4 reader = csv.reader(f,delimiter=',') 5 for row in reader: 6 for sel in row: 7 if sel not in dictB: 8 print("難解語:" ,sel) 9 writer = csv.writer(r) 10 writer.writerow([sel]) 11 results = model.wv.most_similar(positive=[sel]) 12 ruigigo = results[0][0] 13 print(sel) 14 print(ruigigo) 15 writer = csv.writer(fileC) 16 writer.writerow([ruigigo]) 17 s = f.read() 18 s = s.replace(sel,ruigigo) 19 20with open('test.csv', mode="w") as f: 21 writer = csv.writer(f)
replace関数で置換して,ファイルに出力しようと思ったが,うまくいきませんでいた.
replace関数の中のselとruigigoという変数の使い方が合っているかどうか教えていただきたいです.
ちなみに,printで出力したのは確認用で,それぞれダイエットと減量という文字列が出力されました.
回答1件
あなたの回答
tips
プレビュー