[PYTHON] [Kostenlose Recherche] Gibt es einen Zusammenhang zwischen Wikipedia-Updates und Trends?

[Kostenlose Recherche] Gibt es einen Zusammenhang zwischen Wikipedia-Updates und Trends?

Das ist Getta. Ich bin ungefähr in der 20. Klasse. Ich werde meine kostenlose Forschung präsentieren.

……

Ich werde das Motiv unten schreiben, aber ich war daran interessiert, also habe ich es versucht und konnte es schnell umsetzen Als ich darüber nachdachte, es Qiita zu geben, war es nur die Zeit für die Anzeigenpflege, also werde ich es angemessen veröffentlichen.

Motivation

Als Herr Ninomiya von Arashi seine Ehe bekannt gab, wurde Wikipedia zerstört.

Zu dieser Zeit war <natürlich "Nino Marriage" im Twitter-Trend.

Also dachte ich: "Vielleicht hängen Wikipedia- und Twitter-Trends zusammen: Denken:".

Was mich glücklich macht, wenn es eine Beziehung gibt, ist, dass ich spezifisches Wissen erlangen und gleichzeitig Trends unterdrücken kann, indem ich nur auf Wikipedia schaue, und ich denke, ich kann mehr über Trends lernen als über SNS.

Methode

Holen Sie sich Twitter-Trends mit API.

Programm zum Abrufen japanischer Trends auf Twitter mit API
def auth_api():
    auth = tweepy.OAuthHandler(api_key.CONSUMER_KEY, api_key.CONSUMER_SECRET)
    auth.set_access_token(api_key.ACCESS_TOKEN, api_key.ACCESS_SECRET)
    return tweepy.API(auth)
    
def get_trend_words():
    api = auth_api()
    trends = api.trends_place("23424856") #Japanische WOEID
    trend_words = []
    for d in trends[0]["trends"]:
        trend_words.append(d["name"])
    return trend_words

Scraping der zuletzt aktualisierten Seite von Wikipedia, um eine Liste zu erhalten.

Programm zum Abrufen der neuesten Aktualisierungen von Wikipedia
def get_wikipedia_log_keywords():
    url = 'https://ja.wikipedia.org/wiki/%E7%89%B9%E5%88%A5:%E6%9C%80%E8%BF%91%E3%81%AE%E6%9B%B4%E6%96%B0?hidebots=1&hidecategorization=1&hideWikibase=1&limit=500&days=7&urlversion=2' #Wenn Sie das Limit ändern, ändert sich die Anzahl der Akquisitionen
    html = requests.get(url)
    soup = bs4.BeautifulSoup(html.text, "html5lib")
    keywords = [el.text for el in soup.find_all(class_="mw-changeslist-title")]
    return keywords

Durchsuchen Sie jede Liste vollständig. Wenn die Wörter übereinstimmen, zählen Sie sie und dividieren Sie sie durch die Länge der auszugebenden Liste.

import twitter_trend
import wikipedia_ch_log

def main():
    print("------wikipedia 500 keywords------")
    print()
    wiki = wikipedia_ch_log.get_wikipedia_log_keywords()
    print(wiki)
    print()
    print("------twitter trends------")
    print()
    twi = twitter_trend.get_trend_words()
    print(twi)
    cnt = 0
    for s in twi:
        if "#" in s:
            s = s[1:] #Entfernen von Hash-Tags
        for s2 in wiki:
            if s in s2:
                print("same word :", s, s2)
                cnt += 1
    print("count :", cnt)
    
    print("coincidence :", cnt / (max(len(twi), len(wiki))))
    
if __name__ == "__main__":
    main() 

Kann ich den Zeilenvorschubcode in pythonista3 verwenden?

Ergebnis

一致なし

Manchmal stimmten sie überhaupt nicht überein.

一致した

Nur ein Spiel. Oben ist die Wikipedia-Liste und unten der Twitter-Trend. Es gab ein Match für "Toshinobu Kubota" mit einem Übereinstimmungsgrad von 0,002.

Erwägung

Diesmal habe ich Wikipedia und Twitter verglichen, Es gab nur 0 zu 1 Übereinstimmungen für ungefähr 500 Wikipedia- und ungefähr 50 Twitter-Trends.

Obwohl ich keinen Druck gemacht habe, gab es höchstens 4 Spiele.

Dieses Ergebnis hängt weniger mit diesen als vielmehr mit diesen zusammen Es gab ein Problem mit der Bewertungsmethode.

Derzeit arbeiten wir daran, das Hash-Tag von Twitter zu entfernen, aber das reicht nicht aus. Wie ich zu Beginn sagte, sollte ein Trend wie "Nino Marriage" auf Wikipedia als "Kazuya Ninomiya" registriert werden, auch wenn Sie ihn eingeben. Natürlich stimmt diese Methode nicht überein.

Um dies gut zu handhaben, ist es möglicherweise besser, verwandte Wörter aus jedem Trendwort auf irgendeine Weise zu extrahieren (z. B. Google-Suche) und sie dann mit Wikipedia zu vergleichen.

Außerdem wurde der Auswertungswert so eingestellt, dass der Maximalwert vorerst 1 beträgt, die Größe der größeren Liste jedoch für den Auswertungswert wirksam ist, die Größe der kleineren Liste (in diesem Fall Trend) jedoch vollständig ausgewertet wird. Da dies keine Auswirkungen hat, ist die Bewertungsformel nicht sehr gut.

Impressionen

Ich hatte die Idee, die Geschichte von Wikipedia von früher herauszuholen, aber ich habe es nicht getan, weil es ein Ärger war, aber ich bin froh, dass ich es sehr einfach tun konnte. Der Trend von Twitter wurde auch von API vorbereitet, und ich war froh, dass ich es schnell tun konnte, da ich zuvor den API-Schlüssel erhalten hatte.

Wenn ich es auch in Zukunft mache, möchte ich den Grad der Übereinstimmung genauer untersuchen, indem ich verwandte Wörter weglasse.

Wenn Sie wissen, wie stark es mit Trends zusammenhängt, können Sie möglicherweise automatisch Wikipedia-Artikel lesen und eine Website erstellen, auf der Trends als Nebenprodukt erläutert werden.

Referenz

Mein Artikel Um sich daran zu erinnern, wie man bs4 benutzt

Recommended Posts

[Kostenlose Recherche] Gibt es einen Zusammenhang zwischen Wikipedia-Updates und Trends?
Gibt es einen Widerspruch zwischen der Partei, die die Menschen vor NHK schützt, und der Partei, die NHK vor den Menschen schützt?
Was ist der Unterschied zwischen symbolischen und harten Links?
Unterschied zwischen ps a und ps -a
Wahrscheinlichkeitsstatistik in Pokemon (Nichtkorrelationstest) - Gibt es eine Korrelation zwischen CP, Gewicht und Größe von Koiking?
Unterschied zwischen == und ist in Python
Gibt es ein besonderes in scipy? ??
[Einführung in Python] Was ist der Unterschied zwischen einer Liste und einem Taple?