Удаление дублирующих линий и разделение параллельного корпуса - PullRequest
0 голосов
/ 06 июня 2018

У меня есть параллельный переведенный корпус на английском-французском (text.en, text.fr), каждый текст содержит около 500K строк (предложения в исходном и целевом языках).что я хочу, это: 1- удалить дублированные строки в обоих текстах с помощью команды python;и избегайте проблем с выравниванием в обоих файлах.Например: команда удалила строку 32 в text.en, а затем, конечно, удалила ее в text.fr.2. Затем разделите оба файла на данные Train / Dev / Test, только 1K для разработчика и 1K для теста, а остальные для поезда.Мне нужно разделить text.en и text.fr, используя одну и ту же команду, чтобы я мог сохранить выравнивание и соответствующие предложения в обоих файлах.Было бы лучше, если бы я мог извлекать тестовые данные и разрабатывать данные случайным образом, это поможет получить лучшие результаты.Как я могу это сделать?пожалуйста, напишите команды.Я ценю любую помощь, спасибо!

1 Ответ

0 голосов
/ 06 июня 2018

Если, когда вы произносите строки, вы имеете в виду предложения грамматики, то вам нужно сначала разбить предложения на: -

Eng = "..."
Frn = "..."
GEngLines = Eng.split(".");
GFrnLines = Frn.split(".");

for i in range(len(GEngLines)):
    for j in range(len(GFrnLines)):
        if GEngLines[i] == GFrnLines[j] :
            GEngLines.remove(i);
            GFrnLines.remove(j);

DevLinesNumber = 500
TestLinesNumber = 500

EngDevLines = []
EngTestLines = []
EngTrainLines = []

FrnDevLines = []
FrnTestLines = []
FrnTrainLines = []

for i in range(len(GEngLines)):
    if i < DevLinesNumber :
        EngDevLines.append(GEngLines[i])
        FrnDevLines.append(GFrnLines[i]);
    elif i >= DevLinesNumber and i < DevLinesNumber + TestLinesNumber :
        EngTestLines.append(GEngLines[i])
        FrnTestLines.append(GFrnLines[i]);
    else:
EngTrainLines.append(GEngLines[i])
FrnTrainLines.append(GFrnLines[i]);

Но не забудьте добавить две табуляции (4 пробела) перед двумя концами, потому что я используюмобильный я не мог написать легко.

...