Я не испытываю проблем с программированием, и у меня есть проблема с объединением двух списков разборных предложений (= список внутри списка) в словарь. Я использую python 2.6.6Объединить два списка списков в словарь python
У меня есть два списка предложений, один на английском, а другой на немецком. Приговоры соответствуют: первое предложение в немецком списке - перевод первого предложения в английский список и т. Д. Моя цель - иметь доступ к английскому предложению, извлечь тему и посмотреть, соответствует ли немецкий предмет английскому языку один.
Мои два списка выглядеть следующим образом (упрощенно):
sentences_en = [[u'sid(s1).', u'sentence1', ...], [u'sid(s2).', u'sentence2', ...]]
sentences_de = [['sid(s1).', 'Satz1', ...], ['sid(s2).', 'Satz2', ...]]
Каждый элемент в списке содержит приговор ID, фактическое предложение ('sentenceX' или «SatzX (Сида (s1). ') '), а также дополнительную информацию о предложении («...»). Оба списка ('sentences_en', 'sentences_de') содержат 10000 элементов.
Я хотел бы сопоставить английский с немецким предложениями в параллельном словаре, который выглядит следующим образом:
parallel_dict = {[u'sid(s1).', u'sentence1', ...]:['sid(s1).', 'Satz1', ...], [u'sid(s2).', 'sentence2', ...]:['sid(s2).', 'Satz2', ....]}
Как я знаю, что я не могу иметь список в качестве ключа, я попытался превратите один из списков в кортеж и используйте его в качестве ключа (я нашел это решение для переполнения стека). К сожалению, это не похоже на работу:
parallel_dict = {}
tuple_sentences_en = tuple(sentences_en)
parallel_dict = zip(tuple_sentences_en, sentences_de)
Когда я печатаю parallel_dict, я получаю следующую структуру:
[([u'sid(s1).', u'sentence1', ...], ['sid(s1).', 'Satz1', ...]), ([u'sid(s2).', u'sentence2', ...], ['sid(s2).', 'Satz2', ...])]
Это делает карту английского предложения 1 к германскому предложению 1 и т.д., но это, безусловно, не словарь - скорее список кортежей.
Кто-нибудь знает, возможно ли включить эту структуру в словарь с английскими предложениями как ключи и немецкие предложения в качестве значений? Или есть лучший способ работать с параллельными данными?
Я очень благодарен за вашу помощь!
Вы уверены, что не хотите, чтобы два диктата, где ключ является 'sid (sNN)', а значения - предложения на соответствующем языке? (например, 'dict_en',' dict_de'). И что именно вы имеете в виду с параллельными данными? – Matt
Дорогой Мэтт, я попробовал это с двумя словарями с предложением_при = ключ и предложением = значением. Однако после этого у меня возникли проблемы с доступом к данным. Я хочу иметь возможность пройти синтаксическое английское предложение и посмотреть, предшествует ли предмету в предложении статья («the», «a», «an»). Если это так, я хотел бы обратиться к соответствующему немецкому предложению и посмотреть, предшествует ли немецкому субъекту статья или нет. – user3265565
@Matt: С параллельными данными я имею в виду, что у меня есть два набора данных: один на английском и один на немецком, а первое предложение на английском языке соответствует первому предложению на немецком языке (перевод), второе на второе и т. Д. (например, sentences_en = [[sid (s1) ',' I am cooking '], [' sid (s2) ',' This is good '] ...] и sentences_de = [[sid (s1)', ' Ich koche gerade '], [' sid (s2) ',' Das ist gut '] ...]) – user3265565