2013-08-16 5 views
0

У меня есть данные, разделенные на файлы. Я пытаюсь просмотреть данные на файл и искать смайлики :( и :), как определено регулярным выражением. Если найден смайлик, мне нужно сохранить информацию: а) смайлик был найден b) в этом файле. Когда я запускаю этот кусок сценария и печатаю словарь смайликов, я получаю 0 в качестве значения. Как это возможно? Я начинающий.регулярные выражения смайлики

emoticon = 0 
for fileid in corpus.fileids(): 
    m = re.search('^(:\(|:\))+$', fileid) 
    if m is not None: 
     emoticon +=1 

ответ

1

Она смотрит на меня, как ваше регулярное выражение работает, и что m действительно должен не быть None.

>>> re.search('^(:\(|:\))+$', ':)').group() 
':)' 
>>> re.search('^(:\(|:\))+$', ':)').group() 
':)' 
>>> re.search('^(:\(|:\))+$', ':):(').group() 
':):(' 
>>> re.search('^(:\(|:\))+$', ':)?:(').group() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: 'NoneType' object has no attribute 'group' 

Однако для меня несколько вопросов.

  • это будет соответствовать только строки, которые являются 100% смайликов
  • является FILEID действительно то, что вы ищете?
+0

Я использую функцию fileid в NLTK. Каждый файл содержит 1 предложение. Поэтому я хочу проверить смайлики в каждом идентификаторе файла или в предложении. Разве это невозможно? O, и я не хочу проверять строки, содержащие только смайлики, мне придется изменить мое регулярное выражение. Благодаря! :) – JohnDoe

+0

Я исправил ошибку, которую я сделал с файлом. – JohnDoe

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