Il existe de nombreuses chansons de M. Masashi Sada (Massan) qui couvrent une zone ou un lieu spécifique.
Toutes sont des chansons merveilleuses (^ o ^) En particulier, Hiume est un super chef-d'œuvre qui se régénère dans le cerveau chaque fois que vous vous rendez au sanctuaire Taishofu Tenmangu.
Quelle région est souvent présentée dans les chansons de Ma-san qui les incluent? Après tout Nagasaki? Tokyo? Ou ...? Afin de résoudre le mystère de, j'ai pris le clavier et j'ai écrit le code.
Au fait, "From the North Country" est un endroit très célèbre, mais comme il a été présenté à maintes reprises dans le calendrier de l'Avent jusqu'à présent, il n'y a pas de paroles, donc cette fois, il est hors du champ de l'enquête.
J'ai gratté le site des paroles. En raison de problèmes de droits d'auteur, il n'est pas répertorié ici.
J'ai utilisé la bibliothèque d'analyse morphologique de Python janome pour la décomposition de mots partiels.
tokenize_sample.py
#!/usr/bin/env python
# -* encoding: utf-8 -*
from janome.tokenizer import Tokenizer
def main():
for token in Tokenizer().tokenize('Trois ponts rouges sur l'étang Shinji'):
print(token)
if __name__ == '__main__':
main()
Si vous écrivez et exécutez du code comme celui ci-dessus ...
Shinjiike substantif,Général,*,*,*,*,Étang Shinji,Shinjiike,Shinjiike
Auxiliaire,Assistant de cas,Général,*,*,*,À,ré,ré
Un tel verbe,Indépendance,*,*,Cinq étapes, La ligne,Forme basique,Prendre,Kakar,Kakar
Trois nomenclature,Général,*,*,*,*,Trois,Mitz,Mitz
Mots auxiliaires,Assistant de cas,Général,*,*,*,de,Non,Non
Adjectif rouge,Indépendance,*,*,apocalypse,Forme basique,rouge,Akai,Akai
Pont substantif,Général,*,*,*,*,pont,Hashi,Hashi
Oh! L'étang Shinji est correctement reconnu! !! Et la tension monte.
Pour le mécanisme détaillé et l'historique de janome, veuillez vous référer à la diapositive du milieu "Pyconjp2015 - analyse morphologique apprise en faisant avec Python". S'il te plait donne moi. (Vous êtes né en 2015! Merci!)
Janome analyse le groupe de paroles pré-grattées et prend le mot correspondant à «région». Aussi, comme je veux refléter le nombre d'apparitions de mots dans la densité de la carte thermique, j'ai également compté les mots en même temps.
def count_place():
place_count_dict = {}
with open('sada_lyrics.csv','r') as lyrics:
reader = csv.reader(lyrics)
for row in reader:
t = Tokenizer(udic='sada_dict.csv', udic_enc='utf8')
for token in t.tokenize(row[1]):
if 'nom,固有nom,zone' in token.part_of_speech:
place_name = token.surface
if place_name in place_count_dict:
place_count_dict[place_name] = place_count_dict[place_name]+1
else:
place_count_dict[place_name] = 1
return place_count_dict
Vous pouvez également lire des dictionnaires personnalisés. D'après la documentation janome, le format du dictionnaire est le même que celui de Mecab.
sada_dict.csv
Basilique de Yushima,1288,1288,5000,nom,固有nom,Général,*,*,*,Basilique de Yushima,Yushima Seidou,Yushima Seidou
Arbre du ciel,1288,1288,5001,nom,固有nom,Général,*,*,*,Arbre du ciel,Arbre du ciel,Arbre du ciel
Un exemple du document janome est "Tokyo Sky Tree", mais comme il est chanté comme "Sky Tree" dans "Kasutira" que tout le monde connaît, il est recommandé de s'inscrire auprès de "Sky Tree".
En fait, je voulais refléter le résultat de l'identification de l'emplacement de la nomenclature appropriée dans la carte thermique, mais j'ai abandonné à cause du temps. Donc je n'utilise même pas de dictionnaire. Je suis désolé de le mentionner.
Pour le géocodage, j'ai également utilisé la bibliothèque [googlemaps] de Python (https://pypi.python.org/pypi/googlemaps).
Étant donné que vous utiliserez l'API Google Maps, vous devez spécifier la clé API. La méthode d'acquisition est décrite dans googlemaps GitHub.
import googlemaps
def geocode(place_name):
gmaps = googlemaps.Client(key='write your API key')
geocode_result = gmaps.geocode(place_name)
coord = geocode_result[0]['geometry']['viewport']['northeast']
return coord['lat'], coord['lng']
Ce qui suit est le code qui relie le travail jusqu'à ce point (décomposer les paroles en parties - extraire le nom de la zone - géocodage).
sada_place_geocoder.py
#!/usr/bin/env python
# -* encoding: utf-8 -*
from janome.tokenizer import Tokenizer
import csv
import googlemaps
def main():
writer = csv.writer(open('sada_places.csv','w'), delimiter=',')
place_count_dict = count_place()
gmaps = googlemaps.Client(key='write your API key')
for place_name, place_count in place_count_dict.items():
lat, lon = geocode(gmaps, place_name)
writer.writerow([place_name, place_count, lat, lon])
def count_place():
place_count_dict = {}
with open('sada_lyrics.csv','r') as lyrics:
reader = csv.reader(lyrics)
for row in reader:
t = Tokenizer()
for token in t.tokenize(row[1]):
if 'nom,固有nom,zone' in token.part_of_speech:
place_name = token.surface
if place_name in place_count_dict:
place_count_dict[place_name] = place_count_dict[place_name]+1
else:
place_count_dict[place_name] = 1
return place_count_dict
def geocode(gmaps, place_name):
geocode_result = gmaps.geocode(place_name)
coord = geocode_result[0]['geometry']['viewport']['northeast']
return coord['lat'], coord['lng']
if __name__ == '__main__':
main()
En conséquence, le nom de la zone, le nombre d'apparitions dans les paroles, la latitude et la longitude sont affichés. Comme je n'utilise pas de dictionnaire personnalisé, je peux voir certains enregistrements de déchets, mais cette fois je vais l'ignorer.
sada_places.csv
Amérique,1,49.38,-66.94
Bermudes,1,14.5192371802915,121.0361231302915
Akita,1,39.86527460000001,140.5154199
Kasugayama,1,37.1489639802915,138.2363259802915
Victoria,1,48.450518,-123.322346
Mimiya,1,36.4073904302915,136.4570957
Minase,1,34.8791869802915,135.6691649802915
Kyo,3,30.5403905,120.3877692
printemps,1,33.8689809,130.8083576
Asuka,3,38.8972965,139.9375578
journée,2,50.68819,5.675110099999999
Kamakura,2,35.3682478,139.5933376
Bains publics,1,34.93531738029149,135.7610285302915
Yamami,1,36.5698502,136.9701007
Jérusalem,1,31.8829601,35.2652869
West Kyo,1,34.67190798029149,135.7844679802915
Une addition,1,36.5431863,-6.255334599999999
Berlin,1,52.6754542,13.7611176
Kiraku,1,35.1904253,136.7319704
Mitsuke,3,37.5933274,139.0009869
Nagasaki,5,35.7377658,139.6976565
Urashima,1,35.4839466,139.6447166
Atago,1,35.9737504,139.6042941
Heureux,1,34.4654479,135.5854033
Akishino,1,34.7155978,135.7837222
Heiankyo,1,44.5883529,127.1930004
Hong Kong,1,14.4904672802915,121.0242180302915
Karuizawa,2,36.4240846,138.6571307
Han,2,32.555258,114.2922103
Inasa,1,32.7592694,129.8647033
Kyoto,1,35.0542,135.8236
Musashi Koganei,1,35.70241118029149,139.5080892802915
Hakuhagi,1,38.2529733,140.9109412
Chino,3,34.047811,-117.5995851
Sous la pente,1,35.3120498,139.5356368
Yukon,1,69.646498,-123.8009179
Accueil,1,34.0886418,132.9547384
Nanjing,1,32.3940135,119.050169
France,3,51.0891658,9.5597934
Vraie paddy,1,35.6882069802915,140.0695889802915
Bienvenue,1,37.9205189,112.7839926
De l'argent solide,1,37.2102144,139.9250478
Yabu,1,35.3875492,140.1588221
Kano,1,35.2016331,135.4969237
Nom Ebi,1,35.4774536,139.4364727
Renge,5,48.02912,8.027220699999999
Magellan,1,31.8199301,76.95342
Michinoku,1,35.5030142302915,139.6870448302915
Pearl Harbor,1,21.3885713,-157.9335744
Quai,1,34.6863148,135.1933421
Harumi,1,35.6634906,139.7897775
Japon,2,34.6687571,135.5100311
Sophia,2,42.7877752,23.4569049
Alaska,4,71.3868712,-129.9945562
Fleuve Yangtze,1,36.4361024802915,139.8532846302915
Kitamae,1,26.3027021,127.7615069
Tsugaru,1,35.0117177302915,135.7573022302915
Ginza,1,35.6760255,139.7724941
Rosée,1,51.2964846,22.6735312
États Unis,1,49.38,-66.94
Casablanca,2,33.6486015,-7.4582757
Tokyo,31,35.817813,139.910202
Pharmacie,1,35.0155830302915,135.7545184802915
Extrème nord,1,12.9797045,15.683687
Bouddha Lan West,1,35.17525588029149,139.6558066802915
Gojo,1,39.5593820302915,115.7611693
Bagdad,2,33.4350586,44.5558261
Temple de Kanzeonji,1,33.5222913,130.5254343
Akasaka,1,35.6782744,139.7459391
Bouddha,4,34.9489952,136.9632495
New York,1,40.91525559999999,-73.70027209999999
Nishiki,1,32.2516958,130.9134777
Tigre,1,-15.4044999,-42.8735213
Kukata,1,35.10910000000001,136.9854947
Ondulation,1,33.9145777,130.8043569
Yushima,2,35.711327,139.7724702
Hirajoyama,1,34.71184798029149,135.8116589802915
Koshien,1,34.7234607,135.3633836
Shinjuku,2,35.7298963,139.7451654
Kasumi,1,24.0234098,82.02101979999999
Fuji,1,35.3539032,138.8118555
curry,1,50.9818821,1.9320691
Nagasaki,24,32.9686469,129.9938174
Minamiyamate,2,32.7361422,129.8708733
Kuchiyasu,1,43.015163,140.9243102
Ruelle,1,36.1243706,139.5655411
Sakamoto,1,37.9298369802915,140.9141139802915
Shijo,1,35.0044451802915,135.7580809302915
méditerranéen,1,45.7927967,36.215244
Akebono,1,26.2435843,127.6904124
Kagura,1,34.6626033,135.1513682
Azumi,2,36.3649943,137.8106765
Hiroshima,1,31.9163645,131.4305945
Mt.,1,29.7169085,103.6231299
Yokohama,1,35.5113,139.674
Ueno,1,36.1325774,138.8291853
Chili,6,-17.4983293,-66.4169643
Yoga,1,35.62797998029149,139.6354899802915
Kirimandjaro,2,-3.0562826,37.3716347
Plumes de levage,1,35.1848028,136.9673238
Hiroshima,6,34.4426,132.4865
Nairobi,1,-1.164744,37.0493746
Tanifu,1,35.5452879,136.6135764
Nerima,2,35.779946,139.6811359
Namba,1,43.648665,-116.48121
Asakusa,1,35.7233639,139.8055923
Faire monter,2,35.71155898029149,139.8137769802915
Shinsaibashi,2,30.6801709802915,114.2062109802915
Japon,9,45.5227719,145.8175503
Capitale,1,36.0447089,139.3743599
Rokuto,1,36.0028345,140.1105419
Racine d'arbre,2,36.9430004,137.4747414
Tateyama,1,36.5847934,137.6343407
Arakawa,1,36.1415564,139.8589857
Allemagne,5,41.2296285,141.0143767
Kimikage,1,34.7205324,135.1428907
Nara,3,34.70489999999999,135.8384
Shanghai,2,31.6688967,122.1137989
Yunnan,4,29.2233272,106.1977228
Yue,1,36.7995957,138.4063989
Gion,1,34.4529231,132.4693298
Shinano,2,36.8707572,138.2803909
Higashiyama,1,35.010837,135.7914226
Yotsuya,2,35.6726745,139.4551008
Nagano,1,36.835842,138.3190722
Plantation,1,33.6152803,130.5166492
Puisque les coordonnées et le nombre d'apparitions pour chaque région sont enregistrés dans sada_places.csv généré plus tôt, utilisez ces informations pour les refléter dans la carte thermique.
Depuis que j'ai utilisé l'API Google Maps pour le géocodage, j'ai également essayé d'utiliser l'API Google Maps pour les cartes thermiques.
J'ai écrit à la fois le style et le script en HTML, mais la quantité de code est comme ça.
<!DOCTYPE html>
<html>
<head>
<style>
#map {
width: 1200px;
height: 600px;
}
</style>
<script
src="https://maps.googleapis.com/maps/api/js?key='write your API key'&libraries=geometry,visualization">
</script>
<script>
function initialize() {
var mapCanvas = document.getElementById('map');
var mapOptions = {
center: new google.maps.LatLng(36.83566824724438,138.372802734375),
zoom: 6,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(mapCanvas, mapOptions)
var heatmapData = [
//Les objets sont alignés autant que le nombre de coordonnées. Omis car il est long.
//Il est certainement préférable de pouvoir créer un fichier externe
{ weight : 2 , location : new google.maps.LatLng(32.7361422,129.8708733) },
{ weight : 4 , location : new google.maps.LatLng(71.3868712,-129.9945562) },
{ weight : 3 , location : new google.maps.LatLng(37.5933274,139.0009869) }
]
var heatmap = new google.maps.visualization.HeatmapLayer({
data: heatmapData,
radius: 50,
map: map
});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="map"></div>
</body>
</html>
Page référencée
En regardant les résultats, comme prévu, Tokyo et Nagasaki, qui sont liés à Masan, sont les plus brillants. Hiroshima dans "Hiroshima no Sora" et Kyoto / Nara apparaissant dans "Hier / Kyo / Nara, Asuka / Demain" et "Shujikai" deviennent également plus brillants.
Quand je me suis demandé, "Pourquoi le coin supérieur droit de Hokkaido est-il plus clair?", Le résultat du géocodage de "Japon" était ici ...
Si vous tirez le zoom et regardez la carte du monde, vous pouvez voir que de nombreuses régions autres que le Japon sont chantées. M. Masa, qui aurait dû être un grand vétéran pendant 42 ans en tant que chanteur, est une ressource humaine mondiale terrifiante.
La neige blanche de Kirimandjaro dans "Lion Standing in the Wind" qui me fait pleurer à chaque fois que j'écoute une chanson live L'Alaska qui apparaît dans "Aurora" et "Twilight of the White Nights" chantés sur le thème d'un vrai photographe est également légèrement coloré.
C'est un peu hors sujet, mais si vous écoutez "Aurora" et "Twilight of the White Nights" tout en regardant le ciel nocturne en hiver, vous pouvez beaucoup pleurer, donc si vous n'en avez jamais entendu parler, saisissez cette occasion pour le maîtriser. «Aurora» et «Crépuscule des nuits blanches» - Masashi Sada, Mitsuho Agishi et Michio Hoshino
Il est plus lumineux en France et en Allemagne, mais il semble plus brillant que prévu. Cela était dû au fait que les mots «Bouddha» et «Allemagne» étaient interprétés comme des régions lorsque les parties étaient décomposées, donc je pense que nous pouvons nous attendre à des améliorations de la précision en ajoutant des dictionnaires.
Calendrier de l'Avent Sadamasashi x IT L'organisateur a écrit le 4ème jour de "Décomposition facile de Sadamasashi à l'aide de kuromoji" C'est embarrassant car une partie du contenu et le résultat de la carte thermique sont minces.
Je veux vraiment l'essayer et refléter l'arbre du ciel et Shinjiike sur l'écran et certains résultats de géocodage avec l'API Google Maps sont "?", Alors prenez le temps de préparer et d'étudier à nouveau. Je voulais réessayer de créer une carte thermique.
Si vous obtenez un résultat intéressant, j'aimerais le publier comme matière première ...
Recommended Posts