Menyesuaikan cloud kata / tag ke dalam batasan geografis

15

Apakah ada alat yang tersedia atau metode rekomendasi untuk menampilkan tag atau cloud kata (juga dikenal sebagai wordle ) ke peta dunia, seperti dalam contoh ini: Peta: Amerika Serikat nama keluarga ? (Mungkin ada contoh lain di NY Times.)

Perhatikan bahwa dalam contoh di atas, kata terletak oleh koordinat tetap, sedangkan pengaburan teks dapat diimplementasikan dengan algoritma wordle (seperti yang dijelaskan pada SO ) secara otomatis. Jadi, apakah ada perangkat lunak yang memungkinkan Anda untuk meletakkan kata-kata secara acak di negara tertentu, atau apakah Anda pikir yang terbaik adalah men-tweak algoritma asli wordle (misalnya, dengan menambahkan kendala berdasarkan batas yang telah ditentukan)?

chl
sumber
kemungkinan duplikat tag tag spasial - "tag peta"
underdark
@underdark Terima kasih telah menunjukkan utas itu. Namun, bagi saya tampaknya lebih terkait dengan geotagging, sedangkan saya mencari solusi di mana kita tidak harus mengasosiasikan koordinat spasial yang diketahui (misalnya, kota atau kabupaten) untuk setiap kata. Dengan kata lain, biarkan tata letak kata ke suatu negara bebas dari batasan selain batas sebenarnya. Jika orang lain merasa itu adalah duplikat, saya dapat menghapusnya tanpa masalah.
chl
@ chl: Jadi lokasi kata di dalam batas tidak ada artinya? Maka tidak ada duplikat.
underdark
@ Sunderdark Ya, tepatnya. Ide utama wordle adalah mencoba menemukan tata ruang spasial yang bagus dengan kata-kata yang diukur berdasarkan frekuensi relatifnya. Kemudian, saya hanya ingin membatasi pilihan yang mungkin (x, y) koordinat pada "batas".
chl
Ada beberapa tag / utas cloud di sini di GSE. gis.stackexchange.com/search?q=tag+cloud Tampaknya harus ada upaya (mungkin diprakarsai oleh komunitas pertukaran tumpukan) untuk membedakan cloud dari tag / cloud. Bahkan dengan tag dalam pencarian saya, "sepertinya" semua utas cloud kembali. Mungkin kita bisa memulai utas untuk membahas meta. Atau mungkin itu tidak mengganggu orang lain. ???
Brad Nesom

Jawaban:

4

Butuh sedikit penyesuaian: perkiraan batas poligon dengan garis isothetic (yaitu, segmen horizontal dan vertikal) dan, sebagai kondisi awal, tempatkan kotak (dengan konten kosong) disejajarkan di sepanjang garis-garis di bagian luar poligon dan di bagian dalam dari kotak berlari poligon. Pada titik ini konfigurasi akan terlihat persis seolah-olah algoritma Wordle telah berjalan untuk sementara waktu dan kebetulan menempatkan kata-kata pertama di sekeliling kotak pembatas. Biarkan algoritma mengambil alih dari sana.

Akibatnya, jumlah ini mewakili poligon dengan quadtree dari awal dan sebaliknya mereproduksi algoritma Wordle dengan tepat.

Jika Anda tidak menempatkan ribuan kata ke dalam poligon dan jika Anda memiliki waktu komputasi yang sedikit, Anda tidak perlu kode indeks spasial sama sekali: Anda dapat melakukan deteksi tabrakan menggunakan perbandingan all-pair brute force force perbandingan kotak pembatas. Dengan sedikit lebih banyak pekerjaan Anda dapat mempertahankan daftar lokasi kata yang diurutkan berdasarkan koordinat x dan y dan mengeksploitasi daftar ini untuk merampingkan algoritma pendeteksian tabrakan.

whuber
sumber
6

Trik yang sangat. Saya mencoba melakukan sesuatu seperti itu sendiri, tetapi untuk menghasilkan peta tipografi seperti ini dari Axis Maps.

masukkan deskripsi gambar di sini

Anda dapat mencoba sesuatu dengan qgis atau mapnik, dasar-dasarnya adalah:
1) Hitung kata-kata dan hasilkan bobot berdasarkan jumlah kemunculannya.
2) menghasilkan titik acak di dalam poligon.
3) untuk setiap titik, unggah satu kata dan bobotnya adalah tabel attibute.
4) Gambar teks dengan ukuran font berdasarkan berat.

Anda juga dapat menambahkan rotasi acak dan warna ke tabel.

Pablo
sumber
(+1) Terima kasih telah menunjukkan peta tipografi. Itu mengingatkan saya bahwa saya menemukan hal-hal keren beberapa bulan yang lalu. Saya akan mencobanya tetapi saya bertanya-tanya apakah kode Python yang tersedia disumbangkan oleh @aeby pada SO tidak akan membantu juga, asalkan saya menambahkan batasan pada batas negara. Saya tidak cukup terbiasa dengan QGis tetapi saya akan mencoba mempelajarinya.
chl
Menempatkan kata pada titik acak yang seragam umumnya akan menghasilkan banyak tumpang tindih. Jika kata-kata diskalakan secara seragam untuk hampir memenuhi poligon - yang dalam banyak kasus adalah situasi yang diinginkan - maka menggunakan titik acak pasti tidak akan berhasil. Ini akan menjadi awal yang baik untuk algoritma anil simulasi disipasi spasial, meskipun :-).
whuber
Mereka tidak akan tumpang tindih karena qgis dan mapnik memiliki detektor tabrakan. Tetapi beberapa kata akan ditekan. Ada banyak masalah lain, seperti, berapa banyak kata yang Anda butuhkan tergantung pada ukuran poligon?
Pablo
@whuber, Mengikuti ide Anda, Mungkin alih-alih titik acak, algoritme mungkin mulai mengisi poligon dengan poligon lain dengan ukuran kata dari kiri atas hingga kanan. kemudian beri label poligon ini.
Pablo
5

Tagxedo terlihat bagus. Sayang sekali menggunakan Silverlight.

underdark
sumber
(+1) Terlihat bagus, meskipun sebaiknya tidak mengandalkan Silverlight.
chl