import csv
import ujson
from konlpy.tag import Okt
def ss(line):
line = line.strip().replace(". ", ".n")
line = line.splitlines()
return line
def anal(analyzer, sent):
tp =[]
for i in sent:
text = analyzer.pos(i)
text_pos.append(text)
return tp
input_file_name = r"data.csv"
with open(input_file_name, "r", encoding = "utf-8") as input_file:
okt=Okt()
for line in input_file:
sent = split_sentences(line)
text_pos = get_pos(okt, sentence)
output_file_name=r"data1.json"
with open(output_file_name, "w", encoding="utf-8") as output_file:
for get_pos in text_pos:
text_str = ujson.dumps(text_pos, ensure_ascii=False)
print(text_str, file=output_file)
这就是我目前所拥有的,但只有 CSV 文件的最后一行正在被读取和分析。我想修复我的代码以读取 CSV 文件的所有行(它总共有 5276 行(并进行分析。我应该尝试什么?
在下面的循环中,您将覆盖句子并text_pos循环的每次迭代。
for line in input_file:
sentence = split_sentences(line)
text_pos = get_pos(okt, sentence)
在循环的最后一次迭代中,text_pos和句子将从最后一行开始。如果我是你,我会尝试在循环之前创建一个列表并将get_pos的结果附加到列表中。稍后,您可以将每个结果写入输出文件。
免责声明:我没有使用 Okt 库的经验。希望我的预感是正确的。