2013-12-07 12 views
10

250G boş alan verisi dökümünü indirdim. Gelişimimi büyük veriler üzerinde yinelemek istemiyorum. Verilerin küçük bir alt kümesini çıkarmak istiyorum (küçük bir alan ya da 10 kişilik ve bilgi olabilir). Bu küçük alt grup, yinelememi daha hızlı ve daha kolay hale getirecek.Daha hızlı geliştirme yinelemesi için Freebase'in bir alt veri ayıklamasının çıkarılması

Freebase verilerini bölümlemek için en iyi yaklaşım nedir? Google/Freebase tarafından sağlanan herhangi bir alt set indirme var mı?

cevap

12

Bu, veri dökümlerini kullanan birçok kişiden aldığımız geribildirimlerdir. Bu tür alt kümeleri nasıl en iyi şekilde oluşturacağımıza bakıyoruz. Bir yaklaşım, Film gibi tek bir alan için tüm verileri almak olacaktır. İşte

sen/Film etki alanından üçlü her RDF olacaktı açıklanmıştır:

zgrep '\s<http://rdf\.freebase\.com/ns/film.' freebase-rdf-{date}.gz | gzip > freebase-films.gz 

zor kısmı bu alt kümesi büyük olasılıkla da istediğiniz isimleri, görüntüleri veya açıklamalarını içermez olmasıdır.

Sonra
zgrep '\s<http://rdf\.freebase\.com/ns/(type\.object|common\.topic)' freebase-rdf-{date}.gz | gzip > freebase-topics.gz 

muhtemelen (maç sadece aynı/m kimlikle başlar üçlü) filmler hakkında sadece başlık verilerine aşağı o alt kümesini filtrelemek isteyebilirsiniz ve bitiştirmek: Yani bu gibilerin almak gerekir film alt kümesine.

Düzenli ifadelerle bunu betimlemek oldukça basit, ancak olması gerekenden çok daha fazla iş var. Uzun vadede daha iyi bir çözüm üzerinde çalışıyoruz.

+2

Diğer adlar, vb ve/tür/nesne adı, muhtemelen daha da isteyeceğiniz çok daha fazlası var. Film alanında ilgileniyorsanız, muhtemelen oyuncuların eşlerini, doğum tarihlerini, milletlerini vb. De isteyebilirsiniz. Bu sayede, dahil edilen karakter/kişi/kişilerden bazı özellikler isteyeceksiniz. Temel olarak, hedef türlerden birinin dahil edilmiş bir türü olan her şeyin potansiyel ilgi alanı olması muhtemeldir. –

+0

zgrep $ '\ tns/film.' freebase-rdf-2013-12-01-00-00.gz sıfır satır verdi. Bir şey mi eksik? –

+0

Oops, copypasta hatası sonda. Örnekleri güncelledim. Lütfen başka bir deneyin. –

3

Benzer bir şey yapmak istedim ve aşağıdaki komut satırı ile geldim.

gunzip -c freebase-rdf-{date}.gz | awk 'BEGIN { prev_1 = ""} { if (prev_1 != $1) { print '\n' } print $0; prev_1 = $1};' | awk 'BEGIN { RS=""} $0 ~ /type\.object\.type.*\/film\.film>/' > freebase-films.txt 

Bu tür filme sahip tüm konular için tüm üçüzleri verecektir. (tüm konuların sıralı olarak geldiği varsayılmaktadır)

Bundan sonra, ihtiyacınız olan yüklemeleri kolayca görebilirsiniz. İstersek biz ayarlamanız gerekir normal ifadeler kullanabilirsiniz çünkü kabul yazı için sadece bir açıklama

2

, konular için varyant, benim için işe yaramaz neredeyse kesinlikle için/ortak/konuyu istiyoruz rağmen -E parametre

zgrep -E '\s<http://rdf\.freebase\.com/ns/(type\.object|common\.topic)' freebase-rdf-{date}.gz | gzip > freebase-topics.gz 
İlgili konular