文本预处理

时间:2017-05-15 10:26:44

标签: python corpus

我有一个这样的文字:

enter image description here

我需要对文本进行标记:每行一个单词,在句子末尾加一个空行。 问题是,有些句子没有“。”在末尾。所以我需要把“。”如果有符号标点,则换行符。

input = "europarltokenized.txt"
output = "europarlpreprocessing.txt"
nline = "\n"

with open(input, "r") as file:
    with open(output, "w") as file2:
        for line in file:
            if not line.startswith("<"):
                line=line.split()
                for elem in line:
                    file2.write(elem + "\n")
                    if elem == "." or elem=="!" or elem =="?":
                        file2.write("\n")

2 个答案:

答案 0 :(得分:1)

您的代码已经非常接近了:

input = "europarltokenized.txt"
output = "europarlpreprocessing.txt"

with open(input, "r") as f, open(output, "w") as f2:
    for line in f:
        if not line.startswith("<CHAPTER ID="):
            sl = line.split()
            for token in sl:
                f2.write(token + "\n")
            if not sl[-1] in [".", "?", "!"]:
                f2.write(".\n")
            f2.write("\n")

答案 1 :(得分:0)

我不知道它如何对Europarl起作用,但nltk包括波兰语的句子分割模型:

import nltk.data
tokenizer = nltk.data.load('tokenizers/punkt/polish.pickle')

text = u'''Unia Europejska, UE – gospodarczo-polityczny związek 28
demokratycznych państw europejskich. Unia powstała 1 listopada 1993 na
mocy podpisanego 7 lutego 1992 traktatu z Maastricht jako efekt
wieloletniego procesu integracji politycznej, gospodarczej i
społecznej. Korzenie współczesnej integracji europejskiej sięgają
okresu powojennego i ograniczały się do 6 państw
zachodnioeuropejskich.'''

ss = tokenizer.tokenize(text)

这适用于维基百科的文字:

>>> ss
[u'Unia Europejska, UE \xe2\x80\x93 gospodarczo-polityczny ...',
 u'Unia powsta\xc5\x82a 1 listopada 1993 na\nmocy podpisanego  ...',
 u'Korzenie wsp\xc3\xb3\xc5\x82czesnej integracji europejskiej ...']