[Python] Wäre es nicht das Beste und Höchste, wenn Sie die Unternehmensmerkmale mit nlplot erfassen könnten?

Auslösen

Derzeit bin ich Praktikant für Datenanalyse bei EXIDEA Co., Ltd., die SEO-Schreibwerkzeuge entwickelt. Es ist vier Monate her, seit ich angefangen habe zu arbeiten, aber aufgrund des Einflusses von Corona habe ich noch nie jemanden in der Firma getroffen. Aber was sind die Merkmale regelmäßiger Online-Trinkpartys und täglicher Treffen? Ich verstehe endlich. Außerdem höre ich bei den letzten monatlichen Treffen oft das Wort "Rekrutierung". Ich denke, es gibt viele Unternehmen, die Wantedly nutzen, um sich auf Rekrutierungsaktivitäten zu konzentrieren. In diesem Artikel wird der Story-Artikel von ** Wantedly eine Story sein, um die Unternehmensmerkmale und -gefühle, die Sie den Bewerbern vermitteln möchten, mithilfe des Pakets nlplot wiederzuerkennen, das die Visualisierung der natürlichen Sprache erleichtert. ** **.

Der Quellcode ist auf Github verfügbar. Nehmen Sie Kontakt mit uns auf. https://github.com/yuuuusuke1997/Article_analysis

Umgebung

· Mac OS ・ Python 3.7.6 ・ Jupyter-Notizbuch ・ Zsh Shell

