我有一个巨大的文件(语料库),其中包含单词及其POS标签,还有一些我想要删除的不相关信息。不相关的信息仅包含一些字符。 1个空格用于区分单词无关的信息-POS标签。具体而言,句子中的每个单词都用换行符分割,句子用两个换行符分割。它具有以下格式:
My RRT PRP
Name DFEE NN
is PAAT VBZ
Selub KP NNP
. JUM .
Sentence_2
我希望将此文件中的信息保存为一个句子数组,其中每个句子都是一个单词数组。如下:
[[('My', 'PRP'), ('name', 'NN'), ('is', 'VBZ'), ('Selub.', 'NNP'), ('.', '.')], ...]
作为Python的初学者,我将不胜感激。
答案 0 :(得分:1)
我将你的句子分成两部分,所以我们可以看到输出中的分割
My RRT PRP
Name DFEE NN
is PAAT VBZ
Selub KP NNP
. JUM .
我们可以使用一个生成列表的生成器来划分我们的句子:
def splitter(lines):
sentence = []
for line in lines:
if not line.strip(): # empty line
if not sentence: # blanks before sentences
continue
else: # about to start new sentence
yield sentence
sentence = []
else:
word, _, tag = line.split() # Split the line
sentence.append((word, tag)) # Add to current sentence
yield sentence # Yield the last sentence
with open('infile.txt') as f:
list_of_sentences = list(splitter(f)) # consume the generator into a list
print(list_of_sentences)
# [[('My', 'PRP'), ('Name', 'NN')], [('is', 'VBZ'), ('Selub', 'NNP'), ('.', '.')]]