2013-07-15 2 views
2

У меня есть UTF-8 Unicode текстовый файл, как показано ниже (не английский)Итерация по списку питона

unicode textfile

Так я отметил кодировку, UTF-8 в Python и импортировать файл в Python.

# -*- coding: utf-8 -*- 

У меня есть выраженные предложения от "." и получил список предложений.

sentence list

Теперь мне нужно сравнить с другим юникода списком слов и выяснить, является ли какой-либо из этих слов в каждом предложении.

Это мой код. Но это показывает только первый матч.

for sentence in sentences: 
    for word in sentence.split(" "): 
     if word in pronouns: 
      print sentence 

EDIT:

Наконец я заметил, что недопустим Юникода символов в исходных текстовых файлах. Описывается здесь Tokenizing unicode using nltk

+1

Нет ничего очевидного в том, что вы показываете нам. Подтвердили ли вы количество пунктов в предложениях? Есть ли более чем одно местоимение в стоге сена? – jwpfox

+0

Как видите, есть 6 предложений. и есть множество местоимений. Каждое из этих предложений начиналось с одного местоимения в списке. Поэтому он должен показывать все предложения один за другим. – ChamingaD

+0

Вам, вероятно, лучше всего использовать 'sentence.split()'. Некоторые алфавиты могут иметь пробельные символы, которые не соответствуют символу '' ''. – llb

ответ

2

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

pronouns = ['aa','bb','cc'] 

sentences = ['aa dkdje asdf aesr','bb asersada','cc ase aser sa sa c ','aa saef sf se s', 'aa','bb'] 

for sentence in sentences: 
    for word in sentence.split(" "): 
     if word in pronouns: 
      print (sentence) 

Выходной код был:

aa dkdje asdf aesr 
bb asersada 
cc ase aser sa sa c 
aa saef sf se s 
aa 
bb 

Надеется, что это полезно.

+0

Спасибо. Но для меня это не сработало. Может быть, Unicode нужно обрабатывать каким-то другим способом. – ChamingaD

Смежные вопросы