SEOãSMMãããŒã±ãã£ã³ã°ã®åæã¿ã¹ã¯ãå®è¡ãããšããç§ãã¡ã¯ããŒã¿åŠçããŒã«ã®å§åçã«å¢å ããæ°ã«çŽé¢ããŸããã ããããã¯ããã®æ©èœãŸãã¯ãŠãŒã¶ãŒã¢ã¯ã»ã·ããªãã£ã«åãããŠèª¿æŽãããŠããŸããExcelãšVBAããµãŒãããŒãã£ã®SEOããŒã«ãPHPãšMySQLãPythonãCãHiveãªã©ã§ãã ã«ãŠã³ã¿ãŒãåºåã·ã¹ãã ãCRMãYandexãšGoogleã®ãŠã§ããã¹ã¿ãŒããŒã«ããœãŒã·ã£ã«ãããã¯ãŒã¯ãHDFSãªã©ãããŸããŸãªã·ã¹ãã ãšããŒã¿ãœãŒã¹ãåé¡ãè¿œå ããŸãã ã»ããã¢ãããšäœ¿çšã®å®¹æããããŒã¿ã®åä¿¡ãåŠçãèŠèŠåãããã³ããŸããŸãªã¿ã€ãã®ãœãŒã¹ã®æäœãè¡ãã¢ãžã¥ãŒã«ãçµã¿åãããããŒã«ãå¿ èŠã§ãã iPythonããŒãããã¯ïŒæè¿JupyterããŒãããã¯ïŒãéžã°ããŸãããããã¯40ã®ããã°ã©ãã³ã°èšèªã§ã¹ã¯ãªãããæäœããããã®ãã©ãããã©ãŒã ã§ãã ãã®ãã©ãããã©ãŒã ã¯ãããŒã¿åŠçããã³æ©æ¢°åŠç¿ã®å°é家ã®éã§ãç§åŠèšç®ã«åºã䜿çšãããŠããŸããã æ®å¿µãªãããJupyterããŒãããã¯ã¯ãããŒã±ãã£ã³ã°ã¿ã¹ã¯ã®èªååãšããŒã¿åŠçã«äœ¿çšãããããšã¯ã»ãšãã©ãããŸããã
SEOã®Webåæããã³ããŒã¿åŠçã¿ã¹ã¯ã®å ŽåãJupyterããŒãããã¯ã¯ããã€ãã®çç±ã§é©ããŠããŸãã
-ç°¡åãªã»ããã¢ãã
-ã³ãŒããèšè¿°ããå¿ èŠã®ãªãããŒã¿åŠçãšèŠèŠå
-ããŒãœãã«ã³ã³ãã¥ãŒã¿ãŒãªãœãŒã¹ãäžè¶³ããŠããããããã匷åãªä»®æ³ãã·ã³ã§ïŒããšãã°ãAmazon WebãµãŒãã¹ã䜿çšããŠïŒããŒãããã¯ãå®è¡ããã¹ã¯ãªããã³ãŒããå€æŽããã«å¿ èŠãªããŒã¿ãèšç®ã§ããŸãã
ãã®èšäºã§ã¯ãJupyterããŒãããã¯ã䜿çšããŠå®çšçãªåé¡ã解決ããã®ã«åœ¹ç«ã€3ã€ã®äŸã玹ä»ããŸãã
Yandex Metrica API
å€ãã®å Žåããµã€ã蚪åã«é¢ããã¬ããŒããæºåããã¿ã¹ã¯ããããŸã;ãããã®ã¬ããŒãã®ããŒã¿ã¯ãã·ã¹ãã ãäžåºŠã»ããã¢ããããã ãã§èªåçã«åéã§ããŸãã æéã®å¢å ã¯æããã§ãã ãã®äŸã§ã¯ãYandex Metricsã®ããã€ãã®ãããžã§ã¯ãã®ãã¹ãŠã®Yandexæ€çŽ¢ã¡ããªãã¯ããçµ±èšãããŠã³ããŒãããæ¹æ³ã確èªããŸãïŒãã®å ŽåãWebã€ã³ã¿ãŒãã§ã€ã¹ãããã¹ãŠã®çµ±èšãååŸããã®ã¯ããªãå°é£ã§ãïŒã
Word2vec
ããã¹ãããŒã¿ã®èªååŠçã«ã¯è€éãªã¢ã«ãŽãªãºã ããããŸãããããã䜿çšããŠãããŒã¿ãå ·äœçã«åæããæ¹æ³ãç°¡åã«èŠãŠã¿ãŸãããã word2vecã䜿çšããŠè§£æ±ºã§ããã¿ã¹ã¯ã¯ãåèªã®ã¿ã€ããã¹ã®æ€çŽ¢ãå矩èªã®æ€çŽ¢ãããã³ãé¡äŒŒãåèªã®æ€çŽ¢ã§ãã
PageRankã®èšç®
SMOã®å°é家ã«ãšã£ãŠãPRèšç®ã¢ã«ãŽãªãºã ã䜿çšããŠãã³ãã¥ããã£ã®æãæš©åšã®ããã¡ã³ããŒãèŠã€ããæ¹æ³ã¯èå³æ·±ãã§ãããã åãæåãåããŠã¹ã¯ãªããèšå®ããããã«å€æŽãããšããµã€ãã§æé«ã®PageRankãæã€ããŒãžãèŠã€ããããšãã§ããŸãã ãŸããD3jsã䜿çšããŠVKontakteã°ã«ãŒãã®ãŠãŒã¶ãŒãèŠèŠåããæ¹æ³ã«ã€ããŠã説æããŸãã
ã¬ããŒãã¯ã2æ4æ¥ã«RamblerïŒCoã§éå¬ãããæåã®SEO MeetupãããŒã¿ããªãã³SEOãã§çŽ¹ä»ãããŸããïŒ ãããªãžã®ãªã³ã¯ ïŒã
ãããã®äŸã®æ¢è£œã®ã³ãŒãã¯GitHubã§ååŸã§ããŸãã
JupyterããŒãããã¯ãã€ã³ã¹ããŒã«ãã
ããŒãœãã«ã³ã³ãã¥ãŒã¿ãŒã«ã€ã³ã¹ããŒã«ããã«ã¯ã2ã€ã®æé ã ããå¿ èŠã§ãã
1. Anaconda pythonãã£ã¹ããªãã¥ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ããŸã
2.ã³ãã³ãããã³ããã§ãconda install jupyterãå®è¡ããŸãã
ã³ãã³ãã©ã€ã³ã§ããŒãããã¯ãèµ·åããã«ã¯ã次ãå®è¡ããŸãïŒjupyter notebook
ã€ã³ã¹ããŒã«ãæåããå Žåããã©ãŠã¶ãŠã£ã³ããŠãéããŸãã
Yandex Metricsããã®ã¬ããŒãã®ã¢ã³ããŒã
ïŒ ãµã³ãã«ã³ãŒã ïŒ
æ€çŽ¢ãã¬ãŒãºã¬ããŒãããããŒã¿ãèªåçã«ã¢ããããŒãããæ¹æ³ãèŠãŠã¿ãŸãããã ãã®ãããªã¬ããŒããæåã§ã¢ããããŒãããããšã®åé¡ã¯æããã§ããYandexMetricã¯åžžã«ããŒãã«å šäœãäžåºŠã«ããŠã³ããŒãã§ãããšã¯éããŸããïŒå€§èŠæš¡ãªãããžã§ã¯ãã®å Žåãè¡æ°ã¯æ°åäžã«ãªããŸãïŒã Pythonæ§æã«æ £ããŠããªã人ã®ããã«ããã®äŸã詳现ã«åæããŸãã
habrastorage.org/files/385/ae6/980/385ae698096d4b7b9df4e116ede90525.jpg
APIãªã¯ãšã¹ãã«å¿ èŠãªã©ã€ãã©ãªãã€ã³ããŒãããJSON圢åŒã§äœæ¥ããŸãã
# -*- coding: utf-8 -*- import requests import json
Ctrl + Enter-è¡ãå®è¡ããŸãã Shift + Enter-è¡ãå®è¡ããŠæ¬¡ã®è¡ã«é²ã¿ãŸãã
ã«ãŠã³ã¿ãŒãžã®ãªã¯ãšã¹ãã®ããŒã¯ã³ãååŸããŸãã
1. https://oauth.yandex.ru/ããŒãžã§ã¢ããªã±ãŒã·ã§ã³ãèµ·åããYandex.Metricaçµ±èšãåä¿¡ããèš±å¯ãäžããŸãã ã¹ã¯ãªãŒã³ã·ã§ããã¯èšäºhttps://habrahabr.ru/post/265383/ã«ãããŸãã
2. URL https://oauth.yandex.ru/authorize?response_type=token&client_id=ã®ã¢ããªã±ãŒã·ã§ã³IDã眮ãæããŸã
ãã®çµæãYandex Metricãžã®ãã¹ãŠã®ãªã¯ãšã¹ãã§äœ¿çšããèªèšŒããŒã¯ã³ãååŸããŸãã åä¿¡ããããŒã¯ã³ãããŒã¯ã³ã¹ã¯ãªããå€æ°ã«ã³ããŒããŸãã
ã¢ã³ããŒãã®ãã©ã¡ãŒã¿ãŒãèšå®ããŸãã
ãããžã§ã¯ã-ããŒã¿ãååŸããã«ãŠã³ã¿ãŒã®ãªã¹ãïŒã«ãŠã³ã¿ãŒã®ãªã¹ãã®8æ¡ã®æ°å€metrika.yandex.ruïŒ
startDateããã³endDate-ãYYYY-MM-DDãã®åœ¢åŒã®ã¢ããããŒãæéã®éå§æ¥ãšçµäºæ¥ã ããšãã°ãstartDate = '2016-01-31'
limit-1ã€ã®ãªã¯ãšã¹ãã§ã¢ã³ããŒãããè¡æ°ã ããšãã°ãã¬ããŒãã«500,000è¡ããå Žåãlimit = 10000ïŒAPIã®çŸåšã®ããŒãžã§ã³ã®æ倧å€ïŒã§ãã¹ã¯ãªããã¯ããŒãã«å šäœãã¢ã³ããŒãããããã«50åã®ã¯ãšãªãäœæããŸã
ããŒã¿ãæžã蟌ãŸãããã¡ã€ã«ãæ¶å»ããŸãïŒæ°ããã¢ããããŒãã®ãã³ã«æåã§è¡ããªãããã«ããŸãïŒã ãã¡ã€ã«åã¯æ¬¡ã®ããããã§èšå®ã§ããŸãã
f = open('search phrases.txt', 'w') f.close()
ããã«ã«ãŒãã§ã¯ããããžã§ã¯ãã·ãŒãã«ãªã¹ããããŠããã«ãŠã³ã¿ãŒã®ãã¹ãŠã®çªå·ã調ã¹ãŸãã
for project in projects:
åãããžã§ã¯ãã«ãŠã³ã¿ãŒçªå·ã«ã€ããŠãæåã®è¡ããã¢ã³ããŒããéå§ãïŒãªãã»ãã= 1ïŒãåãµã€ã¯ã«ã§ãã®å€ãå¶éããšã«å¢ãããŸãã APIãªã¯ãšã¹ãã®ãã©ã¡ãŒã¿ãŒïŒ tech.yandex.ru/metrika/doc/api2/api_v1/intro-docpageããã¥ã¡ã³ããžã®ãªã³ã¯ïŒïŒ
oauth_token-ç§ãã¡ãåãåã£ãããŒã¯ã³
id-ã«ãŠã³ã¿ãŒçªå·
粟床=ãã«-粟床ãããã«ãã®å€ã¯ã¹ã©ã€ããŒã®äœçœ®ã«å¯Ÿå¿ããŸã100ïŒ
ãã£ã¡ã³ã·ã§ã³ãšææš-ãã£ã¡ã³ã·ã§ã³ïŒè¡šã®è¡ïŒãšææšïŒåïŒ
çµæïŒJSON https://docs.python.org/2/library/json.htmlã®æäœæ¹æ³ ïŒãã¿ãåºåããã¡ã€ã«ïŒ\ tïŒã«è¿œå ãããŸãã æåŸã®ã¢ããããŒãã¯ã䜿ãæ £ããã¬ããŒããExcelãªã©ã®ããŒã«ãžã®ã³ããŒã¢ã³ãããŒã¹ãã§ãã
Word2vec
ïŒ ãµã³ãã«ã³ãŒã ïŒ
Word2Vecã©ã€ãã©ãªã䜿çšããã«ã¯ããŸãgensim pypi.python.org/pypi/gensimãè¿œå ã€ã³ã¹ããŒã«ããŸãïŒããã©ã«ãã§ã¯Anacondaãã£ã¹ããªãã¥ãŒã·ã§ã³ã«ã¯å«ãŸããŠããŸããïŒã ã¢ãã«ã®å ¥åæã«ãæ€çŽ¢ãã¬ãŒãºã®åæãªã¹ãããã®æã®ãªã¹ããæäŸãããŸãã ã€ãŸãã[['watch'ã 'films'ã 'online']ã['course'ã 'ruble']ã...]ãšãã圢åŒã®ã·ãŒãã§ãã
次ã«ãã¢ãã«ãã©ã¡ãŒã¿ãŒãèšå®ããŸãã
-num_features-ãã¯ãã«ç©ºéã®æ¬¡å ã å€ã倧ããã»ã©ãã¢ãã«ãå ¥åããŒã¿ãèæ ®ããã粟床ããé«ããªããŸãïŒãã£ã¡ã³ã·ã§ã³ãå¢ãããŠãã¢ãã«ã®å質ãåäžããªãå ŽåããããŸãïŒã éåžžã10ãæ°çŸã®å€ã䜿çšãããŸãã ãããã£ãŠããã£ã¡ã³ã·ã§ã³ã倧ããã»ã©ãããå€ãã®ã³ã³ãã¥ãŒãã£ã³ã°ãªãœãŒã¹ãå¿ èŠã«ãªããŸãã
-min_word_count-ã¢ãã«ã®æçµèŸæžã§é »ç¹ã«åºçŸããåèªã®ã¿ãèæ ®ããããšãã§ããŸãã ã»ãšãã©ã®å Žåã5ã100ã®å€ã䜿çšãããŸãããã®çµæãå®çšçãªæå³ãæã€åèªã®ã¿ãæ®ããŠãèŸæžã®ãµã€ãºãå€§å¹ ã«åæžããŸãã
-num_workers-ã¢ãã«ã䞊è¡ããŠæ§ç¯ããããã»ã¹ã®æ°
-context-ã¢ã«ãŽãªãºã ãèæ ®ããã³ã³ããã¹ãå ã®åèªæ°ã æ€çŽ¢èªã¯éåžžã«çããæãã§ã
-ããŠã³ãµã³ããªã³ã°-ããã¹ãã«é »ç¹ã«åºçŸããåèªãé€å€ããŸãã Googleã§ã¯ã.00001ã.001ã®å€ãæšå¥šããŠããŸã
ãã®äŸã§ã¯ãã¢ãã«ã¯500äžã§æ§ç¯ãããŸããã 2GBã®ç©ºãRAMãæèŒããã©ãããããã§çŽ40åéã®æ€çŽ¢ã¯ãšãªã ãã®éã®ããŒã¿ã¯ãSEOã¿ã¹ã¯ã«äœ¿çšã§ããŸãã
1.ã¿ã€ããã¹ãšæå³çã«é¢é£ããåèªãæ€çŽ¢ããŸãïŒå¯Ÿå¿ãããã¯ãã«ã®è¿æ¥åºŠã®ã³ãµã€ã³å°ºåºŠã¯ãåèªã®å察åŽã«ç€ºãããŸãïŒã
ãã·ã¢èªã¬ã€ã¢ãŠãã§ã®ã¯ãšãªãyandexãã®ã¿ã€ããã¹ãšæå³çã«é¢é£ããåèªïŒ
ã¯ãšãªãsyria + asadãã«é¢é£ããåèªã®äŸïŒ
ãã¬ãŒãºã§ã¯ããæå³ãããããšã§ã¯ãšãªãåºå¥ã§ããŸãïŒå¯Ÿå¿ãããã¯ãã«ã®è¿æ¥æ§ã«é¢ããŠïŒã ãã¢ããã³è»ã®ããã¯ã®çºè¡ã¯ãã¹ã€ã¹ã®åãšã¯ç°ãªããŸãã
2.ãšã³ãã£ãã£ã®é¢ä¿ãèŠã€ããã ãã®ã¢ãã«ãžã®ã¯ãšãªã¯ããã·ã¢ã«é©çšãããåèªãšãã«ãç±³åœãæãåèªã衚瀺ããŸãã ãããã¯ãæ€çŽ¢ã¯ãšãªããã®ãã·ã¢ã®é貚ã§ããããšãè«ççã§ãïŒ
3.ãªã¹ãå ã®ãäœåãªãåèªã®å®çŸ©
ãforexãããoilãããgoldããšããåèªã¯ããodnushkaããããæ€çŽ¢ã¯ãšãªããã®ãã¯ãã«ç©ºéã§äºãã«ã¯ããã«è¿ããªããŸãã
åæ§ã«ããç«ãããç·ããã象ããããã³ãã©ãã®ãªã¹ãããããåç©ãèšå·ã®ãªãèŠæ±ã¯äžèŠã§ãã
4.èªåã³ã³ãã³ãã¯ã©ã¹ã¿ãªã³ã°
Word2Vecã䜿çšããŠã¢ãã«ãæ§ç¯ãããšãäžè¬çãªã¯ã©ã¹ã¿ãªã³ã°ã¢ã«ãŽãªãºã ã䜿çšããŠããã¯ãã«ç©ºéã§åèªãèªåçã«ã¯ã©ã¹ã¿ãŒåã§ããŸãã ããšãã°ã1000åã®ããã¹ãã®Lenta.ruã¢ãã«ã«KMeansã¢ã«ãŽãªãºã ãé©çšãããšãäž»èŠãªãã¥ãŒã¹èšäºãåŸãããŸãã
-ãŠã¯ã©ã€ãã«å¯ŸããçŠèŒž
-ããªã§ã®ããæ»æïŒèªãbataklatãã¯ãã¹ããã«ãã£ãŠåå ŽãBataklanãã®ååãåŠçããçµæãšããŠåŸãããïŒ
-ã·ãªã¢ã®S-400
Neworkxã§ã°ã©ããæäœãã
ïŒ Vkontakte APIããŒã¿ã¢ããããŒãã³ãŒãã åŠçãããã³èŠèŠå ïŒ
å°éçšèªã§ã¯ãã°ã©ãã¯ãšããžã§æ¥ç¶ãããããŒãã®ã»ããã§ãã å®éã«ã¯ãããŒãã¯ãœãŒã·ã£ã«ãããã¯ãŒã¯ãŸãã¯ã°ã«ãŒãã®ãŠãŒã¶ãŒããµã€ãã®ããŒãžã«ããããšãã§ããŸãã rib骚ãšããŠ-äžå¯Ÿã®ãŠãŒã¶ãŒéã®åæ ã®ååšãã¡ãã»ãŒãžãã°ã«ãŒãæçš¿ã®ãããªããŒã¯ããµã€ãã®ä»ã®ããŒãžãžã®ãªã³ã¯ã Networkxã©ã€ãã©ãªã䜿çšãããšããã®ãããªã°ã©ããäœæããããŸããŸãªã°ã©ãã®ç¹æ§ãèªã¿åãããšãã§ããŸãã VKontakteã°ã«ãŒãã®äŸãèŠãŠãåãŠãŒã¶ãŒã®PageRankãèšç®ãããã©ãŠã¶ãŒã§èŠèŠåããæ¹æ³ãèŠãŠã¿ãŸãããã
äŸãšããŠã660ã®åå è ïŒèŠèŠåã®ããïŒã®æ¯èŒçå°ããªã°ã«ãŒãã®1ã€ãåãäžããŸããããã®ã°ã«ãŒãã§ã¯ãå€ãã®åå è ãäºãã«ç²ŸéããŠããŸãã ã°ã©ããäœæããã«ã¯ãã°ã«ãŒãã¡ã³ããŒã®ãªã¹ãïŒVKontakteã®groups.getMembers APIã¡ãœããïŒãã¢ã³ããŒãããåå è ããšã«å人ã®ãªã¹ãïŒfriends.getã¡ãœããïŒãååŸããã ãã§ååã§ãã ã¢ããããŒãã®çµæã¯ã次ã®åœ¢åŒã§ããã¹ããã¡ã€ã«ã«æžã蟌ãŸããŸãã
{
ãŠãŒã¶ãŒID
[ãŠãŒã¶ãŒã®åéãªã¹ã]
}
ãã®çµæãã°ã©ãgã®ããŒãã¯ã°ã«ãŒãã¡ã³ããŒã®IDã«ãªãããšããžã¯ãã®ãŠãŒã¶ãŒã®å人ã®IDã«ãªããŸãã PageRankãèšç®ããã«ã¯ãé¢æ°x = networkx.pagerankïŒgïŒã䜿çšããŸãã ã°ã«ãŒãã®ãããã¡ã³ããŒã衚瀺ããŸãã
èŠèŠåã«ã¯ã D3.jsã©ã€ãã©ãªforce-collapcibleã䜿çšããŸãã ããŒãã®ãµã€ãºãšããŠããã®ããŒãžã©ã³ã¯ãååŸããŸãã
ããŒãã«ã«ãŒãœã«ãåããããšããã®ããŒããå±ããŠããIDã確èªã§ããŸãã users.getã¡ãœããã䜿çšããŠãIDããšã«ãŠãŒã¶ãŒã«é¢ãã詳现æ å ±ã衚瀺ã§ããŸãïŒ https ://api.vk.com/method/users.get?user_id=12345