Geschichtenfluss

  1. [Datenerfassung (Scraping)](https://qiita.com/yuuuusuke1997/items/247eb06583ae8f653c2a#1-%E3%83%87%E3%83%BC%E3%82%BF%E3%81% AE% E5% 8F% 8E% E9% 9B% 86% E3% 82% B9% E3% 82% AF% E3% 83% AC% E3% 82% A4% E3% 83% 94% E3% 83% B3% E3% 82% B0)
  2. [Morphologische Analyse (MeCab)](https://qiita.com/yuuuusuke1997/items/247eb06583ae8f653c2a#2-%E5%BD%A2%E6%85%8B%E7%B4%A0%E8%A7%A3 % E6% 9E% 90mecab) Visualisierung (nlplot)
  3. Visualisierung (nlplot)

1. Datenerfassung (Scraping)

1-1. Kratzfluss

In diesem Scraping werden wir die Webseite wie folgt umstellen und nur alle Artikel unseres Unternehmens erwerben. Vor dem Schaben werden wir dies tun, nachdem wir zuvor die Erlaubnis von Wantedly erhalten haben. Vielen Dank für Ihr Verständnis im Voraus. IMG_0017.PNG

1-2. Vorbereitungen

Die Webseite von Wantedly lädt den nächsten Artikel, indem Sie zum Ende der Seite scrollen. Daher wird Selenium, das den Browserbetrieb automatisiert, an den minimal erforderlichen Stellen zum Erfassen von Daten verwendet. Um den Browser zu bedienen, müssen Sie einen mit Ihrem Browser kompatiblen Treiber vorbereiten und die Selenium-Bibliothek installieren. Da ich Google Chrome liebe, habe ich den Chrome-Treiber von hier heruntergeladen und in das folgende Verzeichnis gestellt. Ändern Sie außerdem * unter Benutzer entsprechend in Ihren eigenen Benutzernamen.

python


$ cd /Users/*/documents/nlplot
$ ls
article_analysis.ipynb
chromedriver
post_articles.csv
user_dic.csv

Installieren Sie die Selenium-Bibliothek mit pip.

python


$ pip install selenium

Wenn Sie mehr über Selen von der Installation bis zur Betriebsmethode erfahren möchten, lesen Sie den Artikel hier. Jetzt, wo wir fertig sind, werden wir tatsächlich kratzen.

1-3. Quellcode

article_analysis.ipynb


import json
import re
import time

import pandas as pd
import requests
from bs4 import BeautifulSoup as bs4
from selenium import webdriver

base_url = 'https://www.wantedly.com'


def scrape_path(url):
    """
Rufen Sie die URL der Space-Detail-Seite von der Story-Listenseite ab

    Parameters
    --------------
    url: str
URL der Storylistenseite

    Returns
    ----------
    path_list: list of str
Liste mit der URL der Space-Detail-Seite
    """

    path_list = []

    response = requests.get(url)
    soup = bs4(response.text, 'lxml')
    time.sleep(3)

    # <script data-placeholder-key="wtd-ssr-placeholder">Holen Sie sich den Inhalt
    #Am Anfang des JSON-Charakters'//'Zu entfernen.string[3:]
    feeds = soup.find('script', {'data-placeholder-key': 'wtd-ssr-placeholder'}).string[3:]
    feed = json.loads(feeds)

    # {'body'}von'spaces'Erhalten
    feed_spaces = feed['body'][list(feed['body'].keys())[0]]['spaces']
    for i in feed_spaces:
        space_path = base_url + i['post_space_path']
        path_list.append(space_path)

    return path_list


path_list = scrape_path('https://www.wantedly.com/companies/exidea/feed')


def scrape_url(path_list):
    """
Rufen Sie die URL der Story-Detailseite von der Space-Detailseite ab

    Parameters
    --------------
    path_list: list of str
Liste mit der URL der Space-Detail-Seite

    Returns
    ----------
    url_list: list of str
Liste mit URLs von Story-Detailseiten
    """

    url_list = []

    #Starten Sie Chrome(chromedriver befindet sich im selben Verzeichnis wie diese Datei)
    driver = webdriver.Chrome('chromedriver')
    for feed_path in path_list:
        driver.get(feed_path)

        #Scrollen Sie zum Ende der Seite und beenden Sie das Programm, wenn Sie nicht mehr scrollen können
        #Höhe vor dem Scrollen
        last_height = driver.execute_script("return document.body.scrollHeight")

        while True:
            #Scrollen Sie zum Ende der Seite
            driver.execute_script('window.scrollTo(0, document.body.scrollHeight);')

            #Die Selenverarbeitung ist zu schnell, um eine neue Seite zu laden. Warten Sie daher
            time.sleep(3)

            #Höhe nach dem Scrollen
            new_height = driver.execute_script("return document.body.scrollHeight")

            # last_Höhe ist neu_Scrollen Sie, bis es der Höhe entspricht
            if new_height == last_height:
                break
            else:
                last_height = new_height
                continue

        soup = bs4(driver.page_source, 'lxml')
        time.sleep(3)
        # <div class="post-space-item" >Holen Sie sich das Element von
        post_space = soup.find_all('div', class_='post-content')
        for post in post_space:
            # <"post-space-item">von<a>Element abrufen
            url = base_url + post.a.get('href')
            url_list.append(url)

    url_list = list(set(url_list))

    #Webseite schließen
    driver.close()
    return url_list


url_list = scrape_url(path_list)


def get_text(url_list, wrong_name, correct_name):
    """
Holen Sie sich Text von der Story-Detailseite

    Parameters
    --------------
    url_list: list of str
Liste mit URLs von Story-Detailseiten
    wrong_name: str
Falscher Firmenname
    correct_name: str
Richtiger Firmenname

    Returns
    ----------
    text_list: list of str
Liste mit Geschichten
    """

    text_list = []

    for url in url_list:
        response = requests.get(url)
        soup = bs4(response.text, 'lxml')
        time.sleep(3)

        # <section class="article-description" data-post-id="○○○○○○">Im<p>Holen Sie sich alle Elemente
        articles = soup.find('section', class_='article-description').find_all('p')
        for article in articles:
            #Durch Trennzeichen aufgeteilt
            for text in re.split('[\n!?!?。]', article.text):
                #Vorverarbeitung
                replaced_text = text.lower()  #Kleinbuchstabenumrechnung
                replaced_text = re.sub(wrong_name, correct_name, replaced_text)  #Konvertieren Sie den Firmennamen in Großbuchstaben
                replaced_text = re.sub(r'https?://[\w/:%#\$&\?\(\)~\.=\+\-…]+', '', replaced_text)  #URL entfernen
                replaced_text = re.sub('[0-9]', '', replaced_text)  #Zahlen ausschließen
                replaced_text = re.sub('[,:;-~%()]', '', replaced_text)  #Ersetzen Sie das Symbol durch ein Leerzeichen halber Breite
                replaced_text = re.sub('[,:; · ~% () "" "【】 (Lol)]', '', replaced_text)  #Ersetzen Sie das Symbol durch ein Leerzeichen halber Breite
                replaced_text = re.sub(' ', '', replaced_text)  # \Entfernen Sie u3000

                text_list.append(replaced_text)

    text_list = [x for x in text_list if x != '']
    return text_list


text_list = get_text(url_list, 'exidea', 'EXIDEA')

Speichern Sie den abgerufenen Text in einer CSV-Datei.

nlplot_articles.ipynb


df_text = pd.DataFrame(text_list, columns=['text'])
df_text.to_csv('post_articles.csv', index=False)

スクリーンショット 2020-09-17 23.27.40.png

2. Morphologische Analyse (MeCab)

2-1. Fluss bis zur morphologischen Analyse

  1. Installations- und Umgebungseinstellungen des MeCab-Hauptgeräts
  2. IPA-Wörterbuch hinzufügen
  3. Fügen Sie das NEologd-Wörterbuch hinzu
  4. Erstellen eines Benutzerwörterbuchs
  5. Abschließend Analyse

2-1. Eine kurze Pause

Von hier aus werde ich mit der Installation von MeCab und verschiedenen Vorbereitungen beginnen, aber es wird nicht so gut funktionieren, wie ich es erwartet hatte, und mein Herz wird gebrochen, also hoffe ich, dass es zu Motivation führt.

Warum machst du überhaupt eine so mühsame Aufgabe? Wenn Sie der Meinung sind, dass Sie nur auf einmal auf $ Brew Install Mecab klicken können, sind Sie es vielleicht. Um jedoch das gewünschte Ergebnis der morphologischen Analyse mit nlplot zu erhalten, muss der Zeichencode im Benutzerwörterbuch bei UTF-8 registriert werden, wobei der firmenspezifische Abteilungsname und das Firmenwort als richtige Nomenklatur verwendet werden. Als Ergebnis der einfachen Installation mit Brew wurde der Zeichencode zu EUC-JP, und ich musste mir zweimal die Mühe machen. Wenn Sie sich also an das Ausgabeergebnis halten möchten, probieren Sie die Methode von nun an aus. Wenn Sie es einfach ausprobieren möchten, installieren Sie es bitte mit Brew unter Bezugnahme auf Folgendes.

Vorbereiten der Umgebung für die Verwendung von MeCab auf einem Mac

2-2. Installations- und Umgebungseinstellungen des MeCab-Hauptgeräts

MeCab Verwenden Sie von der offiziellen Website den Befehl curl, um ** MeCab selbst ** und ** IPA-Wörterbuch ** herunterzuladen. Installieren Sie es diesmal in der lokalen Umgebung. Zunächst wird MeCab selbst installiert.

python


#Erstellen Sie das Installationsverzeichnis von mecab in der lokalen Umgebung
$ mkdir /Users/*/opt/mecab
$ cd /Users/*/opt/mecab
#Im aktuellen Verzeichnis-o Download durch Angabe des Dateinamens mit der Option
$ curl -Lo mecab-0.996.tar.gz 'https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE'
#Entpacken Sie die Quellcodedatei
$ tar zxfv mecab-0.996.tar.gz
$ cd mecab-0.996
#Zeichencode UTF-Überprüfen Sie, ob es kompiliert werden kann, indem Sie 8 angeben
$ ./configure --prefix=/Users/*/opt/mecab --with-charset=utf-8
#Kompilieren Sie das von configure erstellte Makefile
$ make
#Überprüfen Sie vor der Installation, ob es ordnungsgemäß funktioniert
$ make check
#Binärdatei zusammengestellt von make/Users/*/opt/Auf dem Mecab installieren
$ make install

Done

Wenn Sie sich fragen, was konfigurieren, machen, installieren ist, kann hier hilfreich sein.

Nachdem Sie es installiert haben, gehen Sie den Pfad durch, damit Sie den Befehl mecab ausführen können.

python


#Überprüfen Sie den Shell-Typ
$ echo $SHELL
/bin/zsh
# .Pfad zu zshrc hinzufügen
$ echo 'export PATH=/Users/*/opt/mecab/bin:$PATH' >>  ~/.zshrc

"""
Hinweis:Zuletzt per Login-Shell(~/.zshrc)Veränderung
Beispiel) $ echo 'export PATH=/Users/*/opt/mecab/bin:$PATH' >>  ~/.bash_profile
"""

#Reflektiert die Shell-Einstellungen
$ source ~/.zshrc
#Überprüfen Sie, ob der Pass bestanden wurde
$ which mecab
/Users/*/opt/mecab/bin/mecab

Done

Referenzartikel: Was ist PATH?

2-3. Hinzufügen eines IPA-Wörterbuchs

python


#Wechseln Sie in das Startverzeichnis
$ cd /Users/*/opt/mecab
#Im aktuellen Verzeichnis-o Download durch Angabe des Dateinamens mit der Option
$ curl -Lo mecab-ipadic-2.7.0-20070801.tar.gz 'https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7MWVlSDBCSXZMTXM'
#Entpacken Sie die Quellcodedatei
$ tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz
$ cd mecab-ipadic-2.7.0-20070801
#Zeichencode UTF-Überprüfen Sie, ob es kompiliert werden kann, indem Sie 8 angeben
$ ./configure --prefix=/Users/*/opt/mecab --with-charset=utf-8
#Kompilieren Sie das von configure erstellte Makefile
$ make
#Binärdatei zusammengestellt von make/Users/*/opt/Auf dem Mecab installieren
$ make install

Done

#Bestätigung des Zeichencodes
#Der Zeichencode ist EUC-Für JP UTF-Wechseln Sie zu 8
$ mecab -P | grep config-charset
config-charset: EUC-JP
#Sucheinstellungsdatei
$ find /Users -name dicrc
/Users/*/opt/mecab/mecab-ipadic-2.7.0-20070801/dicrc
$ vim /Users/*/opt/mecab/mecab-ipadic-2.7.0-20070801/dicrc 
[Vor Änderung] config-charset = EUC-JP
[Nach Änderung] config-charset = UTF-8

$ mecab
Ich werde Menschen aufhalten! Jojo
Mein Substantiv,Gleichbedeutend,Allgemeines,*,*,*,ich,mich,mich
Ist ein Assistent,Hilfe,*,*,*,*,Ist,C.,Beeindruckend
Menschliche Nomenklatur,Allgemeines,*,*,*,*,Mensch,Ningen,Ningen
Hilfs,Fallassistent,Allgemeines,*,*,*,Zu,Wo,Wo
Verb beenden,Unabhängigkeit,*,*,Ein Schritt,Grundform,Halt,Yamel,Yamel
Zo Assistent,Letzte Hilfe,*,*,*,*,Es tut mir Leid,Zo,Zo
!! Symbol,Allgemeines,*,*,*,*,!,!,!
Jojo Nomen,Proprietäre Nomenklatur,Organisation,*,*,*,*
EOS

#Überprüfen Sie das IPA-Wörterbuchverzeichnis
$ find /Users -name ipadic
/Users/*/opt/mecab/lib/mecab/dic/ipadic

2-3. Hinzufügung des NEologd-Wörterbuchs

python


#Wechseln Sie in das Startverzeichnis
cd /Users/*/opt/mecab
#Laden Sie den Quellcode von github herunter
$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
$ cd mecab-ipadic-neologd
#Geben Sie auf dem Bildschirm "Ja" ein, um das Ergebnis auszuführen und zu überprüfen
$ ./bin/install-mecab-ipadic-neologd -n

Done

#Bestätigung des Zeichencodes
#Der Zeichencode ist EUC-Für JP UTF-Wechseln Sie zu 8
$ mecab -d /Users/*/opt/mecab/lib/mecab/dic/mecab-ipadic-neologd -P | grep config-charset
config-charset: EUC-JP
#Sucheinstellungsdatei
$ find /Users -name dicrc
/Users/*/opt/mecab/lib/mecab/dic/mecab-ipadic-neologd/dicrc
$ vim /Users/*/opt/mecab/lib/mecab/dic/mecab-ipadic-neologd/dicrc
[Vor Änderung] config-charset = EUC-JP
[Nach Änderung] config-charset = UTF-8

#Überprüfen Sie das Verzeichnis des NEologd-Wörterbuchs
$ find /Users -name mecab-ipadic-neologd
/Users/*/opt/mecab/lib/mecab/dic/mecab-ipadic-neologd

$echo „Ich verlasse die Menschen!| mecab -d /Users/*/opt/mecab/lib/mecab/dic/mecab-ipadic-neologd
"Symbol,Klammern öffnen,*,*,*,*,“,“,“
Ich werde Menschen aufhalten! Substantiv,Proprietäre Nomenklatur,Allgemeines,*,*,*,Ich werde Menschen verlassen!,Orehaningen Woyamerzo,Orewaningen Oyamelzo
Jojo Nomen,Allgemeines,*,*,*,*,*
EOS

Github-Beamter: mecab-ipadic-neologd

python


#Endlich pip, um Mecab mit Python3 verwenden zu können
$ pip install mecab-python3

2-4. Erstellen eines Benutzerwörterbuchs

Das Benutzerwörterbuch erstellt Wörter, die das Systemwörterbuch nicht verarbeiten kann, indem es dem Benutzer eine Bedeutung gibt.

Erstellen Sie zunächst eine CSV-Datei entsprechend dem Format des Wortes, das Sie hinzufügen möchten. Visualisieren Sie es einmal und wenn es ein Wort gibt, das Sie interessiert, versuchen Sie, das Wort zur CSV-Datei hinzuzufügen.

python


"""
Format
Oberflächentyp,Linke Kontext-ID,Richtige Kontext-ID,Kosten,Teil,Teil細分類1,Teil細分類2,Teil細分類3,Nutzungsart,Nutzungsart,Prototyp,lesen,Aussprache
"""

#Erstellung einer CSV-Datei
$ echo 'Praktikant,-1,-1,1,Substantiv,Allgemeines,*,*,*,*,*,*,*,Praktikant Sag'"\n"'Kernwert,-1,-1,1,Substantiv,Allgemeines,*,*,*,*,*,*,*,Kernwert'"\n"'Treffen Sie sich,-1,-1,1,Substantiv,Allgemeines,*,*,*,*,*,*,*,Treffen Sie sich' > /Users/*/Documents/nlplot/user_dic.csv

#Überprüfen Sie den Zeichencode der CSV-Datei
$ file /Users/*/Documents/nlplot/user_dic.csv
/users/*/documents/nlplot/user_dic.csv: UTF-8 Unicode text

Kompilieren Sie als Nächstes die erstellte CSV-Datei in ein Benutzerwörterbuch.

python


#Erstellen Sie ein Zielverzeichnis für das Benutzerwörterbuch
$ mkdir /Users/*/opt/mecab/lib/mecab/dic/userdic

"""
-d Verzeichnis mit Systemwörterbuch
-u Benutzer-Wo kann man das Wörterbuch speichern?
-f Zeichencode der CSV-Datei
-t Benutzerwörterbuch-Zeichencode/Wo soll die CSV-Datei gespeichert werden?
"""

##Erstellen Sie ein Benutzerwörterbuch
/Users/*/opt/mecab/libexec/mecab/mecab-dict-index \
-d /Users/*/opt/mecab/lib/mecab/dic/mecab-ipadic-neologd \
-u /Users/*/opt/mecab/lib/mecab/dic/userdic/userdic.dic \
-f utf-8 -t utf-8 /Users/*/Documents/nlplot/user_dic.csv

# userdic.Bestätigen Sie, dass dic fertig ist
$ find /Users -name userdic.dic
/Users/*/opt/mecab/lib/mecab/dic/userdic/userdic.dic

Nachdem wir Mecab installiert und ein Benutzerwörterbuch erstellt haben, werden wir mit der morphologischen Analyse fortfahren.

Referenzartikel: Hinzufügen von Wörtern

2-5. Schließlich Analyse

Laden Sie zunächst die während des Scrapings erstellte CSV-Datei.

nlplot_articles.ipynb


df = pd.read_csv('post_articles.csv')
df.head()

スクリーンショット 2020-09-21 0.07.51.png

In nlplot möchten wir Sätze Wort für Wort ausgeben, daher führen wir eine morphologische Analyse mit Nomenklatur durch.

article_analysis.ipynb


import MeCab

def download_slothlib():
    """
Laden Sie SlothLib und erstellen Sie ein Stoppwort

    Returns
    ----------
    slothlib_stopwords: list of str
Liste mit Stoppwörtern
    """

    slothlib_path = 'http://svn.sourceforge.jp/svnroot/slothlib/CSharp/Version1/SlothLib/NLP/Filter/StopWord/word/Japanese.txt'
    response = requests.get(slothlib_path)
    soup = bs4(response.content, 'html.parser')
    slothlib_stopwords = [line.strip() for line in soup]
    slothlib_stopwords = slothlib_stopwords[0].split('\r\n')
    slothlib_stopwords = [x for x in slothlib_stopwords if x != '']
    return slothlib_stopwords


stopwords = download_slothlib()


def add_stopwords():
    """
Fügen Sie Stoppwörter hinzu, um Stoppwörter zu stoppen

    Returns
    ----------
    stopwords: list of str
Liste mit Stoppwörtern
    """

    add_words = ['Sehen', 'Unternehmen', 'Ich würde es gerne tun', 'Mit allen Mitteln', 'Geschichte', '弊Unternehmen', 'Mensch', 'Was', 'Artikel', 'Außer', 'Hmm', 'von', 'Mich', 'Sa', 'so was']
    stopwords.extend(add_words)
    return stopwords


stopwords = add_stopwords()


def tokenize_text(text):
    """
Extrahieren Sie nur die Nomenklatur durch morphologische Analyse

    Parameters
    --------------
    text: str
Im Datenrahmen gespeicherter Text

    Returns
    ----------
    nons_list: list of str
Eine Liste, die nach morphologischer Analyse nur die Nomenklatur enthält
    """

    #Geben Sie das Verzeichnis an, in dem das Benutzerwörterbuch und das neologd-Wörterbuch gespeichert sind
    tagger = MeCab.Tagger('-d /Users/*/opt/mecab/lib/mecab/dic/mecab-ipadic-neologd -u /Users/*/opt/mecab/lib/mecab/dic/userdic/userdic.dic')
    node = tagger.parseToNode(text)
    nons_list = []
    while node:
        if node.feature.split(',')[0] in ['Substantiv'] and node.surface not in stopwords:
            nons_list.append(node.surface)
        node = node.next
    return nons_list


df['words'] = df['text'].apply(tokenize_text)

article_analysis.ipynb


df.head()

スクリーンショット 2020-09-21 0.28.28.png

3. Visualisierung (nlplot)

3-1. Vorbereitungen

python


$ pip install nlplot

3-2. uni-gram

nlplot_articles.ipynb


import nlplot

#Geben Sie die Wörter von df an
npt = nlplot.NLPlot(df, taget_col='words')

# top_Top 2 Wörter, die häufig in n vorkommen, min_Geben Sie mit freq häufige Unterwörter an
#Top 2 Wörter: ['Unternehmen', 'Arbeitsplätze']
stopwords = npt.get_stopword(top_n=2, min_freq=0)

npt.bar_ngram(
    title='uni-gram',
    xaxis_label='word_count',
    yaxis_label='word',
    ngram=1,
    top_n=50,
    stopwords=stopwords,
    save=True
)

uni-gram.png

3-3. bi-gram

nlplot_articles.ipynb


npt.bar_ngram(
    title='bi-gram',
    xaxis_label='word_count',
    yaxis_label='word',
    ngram=2,
    top_n=50,
    stopwords=stopwords,
    save=True
)

bi-gram.png

3-4. tri-gram

nlplot_articles.ipynb


npt.bar_ngram(
    title='tri-gram',
    xaxis_label='word_count',
    yaxis_label='word',
    ngram=3,
    top_n=50,
    stopwords=stopwords,
    save=True
)

tri-gram.png

3-5. tree map

nlplot_articles.ipynb


npt.treemap(
    title='tree map',
    ngram=1,
    stopwords=stopwords,
    width=1200,
    height=800,
    save=True
)

tree-map.png

3-6. wordcloud

nlplot_articles.ipynb


npt.wordcloud(
    stopwords=stopwords,
    max_words=100,
    max_font_size=100,
    colormap='tab20_r',
    save=True
)

wordcloud.png

3-7. Koop-Netzwerk

nlplot_articles.ipynb


npt.build_graph(stopwords=stopwords, min_edge_frequency=13)

display(
    npt.node_df, npt.node_df.shape,
    npt.edge_df, npt.edge_df.shape
)

npt.co_network(
    title='All sentiment Co-occurrence network',
    color_palette='hls',
    save=True
)

Co-occurrence-network.png

3-8. sunburst chart

nlplot_articles.ipynb


npt.sunburst(
    title='All sentiment sunburst chart',
    colorscale=True,
    color_continuous_scale='Oryel',
    width=800,
    height=600,
    save=True
)

sunburst-chart.png

Referenzartikel: Die Bibliothek "nlplot", die natürliche Sprachen leicht visualisieren und analysieren kann, wurde veröffentlicht

Zusammenfassung

Durch die Visualisierung hatte ich das Gefühl, die Aktionsrichtlinie "The share", die EXIDEA erneut schätzt, verkörpern zu können. Insbesondere ist die Aktie glücklich und aufrichtig. Und Altruistic spielt in dem Artikel eine herausragende Rolle, und als Ergebnis konnte ich Freunde treffen, die über das beste Arbeitsumfeld, das, was ich erreichen möchte, und meine Sorgen sprechen können. Obwohl es immer noch selten vorkommt, dass ich in meiner täglichen Arbeit einen Beitrag zum Unternehmen leisten kann, möchte ich das maximieren, was ich jetzt tun kann, z. B. mich voll und ganz der anstehenden Aufgabe widmen und sie nach außen senden.

abschließend

In diesem Artikel konnte ich die Bedeutung der Vorverarbeitung bekräftigen. Ich begann mit dem Wunsch, nlplot auszuprobieren, aber als ich es ohne Vorverarbeitung visualisierte, wurde die richtige Nomenklatur in Morphologie auf Bi-Gramm und Tri-Gramm angezeigt, und das Ergebnis war katastrophal. Es hat sich gelohnt und ich denke, der beste Vorteil war, dass ich bei der Installation von Mecab und der Erstellung eines Benutzerwörterbuchs etwas über Linux lernen konnte. Anstatt es als Wissen zu erwerben, werde ich es für zukünftiges Lernen nutzen, um die grundlegende Sache, meine Hände tatsächlich zu bewegen, nicht zu vernachlässigen.

Es ist lange her, aber danke, dass Sie so weit gelesen haben. Wenn Sie Fehler finden, wäre ich Ihnen sehr dankbar, wenn Sie in den Kommentaren darauf hinweisen könnten.

Recommended Posts

[Python] Wäre es nicht das Beste und Höchste, wenn Sie die Unternehmensmerkmale mit nlplot erfassen könnten?
Holen Sie sich mit Python den Aktienkurs eines japanischen Unternehmens und erstellen Sie eine Grafik
Wenn Sie eine Methode in einer Ruby-Klasse definieren und dann eine Methode darin definieren, wird sie zu einer Methode der ursprünglichen Klasse.
Wenn Sie eine Liste mit dem Standardargument der Funktion angeben ...
Berechnen Sie die kürzeste Route eines Diagramms mit der Dyxtra-Methode und Python
Wenn Sie einen Singleton in Python möchten, stellen Sie sich das Modul als Singleton vor
Artikel, der eine Person sein kann, die den Mechanismus der API versteht und beherrscht (mit Python-Code)
Wenn ihr in der Scope-Küche das mit einem Rand machen könnt ~ ♪
[Python] Ein Programm, das die Anzahl der Aktualisierungen der höchsten und niedrigsten Datensätze berechnet
Berücksichtigung der Stärken und Schwächen von Python
Python-Tricks: Eine Kombination aus enumerate () und zip (), bei der überprüft wird, ob eine Zeichenfolge in eine Zahl konvertiert werden kann, wobei die Zeichenfolge als Zahl sortiert wird
Selbst wenn Sie ein Python-Anfänger sind und weniger als ein Jahr Pferderennen haben, konnten Sie ein Triple gewinnen.
[Python3] Machen Sie einen Screenshot einer Webseite auf dem Server und schneiden Sie sie weiter zu
Das Ergebnis der Erstellung eines Kartenalbums italienischer Jungvermählten in Python und dessen Weitergabe
Bis Sie Blender installieren und vorerst mit Python ausführen können
Bildverarbeitung mit Python (ich habe versucht, es in 0 und 1 Mosaikkunst zu binarisieren)
Bis Sie mit Python unter Windows 7 eine maschinelle Lernumgebung erstellen und ausführen
Visualisieren Sie den Bereich der internen und externen Einfügungen mit Python
[Wartung der Python-Umgebung] De-NeoBundle. Bereiten Sie die Umgebung des super praktischen Komplementärsteckers jedi-vim mit dein vor und stellen Sie ihn so ein, dass er bequem ist
Ich mag es nicht, mit der Veröffentlichung von Pokemon Go frustriert zu sein, deshalb habe ich ein Skript erstellt, um die Veröffentlichung zu erkennen und zu twittern
[Python] Wenn Sie eine Datei mit demselben Namen wie das zu importierende Modul erstellen, tritt ein Attributfehler auf.
Holen Sie sich die passende Zeichenfolge in den regulären Ausdruck und verwenden Sie sie beim Ersetzen unter Python3 erneut
Rufen Sie die Excel-Liste rekursiv in einem bestimmten Ordner mit Python ab und schreiben Sie sie in Excel.
Wenn Sie mit python3 mit urllib auf eine URL zugreifen, die Japanisch (japanische URL) enthält, wird diese willkürlich mit HTML codiert, und es tritt ein Fehler auf. Notieren Sie sich daher die Problemumgehung
Geben Sie die Bilddaten mit Flask of Python zurück und zeichnen Sie sie in das Canvas-Element von HTML
[Python] Ein Programm, um die Anzahl der Äpfel und Orangen zu ermitteln, die geerntet werden können
Sie können es mit Kopie versuchen! Lassen Sie uns ein cooles Netzwerkdiagramm mit networkx von Python zeichnen
So schreiben Sie, wenn Sie eine Zahl nach der Gruppennummer setzen möchten, die durch einen regulären Ausdruck in Python ersetzt werden soll
Verknüpfen Sie Python Enum mit einer Funktion, um es aufrufbar zu machen
Erkennen Sie mit Python Objekte einer bestimmten Farbe und Größe
Der Prozess, Python-Code objektorientiert zu machen und zu verbessern
Spielen Sie mit dem Passwortmechanismus von GitHub Webhook und Python
Wenn im Python-Wörterbuch auf einen nicht vorhandenen Schlüssel zugegriffen wird, initialisieren Sie ihn mit einem beliebigen Wert
Verstehen Sie die Wahrscheinlichkeiten und Statistiken, die für das Fortschrittsmanagement mit einem Python-Programm verwendet werden können
Verarbeiten Sie die mit Redshift entladene gzip-Datei mit Python of Lambda, gzipen Sie sie erneut und laden Sie sie in S3 hoch
[Python] Die Rolle des Sterns vor der Variablen. Teilen Sie den Eingabewert und weisen Sie ihn einer Variablen zu
[Python] Ein Programm, das die maximale Anzahl von Spielzeugen findet, die mit Ihrem Geld gekauft werden können
Ein einfacher Grund, warum der Rückgabewert von round (2.675,2) in Python 2,67 beträgt (in Wirklichkeit sollte er 2,68 betragen ...)
Ich habe die Geschwindigkeit von Hash mit Topaz, Ruby und Python verglichen
Ein Forscher eines Pharmaunternehmens fasste die grundlegenden Beschreibungsregeln von Python zusammen
[Statistik] Erfassen Sie das Bild der zentralen Polbegrenzungstheorie mit einem Diagramm
[Python, Ruby] Selen-Holen Sie sich Webseiteninhalte mit Webdriver
Löschen Sie ein bestimmtes Zeichen in Python, wenn es das letzte ist
Die Geschichte, einen Standardtreiber für db mit Python zu erstellen.
Lösen Sie das Python-Rucksackproblem mit der Branch-and-Bound-Methode
Die Idee, die Konfigurationsdatei mit einer Python-Datei anstelle von yaml zu füttern
Konvertieren Sie das Ergebnis von Python Optparse, um es zu diktieren und zu verwenden
Die Geschichte, ein Modul zu erstellen, das E-Mails mit Python überspringt
Erstellen Sie ein Kompatibilitätsbewertungsprogramm mit dem Zufallsmodul von Python.
Für Python-Anfänger. Sie können verwirrt sein, wenn Sie den allgemeinen Begriff für die Programmiersprachen-Sammlung nicht kennen.
[Python / Jupyter] Übersetzen Sie den Kommentar des in die Zwischenablage kopierten Programms und fügen Sie ihn in eine neue Zelle ein.
Was tun, wenn bei Verwendung von Python mit der NetBeans-IDE die Warnung "Falsche Python-Plattform" angezeigt wird?
Ich habe GhostScript mit Python ausgeführt, das PDF in Seiten aufgeteilt und es in ein JPEG-Bild konvertiert.
Erkennen Sie die Kontur und Richtung eines geformten Objekts mit OpenCV3 und Python3 (Hauptkomponentenanalyse: PCA, Eigenvektor)
Die Geschichte, ein Tool zum Laden von Bildern mit Python zu erstellen ⇒ Speichern unter
Rufen Sie eine Liste der Kameraparameter ab, die mit cv2.VideoCapture festgelegt werden können, und machen Sie daraus einen Wörterbuchtyp