Мне нужно извлечь тройки субъект-глагол-объект из голландского текста. Текст анализируется голландским инструментом НЛП под названием Frog, который токенизирует, анализирует, маркирует, лемматизирует. ..Это. Frog производит FoLiA XML или вывод в формате столбцов с разделителями табуляцией, по одной строке на токен. Из-за некоторых проблем с файлом XML я выбрал формат столбца. В этом примере представлено одно предложение. Теперь мне нужно извлечь для каждого предложения тройки SVO, поэтому мне нужен последний столбец, который представляет собой отношения зависимости. Итак, мне нужно получить элемент ROOT и элементы su и obj1, которые принадлежат ROOT. К сожалению, в предложении-примере нет obj1. Давайте притворимся, что это так. Моя идея заключалась в том, чтобы сначала создать вложенный список со списком на каждое предложение.
import csv
with open('romanfragment_frogged.tsv','r') as f:
reader = csv.reader(f,delimiter='\t')
tokens = []
sentences = []
list_of_sents = []
for line in reader:
tokens.append(line)
#print(tokens)
for token in tokens:
if token == '1':
previous_sentence = list_of_sents
sentences.append(previous_sentence)
list_of_sents = []
list_of_sents.append(tokens)
print(list_of_sents)
Когда я печатаю «токены», я получаю один список со всеми токенами. Так что это правильно, но я все еще пытаюсь создать вложенный список с одним списком (токенов) на предложение. Может кто-нибудь помочь мне с этой проблемой?
(P.S. вторая проблема в том, что я не уверен, как продолжить, когда я получаю вложенный список)
"\t"
предполагают, что это файл TSV (простой текст, разделенный табуляцией). И снова вы утверждаете, что это документ Word - по-видимому, старая двоичная версия .doc, что было бы наихудшим из всех вариантов. Разберитесь с этим и обновите вопрос. - person lenz   schedule 31.05.2017for line in text
перебирает символы в тексте. В отличие от открытого файла строковые объекты не разбивают текст на строки волшебным образом при повторении. Лучше всего использоватьwith open(...) as f:
, а затем внутри этого блокаfor line in f:
и т. Д. Также рассмотрите возможность использования библиотекиcsv
для анализа файла TSV. - person lenz   schedule 31.05.2017