Разделить строки, разделенные табуляцией (или пробелами) в файле - PullRequest
0 голосов
/ 12 марта 2019

У меня есть большой файл (europarl corpus), содержащий в каждой строке предложение на английском и немецком языках

Es gab Tote.    They killed people.
Ich stimme Herrn Mayer in allem zu.     I agree with everything Mr Mayer has said.

Выше две примерные строки. Мне просто нужно, для каждой строки, отделить каждое языковое предложение .

Как видите, предложения разделяются небольшим пробелом (я думаю, что это табуляция?), Состоящим из нескольких пробелов, проблема в том, что количество пробелов в файле несовместимо.

Кроме того, иногда английская версия полностью отсутствует

Ответы [ 2 ]

1 голос
/ 12 марта 2019

Используйте пакет re, чтобы разбить каждую строку на основе> 1 пробела (или символа \t):

sentences = re.split('  +|\t', 'Es gab Tote.\tThey killed people.')
# ['Es gab Tote.', 'They killed people.']
sentences = re.split('  +|\t', 'Es gab Tote.   They killed people.')
# ['Es gab Tote.', 'They killed people.']

# Make sure to strip away any additional whitespace
sentences = [sentence.strip() for sentence in sentences]

После разбиения с использованием приведенного выше регулярного выражения обязательно используйте функцию .strip() в каждой возвращаемой строке, чтобы удалить любые дополнительные пробелы.

0 голосов
/ 12 марта 2019

Я использовал решение, отличное от Python, в оболочке Linux просто:

cut -f 1 <name_of_corpus_file> 

Возвращает мне именно то, что я хочу

...