Я только начал изучать Python. Я использую API для построения модели TFIDFs, однако я сталкиваюсь с некоторыми ошибками с лямбда-функциями, которые я не могу устранить. Это часть класса, который генерирует TFIDF:
class tfidf(ModelBuilder, Model):
def __init__(self, max_ngram=1, normalize = True):
self.max_ngram = max_ngram
self.normalize = normalize
def build(self, mentions, idfs):
m = mentions\
.map(lambda (target, (span, text)): (target, text))\ """error is triggered here """
.mapValues(lambda v: ngrams(v, self.max_ngram))\
.flatMap(lambda (target, tokens): (((target, t), 1) for t in tokens))\
.reduceByKey(add)\
.map(lambda ((target, token), count): (token, (target, count)))\
.leftOuterJoin(idfs)\
А вот пример вывода класса mentions
(который является причиной ошибки в классе tdfidf
):
Out[24]:
[{'_id': u'en.wikipedia.org/wiki/William_Cowper',
'source': 'en.wikipedia.org/wiki/Beagle',
'span': (165, 179),
'text': u'References to the dog appear before the 19th century in works by such writers as William Shakespeare, John Webster, John Dryden, Thomas Tickell, Henry Fielding, and William Cowper, as well as in Alexander Pope\'s translation of Homer\'s "Iliad".'},
{'_id': u"en.wikipedia.org/wiki/K-Run's_Park_Me_In_First",
'source': 'en.wikipedia.org/wiki/Beagle',
'span': (32, 62),
'text': u" On 12 February 2008, a Beagle, K-Run's Park Me In First (Uno), won the Best In Show category at the Westminster Kennel Club show for the first time in the competition's history."},
Сообщение об ошибке:
.map(lambda (target, (span, text)): (target, text))\
ValueError: too many values to unpack
Я пытался: .map(lambda ( src, target, span, text) : (target, text))\
, так как мне нужны только цель и текст, который вызывает ту же ошибку в mentions\
.
Простой и скомпилированный пример:
import math
import numpy
Data = [{'_id': '333981',
'source': 'Apple',
'span': (100, 119),
'text': ' It is native to the northern Pacific.'}, {'_id': '27262',
'source': 'Apple',
'span': (4, 20),
'text': ' Apples are yummy.'}]
m = map(lambda (ID, (span, text)) : (ID, text) , Data)
print(list(m))
Я использую Python 2.7. Любая помощь или руководство будет высоко ценится.
Большое спасибо,