0

下面的数据集由句子组成,其中每个单词都被单独标记。我想把它分成两个变量来训练我的模型。记录由空行分隔,每条记录跨越多行,其中单词和标签以逗号分隔。

how,SW
is,SW
the,SW
weather,WTR
?,.
       # blank line
will,SW
it,SW
rain,RAIN
this,ADJ
weekend,TIME
?,.

我想处理这个输入文件以生成预期的输出,如下所示:

X 变量必须包含每条记录的所有单词作为单独的列表:

[[how, is, the, weather, ?], [will it rain this weekend, ?]]

Y 变量必须包含每条记录的标签作为单独的列表:

[[SW, SW, SW, WTR, .], [SW, SW, RAIN, ADJ, TIME, .]]

请建议。谢谢!

4

1 回答 1

0

可能这样的事情会起作用:

Xs = []
Ys = []
with open('file.txt', 'r') as f:
    lines = f.readlines()
i = 0
X = []
Y = []
for line in lines:
    line = line.strip()
    if line == "":
        Xs.append(X)
        Ys.append(Y)
        X,Y = [],[]
    else:
        x,y = line.split(",")
        X.append(x)
        Y.append(y)
Xs.append(X)
Ys.append(Y)
print(Xs)
print(Ys)

#[['how', 'is', 'the', 'weather', '?'], ['will', 'it', 'rain', 'this', 'weekend', '?']]
#[['SW', 'SW', 'SW', 'WTR', '.'], ['SW', 'SW', 'RAIN', 'ADJ', 'TIME', '.']]

代码基本上是打开文件,读取所有行,并遍历这些行以检查我们是否已完成导入记录(如空行所示)并采取相应措施。line.strip()从行中删除所有空格,因此"\n".strip()将输出"".

于 2019-01-27T19:35:06.777 回答