2016-03-26 4 views
0

Я работаю над некоторыми экспериментами NLP в Python и хотел реализовать эту функцию в Python 3.x, хотя расширение лямбда здесь дает мне трудное время, и я не как он будет реализован в 3.x; какие-либо предложения?Python 2.x подстрочный эквивалент параметра в 3.x

candidates = [' '.join(word for word, pos, chunk in group).lower() 
       for key, group in itertools.groupby(all_chunks, lambda (word,pos,chunk): chunk != 'O') if key] 

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

lambda (word,pos,chunk) 

первоисточником является extract_candidate_words работать здесь: http://bdewilde.github.io/blog/2014/09/23/intro-to-automatic-keyphrase-extraction/

ответ

1

с синтаксисом в Python3 будет:

lambda word__pos__chunk: word__pos__chunk[2] != 'O' 

A lambda Функция с тремя элементами кортежа (word, pos, chunk) преобразуется в word__pos__chunk с позиционными аргументами, word__pos__chunk[2] Доступ к третьему элементу, например.

более

информация: pep-3113

+0

Это, кажется, подразумевает, что двойные подчеркивания имеют особое значение, но на самом деле это не так; 'word__pos__chunk' является просто регулярным кортежем, а' word__pos__chunk [2] 'обращается к третьему элементу в нем. –

+0

Я не пытался запутать, я обновил способ выразить это простить мой английский. –

+0

Не уверен, почему это получило понижение - возможно, я что-то пропустил. Спасибо, что сам синтаксис был именно тем, что мне нужно. – iivel

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