如何在标准中格式化此文件?

时间:2018-04-17 02:30:12

标签: python part-of-speech python-textprocessing

我有一个巨大的文件(语料库),其中包含单词及其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的初学者,我将不胜感激。

1 个答案:

答案 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'), ('.', '.')]]