Как разобрать FreeBase Quad Dump с помощью Amazon Mapreduce - PullRequest
2 голосов
/ 07 марта 2012

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

Мне было трудно это сделать с помощью дампов тем из бесплатных баз, потому чтонет ссылки на идентификатор директора, только имя директора.

Каков правильный подход для этой задачи?Нужно ли как-то анализировать весь четырехъядерный дамп с помощью облака амазонок?Или есть какой-то способ esy?

Ответы [ 2 ]

2 голосов
/ 11 марта 2012

Прежде всего, я полностью разделяю точку зрения Тома и его предложение. Я часто использую инструменты командной строки UNIX для извлечения «интересных» фрагментов данных из дампа данных Freebase.

Однако альтернативой может быть локальная загрузка данных Freebase в систему хранения 'graph' и использование API и / или языка запросов, доступных в этой системе, для взаимодействия с данными для дальнейшей обработки.

Я использую RDF, поскольку модель данных очень похожа, и очень просто преобразовать дамп данных Freebase в RDF (см .: https://github.com/castagna/freebase2rdf). Затем я загружаю его в хранилище TDB Apache Jena (http://incubator.apache.org/jena/documentation/tdb/) и используйте Jena API или SPARQL для дальнейшей обработки.

Другим разумным и масштабируемым подходом было бы реализовать то, что вам нужно делать в MapReduce, но это имеет смысл, только если объем вашей обработки затрагивает большую часть данных Freebase, и это не так тривиально, как подсчет строк. Это дороже, чем использование вашей собственной машины, вам нужен кластер Hadoop или вам нужно использовать Amazon EMR. (Вероятно, мне следует написать версию freebase2rdf для MapReduce; -))

Мои 2 цента.

2 голосов
/ 08 марта 2012

Вам необходимо использовать четырехсторонний дамп, но он меньше 4 ГБ и не требует Hadoop, MapReduce или какой-либо облачной обработки. Приличный ноутбук должен быть в порядке. На двухлетнем ноутбуке эта простая команда:

time bzgrep '/film/' freebase-datadump-quadruples.tsv.bz2 | wc -l
10394545

real    18m56.968s
user    19m30.101s
sys 0m56.804s

извлекает и считает все ссылки на домен фильма менее чем за 20 минут. Даже если вам придется сделать несколько проходов по файлу (что вполне вероятно), вы сможете выполнить всю задачу менее чем за час, а это означает, что вам не нужны сложные вычислительные ресурсы.

Вам нужно пройти через промежуточный узел (CVT в Freebase-говорит), чтобы получить актеров, но остальная часть вашей информации должна быть подключена непосредственно к узлу предметного фильма.

Tom

...